PHP 4.0 Bug #7985 Updated: All PHP 3 scripts have "Undefined Variable" Warnings
| From: | rasmus@php.net | Date: | Mon, 27 Nov 2000 02:36:56 +0000 |
| Subject: | PHP 4.0 Bug #7985 Updated: All PHP 3 scripts have "Undefined Variable" Warnings | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-39177@lists.php.net to get a copy of this message | ||
ID: 7985
Updated by: rasmus
Reported By: richlacroix@home.com
Status: Closed
Bug Type: MySQL related
Assigned To:
Comments:
Those are very valid warnings. You get them in PHP 3 as well if you set your error_reporting level
high enough. If you don't want to see these warnings change your error_reporting level in your
php.ini file.
Previous Comments:
---------------------------------------------------------------------------
[2000-11-26 21:24:34] richlacroix@home.com
Running the PHP tutorial on the latest Apache build with the latest MySQL available (all for win
32k) the example scripts that were written for PHPv3 always come back with Warning: Undefined
variable, i.e.
Warning: Undefined variable: submit in d:program filesapache groupapachehtdocsmysqltest.php on line
21
Warning: Undefined variable: delete in d:program filesapache groupapachehtdocsmysqltest.php on line
41
Warning: Undefined variable: id in d:program filesapache groupapachehtdocsmysqltest.php on line 55
from the following script (taken from the tutorial located at:
http://hotwired.lycos.com/webmonkey/99/21/index2a.html
)
Script:
<html>
<body>
<?php
$db = mysql_connect("localhost", "Web User");
mysql_select_db("mydb",$db);
if ($submit) {
// here if no ID then adding else we're editing
if ($id) {
$sql = "UPDATE employees SET
first='$first',last='$last',address='$address',position='$position'
WHERE id=$id";
} else {
$sql = "INSERT INTO employees (first,last,address,position) VALUES
('$first','$last','$address','$position')";
}
// run SQL against the DB
$result = mysql_query($sql);
echo "Record updated/edited!<p>";
} elseif ($delete) {
// delete a record
$sql = "DELETE FROM employees WHERE id=$id";
$result = mysql_query($sql);
echo "$sql Record deleted!<p>";
} else {
// this part happens if we don't press submit
if (!$id) {
// print the list if there is not editing
$result = mysql_query("SELECT * FROM employees",$db);
while ($myrow = mysql_fetch_array($result)) {
printf("<a href="%s?id=%s">%s %s</a> n", $PHP_SELF,
$myrow["id"], $myrow["first"], $myrow["last"]);
printf("<a
href="%s?id=%s&delete=yes">(DELETE)</a><br>", $PHP_SELF,
$myrow["id"]);
}
}
?>
<P>
<a href="<?php echo $PHP_SELF?>">ADD A RECORD</a>
<P>
<form method="post" action="<?php echo $PHP_SELF?>">
<?php
if ($id) {
// editing so select a record
$sql = "SELECT * FROM employees WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$id = $myrow["id"];
$first = $myrow["first"];
$last = $myrow["last"];
$address = $myrow["address"];
$position = $myrow["position"];
// print the id for editing
?>
<input type=hidden name="id" value="<?php echo $id ?>">
<?php
}
?>
First name:<input type="Text" name="first" value="<?php echo $first
?>"><br>
Last name:<input type="Text" name="last" value="<?php echo $last
?>"><br>
Address:<input type="Text" name="address" value="<?php echo
$address ?>"><br>
Position:<input type="Text" name="position" value="<?php echo
$position ?>"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html>
I'm new to PHP, but not development, I've checked the script against every bit of
documentation I could find - spending an entire day doing so, but I can't understand why this
is happening - according to everything I've seen so far, this should not be happening.
Please advise.
Thanks
Richard
P.S. Simple scripts work fine, as long as I don't try anything like a $submit, $delete, and so
on from a form.
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=7985