PHP 请问 Notice: Undefined variable

Notice: Undefined variable: rs in /home/sujata/Public/guestbook4/edit.php on line 44 (48,52,56)
44行:

 <td><input type="text" name="username" value="<?php echo $rs['username'];?>" /></td>

请问问题出在哪里?

edit.php:

 <?php

define('DEBUG', ture);
if (DEBUG) {
    ini_set("display_errors", 1);
    error_reporting(E_ALL);
}

include "conn.php";
if (!empty($_GET['id'])) {

    $sql = 'SELECT * FROM user where id =  ' . $_GET['id'];
    $query = mysql_query($sql);
    $rs = mysql_fetch_array($query);

}

if (!empty($_POST['sub'])) {
    $username = $_POST['username'];
    $email = $_POST['email'];
    $content = $_POST['content'];
    $refer_url = $_POST['refer_url'];
    $mysql = 'UPDATE user SET username = ' . $username . ', email = ' . $email . ', content = ' . $content . ', refer_url = ' . $refer_url;
    if (mysql_query($mysql)) {
        echo "修改成功!";
        header("refresh:5;url = 'admin.php'");
    } else {
        echo "修改失败";
    }
}

?>
 <html>
  <head>
    <meta http-equiv="content-type" content="text/html" charset="utf8" />
    <title>编辑</title>
  </head>
  <body>
    <table>
      <form method="post" action="edit.php">
        <tr>
        <td>用户名:</td>

        <td><input type="text" name="username" value="<?php echo $rs['username'];?>" /></td>
        </tr>
        <tr>
        <td>邮箱:</td>
        <td><input type="text" name="email" value="<?php echo $rs['email'];?>" />请输入你的邮箱,方便我们及时取得联系</td>
        </tr>
        <tr>
        <td>内容:</td>
        <td><textarea name="content" cols="50" rows="5"><?php echo $rs['content'];?></textarea></td>
        </tr>
        <tr>
        <td>反馈网址:</td>
        <td><input type="text" name="refer_url" value="<?php echo $rs['refer_url'];?>" /></td>
        </tr>
        <tr>
        <td><input type="submit" name="sub" value="提交" /></td>
        </tr>
      </form>
    </table>
  </body>
 </html>

admin.php:

 <h1>管理员后台</h1>
<?php

include "conn.php";
$sql = "select * from user";
$query = mysql_query($sql);

while ($rs = mysql_fetch_array($query)) {

    ?>
 <html>
  <head>
    <meta http-equiv="content-type" content="text/html" charset="utf8" />
    <title>管理员后台</title>
  </head>
  <body>
  <hr />
    <table>
      <form method="post" action="index.php">
        <tr>
        <td>用户名:</td>
        <td><?php echo $rs['username'];?>&nbsp;&nbsp;<a href="edit.php?id=<?php echo $rs['id']?>">编辑</a> &nbsp;&nbsp;<a href="del.php?del=<?php echo $rs['id']?>">删除</a></td>
        </tr>
        <tr>
        <td>留言时间:</td>
        <td><?php echo $rs['dates'];?></td>
        </tr>
        <tr>
        <td>邮件:</td>
        <td><?php echo $rs['email'];?></td>
        </tr>
        <tr>
        <td>内容:</td>
        <td><?php echo $rs['content'];?></td>
        </tr>
        <tr>
        <td>反馈网址:</td>
        <td><?php echo $rs['refer_url'];?></td>
        </tr>
      </form>
    </table>
  </body>
 </html>
 <?php
}

?>

index.php:


include "conn.php"; //连接数据库文件
if (!empty($_POST['sub'])) {
    $username = $_POST['username'];
    $email = $_POST['email'];
    $content = $_POST['content'];
    $refer_url = $_POST['refer_url'];

    $sql = "insert into `user` (`id`,`username`,`dates`,`email`,`content`,`refer_url`) VALUES (null,'$username',now(),'$email','$content','$refer_url')";
    $query = mysql_query($sql);
    if ($query) {
        echo ("已经收到你的信息啦,我们会加快步伐改进的。谢谢你的建议!<br />");
        echo ("<a href=#>5秒后将自动跳转到首页,如果没有跳转你可以直接点击此连接</a>");
        header("refresh:5;url='index.php'");
    } else {
        echo "对不起,忙碌....能重新再试一遍吗?>_< " . mysql_error();
        header("refresh:5;url='index.php'");

    }
}

?>

 <html>
  <head>
    <meta http-equiv="content-type" content="text/html" charset="utf8" />
    <title>意见反馈</title>
  </head>
  <body>
    <table>
      <form method="post" action="index.php">
        <tr>
          <td>用户名:</td>
          <td><input type="text" name="username" value="" /></td>
        </tr>
        <tr>
          <td>邮箱:</td>
          <td><input type="text" name="email" value="" />请输入你的邮箱,方便我们及时取得联系</td>
        </tr>
        <tr>
          <td>内容:</td>
          <td><textarea name="content" cols="50" rows="5">说点什么?</textarea></td>
        </tr>
        <tr>
          <td>反馈网址:</td>
          <td><input type="text" name="refer_url" value="" /></td>
        </tr>
        <tr>
         <td><input type="submit" name="sub" value="提交" /></td>
        </tr>
      </form>
    </table>
  </body>
 </html>

在调试程序的时候,很多网上提供的源码都会出现 Undefined variable错误,一般情况下php是不需要定义变量的,但如果服务器什么都报错的,就会出现错误,所以服务器上都是应该屏蔽这种错误的
PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题:
  
  Notice: Undefined variable
  
  这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题。
  
  需要设置显示错误级别,来解决问题。
  
  网络上的通用解决办法是修改php.ini的配置:
  
  解决方法:
  
  1) error_reporting设置:
  
  找到error_reporting = E_ALL
  
  修改为error_reporting = E_ALL & ~E_NOTICE
  
  2) register_globals设置:
  
  找到register_globals = Off
  
  修改为register_globals = On
  
  我发现在php代码中直接使用
    
  error_reporting(E_ALL & ~E_NOTICE);
  
  可以解决这个问题。

以下是补充:

Notice: Undefined variable: email in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9

  Notice: Undefined variable: subject in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9

  Notice: Undefined variable: comment in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9

  ........

其实以上就是未定义变量,我们就直接判断变量的代码导致。

  本来php是不需要定义变量的,但是出现这种情况应该怎么办呢?

  只要在C:\WINDOWS找出php.ini的

  在php.ini中的302行 error_reporting = E_ALL

  修改成

  error_reporting = E_ALL & ~E_NOTICE再重启apache2.2就行了

  解决方法:修改php.ini

  将: error_reporting = E_ALL

  修改为:error_reporting = E_ALL & ~E_NOTICE

  如果什么错误都不想让显示,直接修改:

  display_errors = Off

  如果你没有php.ini的修改权限,可在php头部加入

  ini_set("error_reporting","E_ALL & ~E_NOTICE");

  即可

你的代码有没有问题啊

应该是$_GET['id']为0或不存在或其他导致false的值

error_reporting(0);

操作不成功?保存吗?