আমি কীভাবে পিএইচপি ত্রুটিগুলি প্রদর্শন করতে পারি?


1730

আমি আমার পিএইচপি ইনআই ফাইল পরীক্ষা করেছি (php.ini ) এবং display_errorsসেট হয়ে গেছে এবং ত্রুটি প্রতিবেদন করার বিষয়টিও রয়েছে E_ALL। আমি আমার অ্যাপাচি ওয়েব সার্ভারটি আবার চালু করেছি।

এমনকি আমি এই স্ক্রিপ্টগুলি আমার স্ক্রিপ্টের শীর্ষে রেখেছি এবং এটি সাধারণ পার্স ত্রুটিগুলিও ধরতে পারে না। উদাহরণস্বরূপ, আমি একটি দিয়ে ভেরিয়েবল ঘোষণা করি "$"এবং আমি বিবৃতি বন্ধ করি না ";"। তবে আমার সমস্ত স্ক্রিপ্টগুলি এই ত্রুটিগুলির একটি ফাঁকা পৃষ্ঠা দেখায়, তবে আমি আসলে আমার ব্রাউজারের আউটপুটে ত্রুটিগুলি দেখতে চাই ।

error_reporting(E_ALL);
ini_set('display_errors', 1);

কী করার বাকি আছে?


8
আমি এখনও ঠিক এটি পেরেছি যে এটি কেন কখনও কখনও এবং অন্যদের জন্য কাজ করে না, তবে যে কেউ পিএইচপি স্ক্রিপ্টে ত্রুটিগুলি দ্রুত টগল করতে চায় (বা একটি $_REQUESTপ্যারামিটারের মাধ্যমে এগুলি সক্ষম করে ) এই দুটি লাইন বেশিরভাগ সময় কাজ করবে।
ব্র্যান্ডস্ক্রিপ্ট

ঠিক আছে আপনি পিএইচপি ইনআই ফাইল থেকে এক্সডিবাগ সক্ষম করে ত্রুটির বিশদটি দেখতে পারেন।
jewelhuq

উত্তর:


3198

এটি সর্বদা আমার পক্ষে কাজ করে:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

তবে, এটি পার্স ত্রুটিগুলি দেখানোর জন্য পিএইচপি তৈরি করে না - এই ত্রুটিগুলি দেখানোর একমাত্র উপায় হ'ল এই লাইনটি দিয়ে আপনার php.ini পরিবর্তন করা:

display_errors = on

(যদি আপনার অ্যাক্সেস না থাকে php.iniতবে এই লাইনটি লাগানো .htaccessখুব কার্যকর হতে পারে):

php_flag display_errors 1

9
এছাড়াও মনে রাখবেন যে আপনি এই 3 টি লাইন ব্যবহার করতে পারেন এবং তারপরে ('fileImWorkingOn.php') অন্তর্ভুক্ত করুন; তারপরে আপনি সিনট্যাক্স ত্রুটিগুলিও ধরতে পারেন!
স্ন্যাপ করুন

14
আমি কোনও সিসপস না থাকাকালীন, আমার মনে হয় php.ini এর চেয়ে বেশি লোকের কাছে একটি .htaccess ফাইল রয়েছে এবং এইগুলি উভয়ই পার্সিংয়ের আগে আসবে, তাই না? php_flag display_errors 1.htaccess এর জন্য
রায়ান টেলর

1
সুতরাং এখন যে ত্রুটিগুলি লগ হয়েছে, তারা কোথায় যায়? আমি / var / লগ / অ্যাপাচি 2 এ গিয়েছিলাম এবং এটি সমস্ত লগ দেখায়, তবে আমি সম্প্রতি চালিত প্রোগ্রাম সম্পর্কিত কোনও তথ্য নেই। আমি কেবল প্রতিদিন সকালে একবার সিস্টেম পুনরায় চালু হওয়ার তথ্য পাই।
মাইকেল

1
@ মিশেল ত্রুটিগুলি ঠিক স্ক্রিনে বা যেখানে আউটপুটটি পুনঃনির্দেশিত হয় সেখানে চলে যায়
অভিনব জন

2
E_ALLপিএইচপি 5.3 এ সমস্ত ত্রুটি প্রদর্শন করার জন্য পর্যাপ্ত নয় । " 5.4.0 এ E_STRICTঅংশ হয়ে E_ALLগেছে" - পিএইচপি ম্যানুয়াল আপনার প্রয়োজন E_ALL | E_STRICTবা -1সেই সংস্করণে।
জেরার্ড রোচে

155

রানটাইমের সময় ত্রুটি আউটপুট সক্ষম করার সময় আপনি পার্স ত্রুটিগুলি ধরতে পারবেন না, কারণ এটি আসলে কিছু কার্যকর করার আগে ফাইলটিকে বিশ্লেষণ করে (এবং যেহেতু এটির সময় ত্রুটির মুখোমুখি হয়, এটি কিছুই কার্যকর করে না)। আপনাকে প্রকৃত সার্ভার কনফিগারেশনটি পরিবর্তন করতে হবে যাতে প্রদর্শন_রফর্মগুলি চালু থাকে এবং অ্যাপোরিয়েট ত্রুটি_বন্দরের স্তর ব্যবহৃত হয়। আপনার যদি php.ini অ্যাক্সেস না থাকে তবে আপনি সার্ভারের উপর নির্ভর করে .htaccess বা অনুরূপ ব্যবহার করতে পারবেন।

এই প্রশ্নটি অতিরিক্ত তথ্য সরবরাহ করতে পারে।


2
সেটা জানি না. আমি php.ini ফাইলটি ম্যানুয়ালি সম্পাদনা করেছি এবং এটি এখন কাজ করছে। ধন্যবাদ!
Abs

143

আপনার php.ini এর ভিতরে :

display_errors = on

তারপরে আপনার ওয়েব সার্ভারটি পুনরায় চালু করুন।


7
+ + ①। আমার উবুন্টু
/etc/php5/apache2/php.ini

5
পুনঃসূচনা করার জন্য (দেবিয়ান, উবুন্টু ইত্যাদি)sudo service apache2 restart
পিটার ক্রাউস

4
ওএস এক্স এ পুনরায় চালু করার জন্য sudo apachectl -k restart
মরে

3
মজাদার ঘটনা: আপনি কেবল phpinfo () এ রাখলে আপনি আপনার php.ini ফাইল লোড করতে পারেন; একটি ফাঁকা পিএইচপি ফাইলের মধ্যে। এটি সপ্তম সারিটি নিচে এবং কল করা হয়েছেLoaded Configuration File
ফ্রাঙ্কেনমিট

আমরা সিপ্যানেলে পিএইচপি কোড ডাইরেক্টলিটি লিখতে থাকলে আমরা কীভাবে পারি?
আরকাম

98

সমস্ত ত্রুটি প্রদর্শন করতে আপনার প্রয়োজন:

১. পিএইচপি স্ক্রিপ্টে এই লাইনগুলি আপনি ব্রাউজার থেকে কল করছেন (সাধারণত index.php):

error_reporting(E_ALL);
ini_set('display_errors', '1');

২ (ক) নিশ্চিত করুন যে এই স্ক্রিপ্টটির কোনও সিনট্যাক্স ত্রুটি নেই

-অথবা-

২. (খ) display_errors = Onআপনার মধ্যে সেট করুনphp.ini

অন্যথায়, এটি 2 লাইন চালাতে পারে না!

আপনি চালিয়ে (কমান্ড লাইনে) চালিয়ে আপনার স্ক্রিপ্টে সিনট্যাক্স ত্রুটিগুলি পরীক্ষা করতে পারেন:

php -l index.php

আপনি যদি অন্য কোনও পিএইচপি স্ক্রিপ্ট থেকে স্ক্রিপ্ট অন্তর্ভুক্ত করেন তবে এটি অন্তর্ভুক্ত স্ক্রিপ্টে সিনট্যাক্স ত্রুটি প্রদর্শন করবে । উদাহরণ স্বরূপ:

index.php

error_reporting(E_ALL);
ini_set('display_errors', '1');

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser

51

কিছু ওয়েব হোস্টিং সরবরাহকারী আপনাকে .htaccessফাইলে পিএইচপি পরামিতি পরিবর্তন করতে দেয় ।

আপনি নিম্নলিখিত লাইনটি যুক্ত করতে পারেন:

php_value display_errors 1

আপনার মত আমারও একই সমস্যা ছিল এবং এই সমাধানটি এটি ঠিক করেছে।


