Re: Help with a Parse Error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxx> 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.








--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux