| 
	
 | 
 Posted by Jochem Maas on 07/31/05 22:14 
Tom Chubb wrote: 
> Thanks Jochem, useful info. 
> I've changed that now, but why is there still an Undefined index: id error? 
 
its a notice technically not an error. 
and its showing up because you have error reporting set to show notices. 
to be really purist/correct do it something like this: 
 
if (isset($_GET['id']) && ($cleanID = intval( $_GET['id'] ))) { 
         $article = "$cleanID.php"; 
         if (file_exists($article)) { 
                 include $article; 
         } else { 
                 echo "The article you've requested does not exist!"; 
         } 
} else { 
	echo "No article selected"; 
} 
 
or you can suppress the notice with a @ (know what you are doing when 
you use the @ symbol), e.g.: 
 
if ($cleanID = intval( @$_GET['id'] )) { 
         $article = "$cleanID.php"; 
         if (file_exists($article)) { 
                 include $article; 
         } else { 
                 echo "The article you've requested does not exist!"; 
         } 
} else { 
	echo "No article selected"; 
} 
 
> Any ideas? 
>  
>  
> On 31/07/05, Jochem Maas <jochem@iamjochem.com> wrote: 
>  
>>Tom Chubb wrote: 
>> 
>>>I have changed it a bit, and don't have the old code now!!! 
>>>I saw a post which identified a problem using isset when $var = ""; as 
>>>it returns true, so I changed my code to use... 
>>> 
>> 
>>the fact that you are using $id suggests you have register_globals on 
>>- not recommended practice. and mixing using of auto registered globals ($id) 
>>and the equivelant $_GET index ($_GET['id']) is going to lead to confusion 
>>somewhere do the line. 
>> 
>> 
>>>if ($_GET['id'] != "") 
>>>{     $article="$id.php"; 
>>>              if (file_exists($article)) { include $article; } 
>>>              else    { echo "The article you've requested does not exist!"; } 
>>>} 
>>>else { 
>>>echo "No article selected"; 
>>>} 
>> 
>>you hint that the id must always be an integer.... so sanitize your data as such. 
>>to avoid nasty things happening, try like so: 
>> 
>>if ($cleanID = intval( $_GET['id'] )) { 
>>       $article = "$cleanID.php"; 
>>       if (file_exists($article)) { 
>>               include $article; 
>>       } else { 
>>               echo "The article you've requested does not exist!"; 
>>       } 
>>} else { 
>>       echo "No article selected"; 
>>} 
>> 
>> 
>> 
>>>This works fine, except that when the url is www.mysite.com/index.php 
>>>I get the following error... 
>>> 
>>>Notice: Undefined index: id in 
>>>/home/5217/tomchubb/public_html/index.php on line 14 
>>>No article selected 
>>> 
>>>I kmow this will disappear when I turn off error reporting, but how 
>>>can I suppress it properly? 
>>> 
>>> 
>>>On 31/07/05, Edward Vermillion <evermillion@doggydoo.net> wrote: 
>>> 
>>> 
>>>>Tom Chubb wrote: 
>>>> 
>>>> 
>>>>>I am trying to create my own news system and to start with I'm using 
>>>>>static news pages until I get the db working properly. 
>>>>>I'm using the following code: 
>>>>> 
>>>>><?php 
>>>>>if(!isset($_GET['id'])) 
>>>>>{     $article="$id.php" 
>>>>>             if (file_exists($article)) { include $article; } 
>>>>>             else    { echo "The article you've requested does not exist!"; } 
>>>>>} 
>>>>>     else { echo "You did not select an article"; } 
>>>>>?> 
>>>>> 
>>>>>I am testing using the following links... 
>>>>> 
>>>>>www.myurl.co.uk/index.php 
>>>>>www.myurl.co.uk/index.php?id=1 
>>>>>www.myurl.co.uk/index.php?id=2 
>>>>> 
>>>>>When I try the first one, I'd expect it to say you did not select an 
>>>>>article, but it says 
>>>>> 
>>>>> 
>>>>>Notice: Undefined variable: id in 
>>>>>/home/5217/tomchubb/public_html/index.php on line 15 
>>>>>The article you've requested does not exist 
>>>>> 
>>>>> 
>>>>>When I try the third link, I would expect it to say  The article 
>>>>>you've requested does not exist! but it says: 
>>>>> 
>>>>>Parse error: parse error in /home/5217/tomchubb/public_html/index.php on line 16 
>>>>> 
>>>>>Lines 15 & 16 are: 
>>>>>if (file_exists($article)) { include $article; } 
>>>>>else  { echo "The article you've requested does not exist!"; } 
>>>>> 
>>>>>I don't understand why this isn't working and I've tried looking into 
>>>>>this for 2 hours! 
>>>>>Can anyone tell me where I'm going wrong please? 
>>>>> 
>>>>>Thanks, 
>>>>> 
>>>>>Tom 
>>>> 
>>>>What I notice is that the first error says it's on line 15, then you 
>>>>give lines 15 and 16 in the second example but line 15 doesn't have "id" 
>>>>in it. Are you sure your looking at the right lines? Try posting the 
>>>>whole script and maybe someone can catch the problem. 
>>>> 
>>> 
>>> 
>>> 
>> 
>  
>
 
  
Navigation:
[Reply to this message] 
 |