এবং আপনি যদি এনগিনেক্স পরিবেশে থাকেন তবে আপনার সাইটের মধ্যে পিএইচপি মান যুক্ত করুন (সাইটগুলি উপলভ্য) অবস্থানটি ~ \। পিএফপি নির্দেশের অধীনে কনফিগারেশন। ফাস্টসিজি_প্রেম PHP_VALUE "ত্রুটি_বর্ধনা = ই_এলএল; display n ডিসপ্লে_অরফারেন্স = 1;";
লাজারোস কসমিডিস

40

আপনি "ত্রুটি প্রতিবেদনকরণ" বা "প্রদর্শন ত্রুটি" এর জন্য সমস্ত সেটিংস পিএইচপি 7 তে কাজ করে না বলে মনে করতে পারেন That এটি কারণ ত্রুটি হ্যান্ডলিং পরিবর্তিত হয়েছে। পরিবর্তে এটি চেষ্টা করুন:

try{
     // Your code
} 
catch(Error $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

বা, একসাথে ব্যতিক্রম এবং ত্রুটিগুলি ধরা (এটি পিএইচপি 5 এর সাথে পিছনে সামঞ্জস্যপূর্ণ নয়):

try{
     // Your code
} 
catch(Throwable $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

1
আপনি কি পিএইচপি 7 বা পিএইচপি 7.1 বলতে চান? আমি বিভ্রান্ত হয়ে পড়েছি, প্রস্তাবিত বৈধ প্রশ্নের উত্তর হিসাবে চেষ্টা করেছি এবং এটি কাজ করে, আমি মনে করি আপনি কিছুটা আলাদা আইএমএইচও-র প্রস্তাব করছেন, প্রকৃতপক্ষে "কোনও পিছনে সামঞ্জস্য নেই" এবং যদি আপনাকে একটি সম্পূর্ণ পিএইচপি <7 কোড সংশোধন করতে হয় এবং try{} catch() {}সর্বত্র কোড যুক্ত করার দরকার পড়ে আপনার ইতিমধ্যে সংজ্ঞায়িত পিএইচপি কোডে, আমি ভাবতেও চাই না যে জগাখিচুড়ি হতে চলেছে ..
ভিডিজেন

@FancyJohn, এই সাহায্য করতে পারে: $bt = debug_backtrace(); print_r($bt);
ফ্র্যাঙ্ক ফোর্ট 3

@ বিলেংডাডাং, আমি পিএইচপি .0.০ নিয়ে ইস্যুটিতে ছুটলাম, যেখানে প্রদর্শন করতে ত্রুটিটি দেখাতে পারার একমাত্র উপায় ছিল ট্রাই / ক্যাচ ব্লক এবং বিশেষত ধরা Error। আপনি যদি সমস্ত অনুরোধগুলি (সম্ভবত জাভাস্ক্রিপ্ট, সিএসএস, চিত্রগুলি, ইত্যাদি বাদে) সূচক.পিএফ ফাইলটিতে আবার লিখেন, তবে সেখানে চেষ্টা করার ব্লক থাকলে তা আরও সহজ করে তোলে। হ্যাঁ, যে কোনও সিস্টেমে একক এন্ট্রি পয়েন্ট নেই তা আপডেট হওয়া বড় মাথাব্যথা হতে পারে।
ফ্র্যাঙ্ক ফোর্ট 3

পিএইচপি কি অপরিশোধিত ব্যতিক্রমগুলি দেখায় না? বেশ তা নিশ্চিত?
মার্টিন টর্নয়েজ

এটি unhandled ব্যতিক্রম দেখানো উচিত। আপনি যদি শুরুতে একটি আউটপুট বাফার চালু করেন (যাতে আপনি শেষ পর্যন্ত প্রতিক্রিয়াটির শরীরে ফ্লাশ দেওয়ার আগে যে কোনও সময়ে হেডার পাঠাতে পারেন) সম্ভবত ব্যতিক্রম বার্তাটি কোথাও হারিয়ে যেতে পারে।
ফ্র্যাঙ্ক ফোর্ট 3 ই


33

ব্যবহার করুন:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

এটি লেখার জন্য এটি সর্বোত্তম উপায়, তবে একটি সিনট্যাক্স ত্রুটি খালি আউটপুট দেয়, তাই সিনট্যাক্স ত্রুটিগুলি পরীক্ষা করার জন্য কনসোলটি ব্যবহার করুন। পিএইচপি কোড ডিবাগ করার সর্বোত্তম উপায় হ'ল কনসোলটি ব্যবহার করা; নিম্নলিখিত চালান:

php -l phpfilename.php


20

আপনার পিএইচপি ফাইল যেখানে থাকে সেই ফোল্ডারে php.ini নামে একটি ফাইল তৈরি করুন ।

Php.ini এর ভিতরে নিম্নলিখিত কোড যুক্ত করুন (কোড দেখানোর ক্ষেত্রে আমি একটি সাধারণ ত্রুটি দিচ্ছি):

display_errors = on

display_startup_errors = on

18

এখানে একটি পিএইচপি স্ক্রিপ্ট রয়েছে:

<?php
    ini_set("display_startup_errors", 1);
    ini_set("display_errors", 1);

    /* Reports for either E_ERROR | E_WARNING | E_NOTICE  | Any Error*/
    error_reporting(E_ALL);

    echo(abc); /* Notice: abc is an undefined constant */
?>

পিএইচপি ত্রুটিগুলির আরও বিশদ ব্যাখ্যার জন্য, পিএইচপি ত্রুটি - ত্রুটি_পূরণ () দেখুন


2
এটি কীভাবে অভিনব জন এর উত্তর থেকে আলাদা ?
সমস্ত কর্মী

@ সিপিবার্নজ - এটি প্রত্যক্ষভাবে এগিয়ে আসা প্রশ্ন, প্রত্যেকে তাদের স্বাদে একই সেট কোড দেয় যা কেবলমাত্র পার্থক্য। আমি অতিরিক্ত একটি ইউআরএল লিঙ্ক দিয়েছি যা পিএইচপি ত্রুটি সম্পর্কে আরও তথ্য দেবে।
বি বালামণীগন্ধন

15

যদি উপরের সমস্ত উত্তর অনুসরণ করা সত্ত্বেও (বা আপনি নিজের php.ini ফাইল সম্পাদনা করতে পারবেন না), তবুও আপনি একটি ত্রুটি বার্তাটি পেতে না পারেন তবে নতুন একটি পিএইচপি ফাইল তৈরি করার চেষ্টা করুন যা ত্রুটি প্রতিবেদন সক্ষম করে এবং তারপরে সমস্যা ফাইল অন্তর্ভুক্ত করবে। উদাহরণ:

error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once('problem_file.php');

আমার php.iniফাইলে সবকিছু ঠিকঠাকভাবে সেট করা সত্ত্বেও , এই একমাত্র উপায় ছিল আমি নেমস্পেস ত্রুটি ধরতে পারি। আমার সঠিক দৃশ্যটি ছিল:

//file1.php
namespace a\b;
class x {
    ...
}

//file2.php
namespace c\d;
use c\d\x; //Dies because it's not sure which 'x' class to use
class x {
    ...
}

1
না, ত্রুটি প্রতিবেদন করা লগলিভল নয়, এটি একটি বিটফিল্ড। 999999 ব্যবহার করা একটি খুব খারাপ ধারণা, উদাহরণস্বরূপ 2047-এর দুটি পাওয়ার বিয়োগফল 1 ব্যবহার করুন!
পিটারহ - মনিকা পুনরায় ইনস্টল করুন

আপনি একদম ঠিক বলেছেন, @ পেটার! আমি এটিকে E_ALL এ পরিবর্তন করেছি কারণ এটি সমস্ত ত্রুটির প্রতিবেদন সক্ষম করতে সক্ষম করবে (পিএইচপি 5.4 এবং নীচে কঠোর ত্রুটিগুলি বাদ দিয়ে)।
jxmallett

15

আমি সাধারণত আমার সরল পিএইচপি প্রকল্পগুলিতে নিম্নলিখিত কোডগুলি সহ যাব।

if(!defined('ENVIRONMENT')){
    define('ENVIRONMENT', 'DEVELOPMENT');
}

$base_url = null;

if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'DEVELOPMENT':
            $base_url = 'http://localhost/product/';
            ini_set('display_errors', 1);
            ini_set('display_startup_errors', 1);
            error_reporting(E_ALL|E_STRICT);
            break;

        case 'PRODUCTION':
            $base_url = 'Production URL'; /* https://google.com */
            error_reporting(0);
            /* Mechanism to log errors */
            break;

        default:
            exit('The application environment is not set correctly.');
    }
}

