Re: [PHP] Undefined Index - is this how you "declare" get & post?

From: John W. Holmes (holmes072000_at_charter.net)
Date: 10/30/03


Date: Wed, 29 Oct 2003 23:19:57 -0500
To: Terence <terence@sunway.edu.my>

Terence wrote:

> Since I started using error_reporting(E_ALL), I havent found (in my opinion)
> a good way to declare GET and POST variables when getting them from a form
> or querystring. I have searched google and the docs for several hours now
> without much luck.
>
> <?php
> error_reporting(E_ALL);
> // This line stops the error reporting, else I get - Notice: Undefined
> index: i in.....
> $HTTP_GET_VARS["i"]="";
>
> if ($HTTP_GET_VARS["i"] == "") {
> include("myfile.php");
> }
> ?>
>
> Is there a better way?
> I have tried var $i (only for classes I've discovered)
> settype($i, "integer")
>
> Thanks in advance.
>

isset() is your friend.

if(isset($HTTP_GET_VARS['i']) && $HTTP_GET_VARS['i'] == '')
{ include('myfile.php'); }

This will not trigger any warning, even under E_ALL.

In response to some of the other posts, developing at E_ALL is a good
idea as it'll help you spot potential problem areas.

Also, even though you have a form element defined, it may not always
appear in $HTTP_GET_VARS/$_GET (post, etc). One example are checkboxes.
If no boxes are checked, the variable is never created and this is the
way to check.

-- 
---John Holmes...
Amazon Wishlist: www.amazon.com/o/registry/3BEXC84AB3A5E/
php|architect: The Magazine for PHP Professionals – www.phparch.com


Relevant Pages