Difference between revisions of "PHP-and-MySQL/C2/Common-Errors-Part-2/English-timed"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
Line 7: Line 7:
 
|-
 
|-
 
|00:08
 
|00:08
|I have called this "extrachar dot php" and the reason is that when we run this...let's go back, ...click on '''"extrachar"''', we get this error "Parse error in" and all of this and on line 6.  
+
|I have called this "extrachar dot php" and the reason is that when we run this...let's go back, ...click on '''"extrachar"''', we get this error "Parse error in..." and all of this and on line 6.  
 
|-
 
|-
 
|00:23
 
|00:23
Line 16: Line 16:
 
|-
 
|-
 
|00:37
 
|00:37
|But we have actually got an extra bracket on here so we are deleting that and you can see this now works.  
+
|But we have actually got an extra bracket on here, so we are deleting that and you can see this now works.  
 
|-
 
|-
 
|00:44
 
|00:44
Line 25: Line 25:
 
|-
 
|-
 
|01:09
 
|01:09
|Sometimes it is very easy to solve. When we run this, nothing is going to come up because these two don’t equal each other.
+
|Sometimes it is very easy to solve. When we run this, nothing is going to come up because these two don’t equal to each other.
 
|-
 
|-
 
|01:18
 
|01:18
Line 34: Line 34:
 
|-
 
|-
 
|01:28
 
|01:28
|When you solve complicated '''if''' '''statement'''s or complex mathematical operations, you should check that the brackets match.
+
|When you solve complicated '''if''' '''statements''' or complex mathematical operations, you should check that the brackets match.
 
|-
 
|-
 
|01:36
 
|01:36
Line 52: Line 52:
 
|-
 
|-
 
|02:04
 
|02:04
|Okay, now the next one I will show is the "missing page".
+
| Now the next one I will show you is the "missing page".
 
|-
 
|-
 
|02:08
 
|02:08
|Let me show you the error for this. Click on "missing.php".  Ok, we get more '''Parse errors''' as seen on line 9.  
+
|Let me show you the errors for this. Click on "missing.php".  Ok, we get more '''Parse errors''' as seen on line 9.  
 
|-
 
|-
 
|02:17
 
|02:17
Line 70: Line 70:
 
|-
 
|-
 
|02:37
 
|02:37
|Okay now - line 18 - this line here, where I am pointing, is line 18.
+
|Okay line 18 - this line here, which I am pointing to.
 
|-
 
|-
 
|02:47
 
|02:47
Line 82: Line 82:
 
|-
 
|-
 
|03:00
 
|03:00
|So, we have to check a couple of lines up - say 4 or 5 lines up.  
+
|So, we have to check couple of lines up - say 4 or 5 lines up.  
 
|-
 
|-
 
|03:06
 
|03:06
|What we have is an '''"if"''' statement - "if posted user name equals 'Alex'", echo "You own PHP Academy", else echo "Hello name".  
+
|What we have is an '''"if"''' statement - "if $postedusername equals (==) 'Alex'", '''echo''' "You own PHP Academy" '''else''' '''echo''' "Hello $name".  
 
|-
 
|-
 
|03:17
 
|03:17
Line 115: Line 115:
 
|-
 
|-
 
|04:20
 
|04:20
|And what we are looking for is, an end to this block now because this is the block that hasn’t been ended.  
+
|And what we are looking for is an end to this block now because this is the block that hasn’t been ended.  
 
|-
 
|-
 
|04:28
 
|04:28
|So we are saying the line error is not actually here because we require an end to a '''block''' here.
+
|So, we are saying the line error is not actually here because we require an end to a '''block''' here.
 
|-
 
|-
 
|04:35
 
|04:35
Line 130: Line 130:
 
|-
 
|-
 
|04:53
 
|04:53
|I have used the error-reporting "E All" just to demonstrate this.  
+
|I have used the '''error_reporting(E_ All)''' just to demonstrate this.  
 
|-
 
|-
 
|04:58
 
|04:58
Line 136: Line 136:
 
|-
 
|-
 
|05:03
 
|05:03
|This doesn't mean all errors. It's not an exhaustive list of all the errors that can be reported.  
+
|This doesn't mean "all errors". It's not an exhaustive list of all the errors that can be reported.  
 
|-
 
|-
 
|05:10
 
|05:10
Line 151: Line 151:
 
|-
 
|-
 
|05:33
 
|05:33
|This is the '''get''' variable called "name".
+
|This is the '''GET''' variable called "name".
 
|-
 
|-
 
|05:38
 
|05:38
|Our '''code''' says: "if this data variable exists, echo data" and this seems like a pretty normal program.
+
|Our '''code''' says: '''if''' this '''data''' variable exists, '''echo''' '''$data''' and this seems like a pretty normal program.
 
|-
 
|-
 
|05:47
 
|05:47
Line 169: Line 169:
 
|-
 
|-
 
|06:18
 
|06:18
|Now this is not a "Parse error" which you have seen before.  This is a '''notice'''.  
+
|Now this is not a "Parse error" which you have seen before.  This is a '''Notice'''.  
 
|-
 
|-
 
|06:27
 
|06:27
Line 178: Line 178:
 
|-
 
|-
 
|06:41
 
|06:41
|This shows that there is nothing really wrong with our code but what was wrong in first place, was that this data variable had not been fulfilled.  
+
|This shows that there is nothing really wrong with our code but what was wrong in first place, was that this '''data''' variable had not been fulfilled.  
 
|-
 
|-
 
|06:51
 
|06:51
Line 184: Line 184:
 
|-
 
|-
 
|06:58
 
|06:58
|Here, let me say "echo variable alex" and this is line 5.  
+
|Here, let me say '''echo''' variable '''alex''' and this is line 5.  
 
|-
 
|-
 
|07:05
 
|07:05
Line 193: Line 193:
 
|-
 
|-
 
|07:19
 
|07:19
|This is unfulfilled if the name has not been specified in the header.
+
|This is unfulfilled if the name has not been specified in the '''header'''.
 
|-
 
|-
 
|07:23
 
|07:23
|Therefore "data equals nothing" and so we get the error "Undefined index" just like we get "Undefined variable" if we '''echo''' a variable that hasn't been set.  
+
|Therefore data equals nothing and so we get the error "Undefined index" just like we get "Undefined variable" if we '''echo''' a variable that hasn't been set.  
 
|-
 
|-
 
|07:35
 
|07:35
Line 214: Line 214:
 
|-
 
|-
 
|08:04
 
|08:04
|So, even though you are using this "if data exists", technically this still doesn’t exist, if nothing has been put here. So look out for them.  
+
|So, even though you are using this '''if data''' exists, technically this still doesn’t exist, if nothing has been put here. So look out for them.  
 
|-
 
|-
 
|08:14
 
|08:14

Latest revision as of 21:57, 22 May 2015

Time Narration
00:00 Hello again. Welcome to the second part of our error tutorial on how to spot errors and how to fix them.
00:08 I have called this "extrachar dot php" and the reason is that when we run this...let's go back, ...click on "extrachar", we get this error "Parse error in..." and all of this and on line 6.
00:23 We are given no information what-so-ever as to what we are expecting or what we are not expecting or anything of that sort.
00:32 We jump to line 6 which is here and at first glance this might look okay.
00:37 But we have actually got an extra bracket on here, so we are deleting that and you can see this now works.
00:44 And now that's pretty easy to spot.
00:47 However, when you are doing things like mathematical calculations, for example, like adding, comparing etc.. if you are doing mathematical calculations like this and you lose track of your brackets.
01:09 Sometimes it is very easy to solve. When we run this, nothing is going to come up because these two don’t equal to each other.
01:18 That didn't return any errors.
01:20 But if I add an extra bracket here, we'll get a "Parse error".
01:28 When you solve complicated if statements or complex mathematical operations, you should check that the brackets match.
01:36 Just make sure that you are checking for all the brackets or anything else like some characters that seem to be in there.
01:48 For example - let's put an "a" in front of that.
01:52 See - when we go back, we still get a "Parse error".
01:56 Let's get rid of this. Refresh that, still getting a "Parse error".
02:00 So, you know you might have typed something. Let's remove that.
02:04 Now the next one I will show you is the "missing page".
02:08 Let me show you the errors for this. Click on "missing.php". Ok, we get more Parse errors as seen on line 9.
02:17 Let's go down and where is line 9? Semicolon.
02:23 Okay. Sorry that was actually not intended. So let's refresh again.
02:28 Okay. So we have got a "Parse error" on line 18.
02:33 Let's go to line 18.
02:37 Okay line 18 - this line here, which I am pointing to.
02:47 So, what is wrong with line 18?
02:49 There is absolutely no content on line 18. How could we possibly have an error?
02:54 And the reason for that is what I said earlier - to check around this area.
03:00 So, we have to check couple of lines up - say 4 or 5 lines up.
03:06 What we have is an "if" statement - "if $postedusername equals (==) 'Alex'", echo "You own PHP Academy" else echo "Hello $name".
03:17 We might say that we have got a starting curly bracket and an ending curly bracket for this "if" statement here.
03:24 Why isn’t it working? That's because we have already started an "if" statement up here.
03:30 And this is the purpose of indentation and the usefulness of indentation.
03:36 To me, when I look at this from experience, I know that since this bracket is indented, that bracket should be indented here, in the same line.
03:45 Therefore it is missing. So, if this was there and that was indented here, then I would know that's from the previous "if" statement up here where the block starts here and the block ends here.
03:59 But here, the block starts here and there is no end bracket here.
04:03 I'll put it here. And when we run this, there you go! It starts working now.
04:08 So, if you miss out characters, you will find that you get weird places for the errors.
04:14 In fact, this is not a weird place for the error because we are saying "else", start of block and end of block.
04:20 And what we are looking for is an end to this block now because this is the block that hasn’t been ended.
04:28 So, we are saying the line error is not actually here because we require an end to a block here.
04:35 Now that will work, okay?
04:38 So, just look around couple of lines up and see where you might have an else without an end or some other character missing or something else that you require that's missing.
04:49 Next, let's switch to the "getpost dot php".
04:53 I have used the error_reporting(E_ All) just to demonstrate this.
04:58 This is to "demonstrate". This type of error is going to be reported.
05:03 This doesn't mean "all errors". It's not an exhaustive list of all the errors that can be reported.
05:10 This is just a parameter for this function.
05:12 This will allow us to see some errors that the user wouldn’t usually say. I mean you wouldn’t use this if you were to launch your own website. But I have a tutorial on this which you should see.
05:25 So, this is a "get post" error.
05:28 Let's go here. Ok; so we have got a variable called "data".
05:33 This is the GET variable called "name".
05:38 Our code says: if this data variable exists, echo $data and this seems like a pretty normal program.
05:47 There is no actual error here.
05:49 We are taking some variable here and everything is working and there is no line break error or line terminating error either.
06:07 We have not missed anything, we don’t need to put anything in.
06:15 But when I run this page, we get a notice.
06:18 Now this is not a "Parse error" which you have seen before. This is a Notice.
06:27 And the page can’t function properly with this error present.
06:33 Let me show you - here I say "name equals alex" and this error disappears.
06:41 This shows that there is nothing really wrong with our code but what was wrong in first place, was that this data variable had not been fulfilled.
06:51 It's the same as saying "data equals absolutely nothing".
06:58 Here, let me say echo variable alex and this is line 5.
07:05 Let's refresh. "Undefined variable alex, Undefined index name".
07:11 So, what we are doing is - okay, let me start from the beginning.
07:19 This is unfulfilled if the name has not been specified in the header.
07:23 Therefore data equals nothing and so we get the error "Undefined index" just like we get "Undefined variable" if we echo a variable that hasn't been set.
07:35 So, as soon as we put some data in here, this error goes.
07:39 Let's refresh .
07:41 If you want to get rid of this initial error, all you need to do is put a "@ (at)" symbol in between or at the start of this line.
07:50 When we refresh, we get nothing because no error has been set.
07:55 No get variable has been set. And as soon as we say "name equals alex" our name is echoed out just like the code here specifies.
08:04 So, even though you are using this if data exists, technically this still doesn’t exist, if nothing has been put here. So look out for them.
08:14 That's all for now. In the last part, I will go through the next two common errors quickly. See you there.
08:20 This is Evan Varkey, dubbing for the Spoken Tutorial project.

Thanks for watching .

Contributors and Content Editors

Gaurav, Minal, PoojaMoolya, Sandhya.np14