15

পিএইচপি-কে অ্যাপাচি মডিউল হিসাবে ব্যবহার করার সময়, আমরা অ্যাপাচি কনফিগারেশন ফাইলগুলিতে (যেমন httpd.conf) এবং .htaccess ফাইলগুলিতে নির্দেশাবলী ব্যবহার করে কনফিগারেশন সেটিংস পরিবর্তন করতে পারি। এটি করার জন্য আপনার "AllowOverride বিকল্পগুলি" বা "AllowOverride All" সুবিধাগুলি প্রয়োজন।

এটা যাচাই কর

http://funbird.co.uk/blog/tech-articals/linux-tech-articals/enabling-error-display-php-via-htaccess


লিঙ্কটি ভেঙে গেছে (404)।
পিটার মর্টেনসেন

14

আপনি যদি কোনওভাবে নিজেকে এমন পরিস্থিতিতে আবিষ্কার করেন যেখানে আপনি যখন সেটিংটি সংশোধন করতে পারবেন না php.iniবা .htaccessযখন আপনার পিএইচপি স্ক্রিপ্টগুলিতে পার্স ত্রুটি রয়েছে তখন ত্রুটিগুলি প্রদর্শন করার জন্য আপনার ভাগ্যের বাইরে। এরপরে আপনাকে কমান্ড লাইনে এইভাবে ফাইলগুলি আবদ্ধ করার সমাধান করতে হবে :

