PHP 4.0 Bug #7985: All PHP 3 scripts have "Undefined Variable" Warnings
| From: | richlacroix at home dot com | Date: | Mon, 27 Nov 2000 02:24:34 +0000 |
| Subject: | PHP 4.0 Bug #7985: All PHP 3 scripts have "Undefined Variable" Warnings | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-39175@lists.php.net to get a copy of this message | ||
From: richlacroix@home.com
Operating system: Win 98 SE
PHP version: 4.0.3pl1
PHP Bug Type: MySQL related
Bug description: All PHP 3 scripts have "Undefined Variable" Warnings
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 files\apache group\apache\htdocs\mysqltest.php on
line 21
Warning: Undefined variable: delete in d:\program files\apache group\apache\htdocs\mysqltest.php on
line 41
Warning: Undefined variable: id in d:\program files\apache group\apache\htdocs\mysqltest.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.
--
Edit Bug report at: http://bugs.php.net/?id=7985&edit=1