Difference between revisions of "PHP-and-MySQL/C2/Common-Errors-Part-2/English-timed"
From Script | Spoken-Tutorial
Sandhya.np14 (Talk | contribs) |
|||
(One intermediate revision by the same user not shown) | |||
Line 4: | Line 4: | ||
|- | |- | ||
|00:00 | |00:00 | ||
− | |Hello again. Welcome to the second part of our error tutorial on how to spot errors and how to fix them. | + | |Hello again. Welcome to the second part of our '''error''' tutorial on how to spot errors and how to fix them. |
|- | |- | ||
|00:08 | |00:08 | ||
− | |I have called this "extrachar dot php" and the reason is that when we run this | + | |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 22: | Line 22: | ||
|- | |- | ||
|00:47 | |00:47 | ||
− | |However when you are doing things like mathematical calculations for example like adding, comparing | + | |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 | |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 statements 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 40: | Line 40: | ||
|- | |- | ||
|01:48 | |01:48 | ||
− | |For example - | + | |For example - let's put an "a" in front of that. |
|- | |- | ||
|01:52 | |01:52 | ||
− | |See - when we go back we still get a "Parse error". | + | |See - when we go back, we still get a "Parse error". |
|- | |- | ||
|01:56 | |01:56 | ||
− | | | + | |Let's get rid of this. '''Refresh''' that, still getting a "Parse error". |
|- | |- | ||
|02:00 | |02:00 | ||
− | |So you know you might have typed something. | + | |So, you know you might have typed something. Let's remove that. |
|- | |- | ||
|02:04 | |02:04 | ||
− | | | + | | Now the next one I will show you is the "missing page". |
|- | |- | ||
|02:08 | |02:08 | ||
− | |Let me show you the | + | |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 | ||
− | | | + | |Let's go down and where is line 9? Semicolon. |
|- | |- | ||
|02:23 | |02:23 | ||
− | |Okay | + | |Okay. Sorry that was actually not intended. So let's '''refresh''' again. |
|- | |- | ||
|02:28 | |02:28 | ||
Line 67: | Line 67: | ||
|- | |- | ||
|02:33 | |02:33 | ||
− | | | + | |Let's go to line 18. |
|- | |- | ||
|02:37 | |02:37 | ||
− | |Okay | + | |Okay line 18 - this line here, which I am pointing to. |
|- | |- | ||
|02:47 | |02:47 | ||
− | |So what is wrong with line 18? | + | |So, what is wrong with line 18? |
|- | |- | ||
|02:49 | |02:49 | ||
− | |There is absolutely no content on line 18. How could we possibly have an error? | + | |There is absolutely no content on line 18. How could we possibly have an '''error'''? |
|- | |- | ||
|02:54 | |02:54 | ||
Line 82: | Line 82: | ||
|- | |- | ||
|03:00 | |03:00 | ||
− | |So we have to check | + | |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 | + | |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 94: | Line 94: | ||
|- | |- | ||
|03:30 | |03:30 | ||
− | |And this is the purpose of indentation and the usefulness of indentation. | + | |And this is the purpose of '''indentation''' and the usefulness of indentation. |
|- | |- | ||
|03:36 | |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. | + | |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 | |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. | + | |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 | |03:59 | ||
Line 109: | Line 109: | ||
|- | |- | ||
|04:08 | |04:08 | ||
− | |So if you miss out characters, you will find that you get weird places for the errors. | + | |So, if you miss out characters, you will find that you get weird places for the errors. |
|- | |- | ||
|04:14 | |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. | + | |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 | |04:20 | ||
Line 118: | Line 118: | ||
|- | |- | ||
|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 124: | Line 124: | ||
|- | |- | ||
|04:38 | |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. | + | |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 | |04:49 | ||
− | |Next | + | |Next, let's switch to the "getpost dot php". |
|- | |- | ||
|04:53 | |04:53 | ||
− | |I have used the | + | |I have used the '''error_reporting(E_ All)''' just to demonstrate this. |
|- | |- | ||
|04:58 | |04:58 | ||
− | |This is to "demonstrate". This type of error is going to be reported. | + | |This is to "demonstrate". This type of '''error''' is going to be reported. |
|- | |- | ||
|05:03 | |05:03 | ||
− | |This doesn't mean all errors. | + | |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 145: | Line 145: | ||
|- | |- | ||
|05:25 | |05:25 | ||
− | |So, this is a "get post" error. | + | |So, this is a '''"get post"''' error. |
|- | |- | ||
|05:28 | |05:28 | ||
− | | | + | |Let's go here. Ok; so we have got a variable called "data". |
|- | |- | ||
|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 | + | |Our '''code''' says: '''if''' this '''data''' variable exists, '''echo''' '''$data''' and this seems like a pretty normal program. |
|- | |- | ||
|05:47 | |05:47 | ||
− | |There is no actual error here. | + | |There is no actual '''error''' here. |
|- | |- | ||
|05:49 | |05:49 | ||
− | |We are taking some variable here and everything is working and there is no line break error or line terminating error | + | |We are taking some variable here and everything is working and there is no line break error or line terminating error either. |
|- | |- | ||
|06:07 | |06:07 | ||
Line 169: | Line 169: | ||
|- | |- | ||
|06:18 | |06:18 | ||
− | |Now this is not a "Parse error" which you have seen before. This is a | + | |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 | + | |Here, let me say '''echo''' variable '''alex''' and this is line 5. |
|- | |- | ||
|07:05 | |07:05 | ||
− | | | + | |Let's '''refresh'''. "Undefined variable alex, Undefined index name". |
|- | |- | ||
|07:11 | |07:11 | ||
− | |So what we are doing is - okay, let me start from the beginning. | + | |So, what we are doing is - okay, let me start from the beginning. |
|- | |- | ||
|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 | + | |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 | ||
− | |So as soon as we put some data in here, this error goes. | + | |So, as soon as we put some data in here, this error goes. |
|- | |- | ||
|07:39 | |07:39 | ||
− | | | + | |Let's '''refresh''' . |
|- | |- | ||
|07:41 | |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. | + | |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 | |07:50 | ||
− | |When we refresh, we get nothing because no error has been set. | + | |When we '''refresh''', we get nothing because no '''error''' has been set. |
|- | |- | ||
|07:55 | |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. | + | |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 | |08:04 | ||
− | |So even though you are using this | + | |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 | ||
Line 220: | Line 220: | ||
|- | |- | ||
|08:20 | |08:20 | ||
− | |This is Evan Varkey dubbing for the Spoken Tutorial project. | + | |This is Evan Varkey, dubbing for the Spoken Tutorial project. |
Thanks for watching . | Thanks for watching . |
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 . |