find . -name '*.php' -type f -print0 | xargs -0 -n1 -P8 php -l | grep -v "No syntax errors"

যদি আপনার হোস্টটি এতটাই লকড থাকে যে এটির মাধ্যমে php.iniবা .htaccessএটির মাধ্যমে মান পরিবর্তন করতে দেয় না তবে এটির মাধ্যমে মান পরিবর্তন করাও বারণ করতে পারে ini_set। আপনি নিম্নলিখিত পিএইচপি স্ক্রিপ্ট দিয়ে এটি পরীক্ষা করতে পারেন:

<?php
if( !ini_set( 'display_errors', 1 ) ) {
  echo "display_errors cannot be set.";
} else {
  echo "changing display_errors via script is possible.";
}

find . -name '*.php' -type f -exec php -l {} \; | grep -v 'No syntax errors detected'সহজ
স্কোরগুলি

14

যেহেতু আমরা এখন পিএইচপি 7 চালাচ্ছি, এখানে দেওয়া উত্তরগুলি এখন আর সঠিক নয়। একমাত্র এখনও ঠিক আছে ফ্র্যাঙ্ক ফোর্টের একতিনি পিএইচপি about সম্পর্কে কথা বলার সাথে সাথে ।

অন্যদিকে, চেষ্টা / ত্রুটির সাথে ত্রুটিগুলি ধরার চেষ্টা করার পরিবর্তে আপনি একটি কৌশল ব্যবহার করতে পারেন: ব্যবহার অন্তর্ভুক্ত।

এখানে কোডের তিনটি অংশ রয়েছে:

ফাইল: tst1.php

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
    // Missing " and ;
    echo "Testing
?>

পিএইচপি 7 এ চালানো কিছুই দেখায় না।

এখন, এই চেষ্টা করুন:

ফাইল: tst2.php

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
    include ("tst3.php");
?>

ফাইল: tst3.php

<?php
    // Missing " and ;
    echo "Testing
?>

এখন টিএসটি 2 চালান যা ত্রুটি প্রতিবেদন নির্ধারণ করে এবং তারপরে tst3 অন্তর্ভুক্ত করে। তুমি দেখবে:

পার্স ত্রুটি: সিনট্যাক্স ত্রুটি, ফাইলের অপ্রত্যাশিত শেষ, ভেরিয়েবলের প্রত্যাশা (T_VARIABLE) বা $ {(T_DOLLAR_OPEN_CURLY_BRACES) বা st $ (T_CURLY_OPEN) tst3.php লাইন 4 এ


13

আপনি নীচের মতো কিছু করতে পারেন:

আপনার মূল সূচক ফাইলে নীচের প্যারামিটারগুলি সেট করুন:

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);

তারপরে আপনার প্রয়োজনের ভিত্তিতে আপনি যা চয়ন করতে চান তা চয়ন করতে পারেন:

