hisoka Posted March 29, 2016 Share Posted March 29, 2016 <?phperror_reporting( E_ALL );ini_set( "display_errors", 1 );echo "This string never ends; although I use both of them in bold , no error was shown . look "This string never ends; // without double quotes at the end and there is no ?> too and even so both error_reporting( E_ALL );ini_set( "display_errors", 1 ); did not show any error ????? Link to comment Share on other sites More sharing options...
justsomeguy Posted March 29, 2016 Share Posted March 29, 2016 Your file has a syntax error. Syntax errors mean that the code does not get executed at all because PHP cannot figure out the structure of the code. Since the code never gets executed at all then the lines in bold do not get executed either. You should make sure that you have php.ini configured to log errors so that you can check that error log for syntax errors. Link to comment Share on other sites More sharing options...
dsonesuk Posted March 29, 2016 Share Posted March 29, 2016 (edited) IF the code is all php with no escaping to include text such as html a closing ?> is not required, so <?php error_reporting( E_ALL ); ini_set( "display_errors", 1 ); echo "This string never ends"; is valid, and will not throw an error. Edited March 29, 2016 by dsonesuk 1 Link to comment Share on other sites More sharing options...
hisoka Posted March 30, 2016 Author Share Posted March 30, 2016 So according to what you wrote Justsomeguy . the two lines in bold cannot detect syntax errors . Besides the error log in apache , is there a way or a php method to detect and make a programmer sees the syntax error he is making ??? Link to comment Share on other sites More sharing options...
justsomeguy Posted March 30, 2016 Share Posted March 30, 2016 Understand the difference between parse errors (or compile-time errors) and run-time errors. PHP finds a parse error when it makes its first pass through the code to determine the structure so that it can execute the code during the second pass. If it cannot determine the structure of the code before executing then that is a parse error. Maybe the code has missing brackets, parentheses, etc and PHP cannot figure out what it is supposed to do. A run-time error happens while the code is executing, like you try to call a function that does not exist. Using functions like error_reporting or ini_set only affect run-time errors because those functions have to be executed to take effect. They don't even get executed if there is a parse error and PHP quits before executing the code. The settings inside php.ini apply to all errors, because PHP loads those configuration options even before trying to parse the code. That's where your error reporting settings for the entire server should be. You should only use error_reporting or ini_set if you need to change things for a particular script. Otherwise set the appropriate settings for the entire server in php.ini. One trick is to have a file which parses correctly, sets the appropriate options, and then includes another file. PHP will not try to parse the included file until it is included, and by that time the other lines will have executed to set the options. <?php error_reporting( E_ALL ); ini_set( "display_errors", 1 ); include 'file.php';Otherwise, just set the options in php.ini. Link to comment Share on other sites More sharing options...
hisoka Posted March 31, 2016 Author Share Posted March 31, 2016 (edited) I understood very well what you talking about . However I would like to know how to see the errors someone made during parsing time ? If I am right , according to what you wrote to me , the error log is able to detect those errors that happen during parsing time so that when I open the error log file I see them but when I put this little code <? echo "good"; > and run that , then opened my error log file , I did not notice any error although all these options are on : display_errors = On //uncommentedlog_errors = On //uncommenteddisplay_startup_errors = On //uncommentederror_reporting = E_ALL //uncommented This is what I meant by how to be able to see those errors ? Edited March 31, 2016 by hisoka Link to comment Share on other sites More sharing options...
dsonesuk Posted March 31, 2016 Share Posted March 31, 2016 Depending on which php.ini file you are editing, Apache php.ini file OR the actual PHP php.ini file Link to comment Share on other sites More sharing options...
hisoka Posted March 31, 2016 Author Share Posted March 31, 2016 "Depending on which php.ini file you are editing, Apache php.ini file OR the actual PHP php.ini file" Is there two php.ini files one for Apache and the other for php ?!!! to my information , there is only one php.ini file located inside the PHP folder . Besides , when I installed Apache 2.2.15 version and looked in all its folder , I did not see any php.ini file. As I said there is only a php.ini file and that is in PHP folder Link to comment Share on other sites More sharing options...
dsonesuk Posted March 31, 2016 Share Posted March 31, 2016 There can be two, even three, which can be confusing. If you have option to view page showing php settings, check location of used php.ini, IF not! place phpinfo() in a php page and open, and again check. Link to comment Share on other sites More sharing options...
hisoka Posted March 31, 2016 Author Share Posted March 31, 2016 (edited) I told you I have only one php.ini file and it is in my PHP folder and although all these options are uncommented and ON in it , no parsing errors are shown not even in the error log file Edited March 31, 2016 by hisoka Link to comment Share on other sites More sharing options...
dsonesuk Posted March 31, 2016 Share Posted March 31, 2016 Any php.ini files in your localhost or localhost website folders then? since I don't know how far you have searched, or how your local server is setup I have to ask, as these are possible reasons it will fail, in mine there is a php.ini file in Apache sub folder /bin. Link to comment Share on other sites More sharing options...
hisoka Posted March 31, 2016 Author Share Posted March 31, 2016 By me the php.ini is in the PHP folder Link to comment Share on other sites More sharing options...
justsomeguy Posted March 31, 2016 Share Posted March 31, 2016 The phpinfo page will show you which php.ini file is being used. Search that page for "php.ini", and also verify that phpinfo shows that the options are set to what you think they are. Also, if you haven't specified an error log then on Windows it will log errors to the Windows event log. Link to comment Share on other sites More sharing options...
hisoka Posted April 2, 2016 Author Share Posted April 2, 2016 XDebug is able to detect and show the errors that happen during compile time although as I wrote in another thread , the errors shown are unclear and do not tell exactly the errors made in the code Link to comment Share on other sites More sharing options...
justsomeguy Posted April 4, 2016 Share Posted April 4, 2016 Error messages say what PHP sees as incorrect, PHP does not have the psychic ability to enter your mind and figure out what you meant to do, and then tell you what you did wrong. PHP has no intelligence. You're the one with intelligence, it's up to you to figure out what you meant to do and what you did wrong. Link to comment Share on other sites More sharing options...
thescientist Posted April 4, 2016 Share Posted April 4, 2016 PHP errors are pretty clear for the most part and will include line numbers. What errors are you getting and which part don't you understand about them? You can search more information on all them, they will be documented on the PHP site. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now