Jump to content

Search the Community

Showing results for tags 'debug'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • W3Schools
    • General
    • Suggestions
    • Critiques
  • HTML Forums
    • CSS
  • Browser Scripting
    • JavaScript
    • VBScript
  • Server Scripting
    • Web Servers
    • Version Control
    • SQL
    • ASP
    • PHP
    • .NET
    • ColdFusion
    • Java/JSP/J2EE
    • CGI
  • XML Forums
    • XML
    • Schema
    • Web Services
  • Multimedia
    • Multimedia
    • FLASH


  • Community Calendar




Website URL








Found 2 results

  1. PHP debugging techniques

    (Based on earlier writings by "So Called" in this topic)1. Organization tips for all of programming 1.1. Start smallMake your big problems into little problems! Don't write 200 lines of code and then ask us why it doesn't work! Instead, write 10 or 20 lines of code and get that to work. Other things being equal, 20 lines of code will have 1/10 as many bugs as 200 lines of code. You are 10 times as likely to write good code if you write just a little not a lot, and 10 times more likely to have willing volunteers on the forum help you find out why it doesn't work. On a related note, don't write a whole mess of HTML, PHP and MySQL queries (even if it's well under 200 lines of code) and then ask yourself (or the forum) why it doesn't work. Write a few lines, test it, fix what's broke, then add more code. Don't add more complexity until you get what you've already written to work. This is the stage where you can expect help from an Internet forum. 1.2. Keep it readableSpeaking of creating a mess, avoid creating one by keeping your code readable. A lot of problems can be avoided or fixed quickly if you and other people can find their way around your code. You might have overlooked this as a "minor feature", but it's actually really important for this point - you can freely insert white space between different parts of your PHP code. This means you can (and should) insert white space wherever it makes logical sense. If you're not sure, err on the side of being with white space. For example, instead of <?php$f=$_GET['f'];$l=$_GET['l'];$r=0;for($i=0;$i<100;$i++) if($i%2===0||$i%5===0)$r+=$i;echo "$f $l: $r"; make that <?php$f = $_GET['f'];$l = $_GET['l']; $r = 0; for ($i = 0; $i < 100; $i++) if ($i % 2 === 0 || $i % 5 === 0) $r += $i; echo "$f $l: $r"; Also, use meaningful variable names that tell you what a variable is used for. For example, instead of the above, have it as <?php$firstName = $_GET['firstName'];$lastName = $_GET['lastName']; $result = 0; for ($i = 0; $i < 100; $i++) if ($i % 2 === 0 || $i % 5 === 0) $result += $i; echo "$firstName $lastName: $result"; And finally, if brackets/braces/whatever are allowed, but optional, use them anyway, to clearly define the intended boundaries, e.g.: <?php$firstName = $_GET['firstName'];$lastName = $_GET['lastName']; $result = 0; for ($i = 0; $i < 100; $i++) { if (($i % 2 === 0) || ($i % 5 === 0)) { $result += $i; }} echo "{$firstName} {$lastName}: {$result}"; If you search the web, you'll find different advises on how much and where should white spaces and brackets/braces be (e.g. some programmers prefer the opening bracket on a new line, while others prefer it on the same line as the statement - as above). No style is truly "better" than another. Whatever feels readable to you, use that. However, it's important to note: Whatever your preference is, be consistent. Don't use one style at one place, and another style at another place, as this makes your code harder to read.(Also worth noting: Some PHP editors allow you, with the click of a button, to automatically add white spaces according to predefined rules, so that at least the first part of what we did above is automated) 1.3. Probe your codeAsking for help on the forum may get you help in hours, days or sometimes weeks. But ask your code the same questions and you may get answers in seconds or (at worst) minutes! The remainder of this topic will address how you can ask your code to tell you why it won't work. These things are not "fixes", they're means to finding a fix (which is essentially what "debugging" means).
  2. All about PHP error-exception

    Know what you are dealing with : ERROR AND EXCEPTION WHY THIS? When we debug our code that means we find errors and fix them. so it is wise to know about them whom we are dealing with GETTING STARTED:I cant see anything. where to find error?Errors will not always be visible to you. you will see what your php.ini setting is set to show. There is some directive which handle this behaviour.http://in2.php.net/m...en/ini.list.php find the directives here"display_error""error_reporting""error_log" (for error logging)You can set it in php.ini directly (Recomended for development server where you have access to them) or you can set it it using ini_set(). (extra reference)see the principle of changing configuration of php.inihttp://in2.php.net/m...nfiguration.phphttp://in2.php.net/m...anges.modes.php IF YOU USE INI_SET() , MAKE SURE IT IS THE TOP MOST CODE OF YOUR CODE OR INCLUDE/REQUIRE TREEError types: Syntactical error Runtime error Logical error Syntactical error: behaviour:This error means you are not following the grammer of PHP. you had mistaken somewhere that it can not parse your code. as it does not parse your code, this errors show you prior to running the code. so when you see thi error your code is not being run.How to fix them?It is the most easier to fix errors. it happends usually when we make typo or forgot to close braces or put expression terminator (";") etc. though when you see the error you have not to search your code randomly, php will tell you where to look for. the showed error line is not always the origin of the error.it could be prior to that line.READ THIShttp://in3.php.net/m...l/en/tokens.phphere you can see the list of avialable parser tokens. so next time when you will see them it won't be hard for you to fin the reason.prevention is better than cureYou can avoid much of parse error if you write well readable code followinga any code standard. likehttp://pear.php.net/...g-standards.phphttp://framework.zen...g-standard.html and using decent IDE(eg netbeans) or text editor(eg notepad++)http://netbeans.orghttp://notepad-plus-plus.org/Runtime Error:behaviour:Your code is gramatically right. your code has been parsed and it has turned into opcode. now it is time for running it. in runtime there may be such case arises when your program does not do what you expect. like you are trying to get an index of an array which does not exist, etchow to fix them?This is the part we spent mostly to debug our code. There is different level of error Fatal error Warning Notice Fatal error: as it is saying, it is fatal. when such error arised it exits the scripts. YOU MUST FIX IT Warning: It level is lower than Fatal error. but is origin of unexpected behaviour even can lead to fatal error. YOU MUST FIX ITNotice: Low level error. does not harm much. but can lead to higher level error. so YOU SHOULD FIX ITLogical error:behaviour:your code grammer is correct it runs well but it has problem with the logic. It is the hardes part of debugging codes. it is problem with your logic somewhere in the code, which prevent you to outputting expected result.How to fix?PHP cant help you with that. you have to do it yourself. you can do that by whitebox testing or blackbox testing. there is unit test for php which can also help you in that. How would i know so many different error?Runtime errors are documented in every function and method in. you will find that on the manual. when you see any error with particular function just go to manual and see what exception/error it can throw in certain situation. SOMETHING MODERATED:How to handle error?Error handling principle is not same in production and development enviourment. You would not like to show your code faults publicaly. would you? in that case you will log them somewhere instead of showing them.http://in.php.net/ma...n.error-log.phpthere is another option, recruite a error handler which will handle all the error as YOU WANT.http://php.net/set_error_handler I want to throw my own error. how to?there is trigger_error() which will let you throw your own error. remember user level error has also the three types, like Fatal error,warning,notice.check this for available error constant http://in.php.net/ma...c.constants.php TOWARD MORE ADVANCE:EXception?! what is it?Exception is a state where your code is not doing what you expected and you will have chance to terminate the program gracefully. as opposed to Errors which is state, unrecoverable(though there is conceptually difference in exception of php and other language like java. 'notice' and 'warning' is some kind of error but they are recoverable, program does not exist when they occurs)http://in2.php.net/m....exceptions.php Why we will use exception? why php API uses exception (eg PDO)?PHP already documented exception in their manual. there is no need to write down again. the most imporatnt features of exception is, it is CATCHABLE and it can BUBBLE UP. Most of newer API include exception for its robustness. It also needs less code to write. it is readable. People should use exception for error handling instead of old error handling methods (like $error=array()). is there any callback handler same as for error handler?yes there is.http://in.php.net/manual/en/function.set-exception-handler.php. it will also give you freedom to handle exception customacllyWe can catch exception. can we catch error?Yes we can. EVEN WE CAN CATCH THE FATAL ERROR. we can use error handler to catch error and then throw ErrorException. http://in.php.net/ma...orexception.php look at the example. errorException is also exception which extends exception class. they are intenteded for handling error with behaviour of exception. Why would i want to catch and throw errors?The answer is same, for the advantages of exception. a error may be thrown at bottom of the call stack. with exception or errorException you can catch in any level of call stack and show a gracefull error rather than terminating the application (incase of fatal error).Imagine a nonexistant file "require"ing breaking up your page in the middle. Notes:this is the summary of the story of error-exception for geting the concept. If there is any question and query about these, can post it in separate topic. if it needs to add something more or for any correction or improvements can PM me.the links are provided, have the depth information about what it is being posted here and posted links are meant to be followed. There is no any substitute for php manual itself.