জন্য সব ত্রুটি, সতর্কবার্তা এবং বিজ্ঞপ্তি প্রদান:

    error_reporting(E_ALL); OR error_reporting(-1);

জন্য সব ত্রুটি:

    error_reporting(E_ERROR);

জন্য সব সতর্কবার্তা:

    error_reporting(E_WARNING);

জন্য সব নোটিশ:

    error_reporting(E_NOTICE);

আরও তথ্যের জন্য, এখানে চেক করুন


কি "প্রধান সূচক ফাইল" ? ফাইল index.html?
পিটার মর্টেনসেন

12

আপনি নিজের কাস্টম ত্রুটি হ্যান্ডলার যোগ করতে পারেন, যা অতিরিক্ত ডিবাগ তথ্য সরবরাহ করতে পারে। তদতিরিক্ত, আপনি ইমেল মাধ্যমে তথ্য প্রেরণ জন্য এটি সেট আপ করতে পারেন।

function ERR_HANDLER($errno, $errstr, $errfile, $errline){
    $msg = "<b>Something bad happened.</b> [$errno] $errstr <br><br>
    <b>File:</b> $errfile <br>
    <b>Line:</b> $errline <br>
    <pre>".json_encode(debug_backtrace(), JSON_PRETTY_PRINT)."</pre> <br>";

    echo $msg;

    return false;
}

function EXC_HANDLER($exception){
    ERR_HANDLER(0, $exception->getMessage(), $exception->getFile(), $exception->getLine());
}

function shutDownFunction() {
    $error = error_get_last();
    if ($error["type"] == 1) {
        ERR_HANDLER($error["type"], $error["message"], $error["file"], $error["line"]);
    }
}

set_error_handler ("ERR_HANDLER", E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
register_shutdown_function("shutdownFunction");
set_exception_handler("EXC_HANDLER");


6

এটি দ্রুত ডিবাগিংয়ের ক্ষেত্রে আপনি যে সর্বোত্তম / সহজ / দ্রুত সমাধানটি ব্যবহার করতে পারেন তা হ'ল ব্যতিক্রমগুলি ধরায় আপনার কোডকে ঘিরে। আমি যখন প্রযোজনায় দ্রুত কিছু পরীক্ষা করতে চাই তখন আমি এটিই করি।

try {
    // Page code
}
catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

পিএইচপি 7 এর জন্য, catch (Throwable $e)আরও ভাল ... বা এর নীচে অন্য ক্যাচ ব্লকcatch(Error $e)
ফ্র্যাঙ্ক ফোর্ট 11


4

এটাই আমি শিখেছি। PHP.INI ফাইলে,

error_reporting = E_ALL
display_errors = On

2
পরিবর্তন হচ্ছে? যোগ করা?
পিটার মর্টেনসেন

এটিএম আপনার উত্তরটির কোনও অর্থ দেয় না কারণ এর অভাব প্রসঙ্গে; পিটার মর্টেনসেন দ্বারা নির্ধারিত। এটি উন্নত না করে এটি "অপসারণের পতাকা" (বটগুলি দ্বারা) এর জন্য প্রাক্সিত করে। (নিম্ন-মানের পর্যালোচনা থেকে)।
ZF007

4
    <?php
    // Turn off error reporting
    error_reporting(0);

    // Report runtime errors
    error_reporting(E_ERROR | E_WARNING | E_PARSE);

    // Report all errors
    error_reporting(E_ALL);

    // Same as error_reporting(E_ALL);
    ini_set("error_reporting", E_ALL);

    // Report all errors except E_NOTICE
    error_reporting(E_ALL & ~E_NOTICE);
    ?>

আপনার সাইটটি লাইভ থাকাকালীন, php.iniসুরক্ষার কারণে ফাইলটিতে ডিসপ্লে_পেপারগুলি অক্ষম করা উচিত। তবে, বিকাশের পরিবেশের জন্য, ডিসপ্লে_রফেসগুলি সমস্যা সমাধানের জন্য সক্ষম করা যেতে পারে।


4

আপনি php.ini ফাইল পরিবর্তন করে এটি করতে পারেন এবং নিম্নলিখিতগুলি যুক্ত করতে পারেন

display_errors = on
display_startup_errors = on

অথবা আপনি নিম্নলিখিত কোডটিও ব্যবহার করতে পারেন কারণ এটি সর্বদা আমার জন্য কার্যকর

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

3

আপনি যদি এক্সডিবাগ ইনস্টল করে থাকেন তবে আপনি সেটিংস দ্বারা প্রতিটি সেটিংসকে ওভাররাইড করতে পারেন:

xdebug.force_display_errors = 1;
xdebug.force_error_reporting = -1;

force_display_errors

প্রকার: int, ডিফল্ট মান: 0, Xdebug> = 2.3 এ পরিচিতি যদি এই সেটিংটি 1 তে সেট করা থাকে তবে পিএইচপি'র প্রদর্শন_প্রকারের সেটিংস যাই হোক না কেন ত্রুটিগুলি সর্বদা প্রদর্শিত হবে।

force_error_reporting

প্রকার: int, ডিফল্ট মান: 0, Xdebug> = 2.3 এ পরিচিতি এই সেটিংটি ত্রুটি_বন্দরের মত বিটমাস্ক। এই বিটমাস্কটি যুক্তিযুক্তভাবে ত্রুটিগুলি প্রদর্শিত হবে তা চিহ্নিত করার জন্য ত্রুটি_বিকৃতি দ্বারা প্রতিনিধিত্ব করা বিটমাস্কের সাথে ORed করা হবে। এই সেটিংটি কেবলমাত্র php.ini এ তৈরি করা যেতে পারে এবং কোনও অ্যাপ্লিকেশন ইনআই_সেট () দিয়ে যা করুক না কেন আপনাকে কিছু ত্রুটি দেখাতে বাধ্য করতে বাধ্য করে।


3

আপনি এই কোডটি ব্যবহার করতে চাইতে পারেন:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

2

E_NOTICE ব্যতীত সমস্ত ত্রুটির প্রতিবেদন করুন

error_reporting(E_ALL & ~E_NOTICE);

সমস্ত পিএইচপি ত্রুটি প্রদর্শন করুন

error_reporting(E_ALL);  or ini_set('error_reporting', E_ALL);

সমস্ত ত্রুটি প্রতিবেদন বন্ধ করুন

error_reporting(0);

1

ইউনিক্স সিএলআই- তে কেবল একটি ফাইলের ত্রুটিগুলি পুনর্নির্দেশ করা খুব ব্যবহারিক :

./script 2> errors.log

তারপরে সরাসরি পরিবর্তনগুলির জন্য অন্য শেল থেকে:

tail -f errors.log

বা সহজভাবে

watch cat errors.log

কীভাবে পিএইচপি সম্পর্কে এই প্রশ্নের উত্তর দেয়?
পিটার মর্টেনসেন

./scriptএটি একটি পিএইচপি সিএলআই স্ক্রিপ্ট (হ্যাশবাং #!/usr/bin/php)। আপনি এইভাবে কোনও ফাইলের মধ্যে পিএইচপি ত্রুটিগুলি পুনর্নির্দেশ করতে পারেন। এটি ইউনিক্স পাইপিং। এটি সিজিআই হিসাবে পিএইচপি নয়।
এনভিআরএম

0

যদি কমান্ড লাইন চালু থাকে, তখন আপনি চালাতে পারেন phpসঙ্গে -ddisplay_errors=1সেটিং ওভাররাইড করতে php.ini:

php -ddisplay_errors=1 script.php

-1

অন্য php.iniএবং ini_set()পিএইচপি স্ক্রিপ্টের মধ্যে ফাংশন, আপনার সাথে এই একই জিনিস করতে পারেন .htaccessএবং httpd.confনির্দেশনা নিচে দেখানো।

কিছু হোস্টিং সরবরাহকারী পিএইচপি সেটিংসের মাধ্যমে .htaccessএবং সেট করতে দেয় httpd.conf

পিএইচপি ত্রুটিগুলি লুকান

php_flag display_startup_errors ON

php_flag display_errors ON

php_flag html_errors ON

php_flag log_errors on

php_flag ignore_repeated_errors off

php_flag ignore_repeated_source off

php_flag report_memleaks on

php_flag track_errors on

php_value docref_root 0

php_value docref_ext 0

php_value error_log /home/path/public_html/domain/PHP_errors.log

php_value error_reporting 999999999

php_value error_reporting -1

php_value log_errors_max_len 0

Order allow,deny

Deny from all

Satisfy All

কিছুটা গুগল করে এই উত্তরটি খুঁজে পেয়েছি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.