2015-03-14 2 views
-2

Примечание: Undefined переменной: Rs в /home/sujata/Public/guestbook/edit.php по линии 38 (42,46,50)PHP, Неопределенная переменная

линия 38:

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

Любые идеи о том, где я ошибаюсь?

edit.php:

<html> 
<head> 
<meta http-equiv="content-type" content="text/html" charset="utf8" /> 
<title>Edit</title> 
</head> 
<body> 

<?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 "Edit sucess!"; 
     header("refresh:5;url = 'admin.php'"); 
    } else { 
     echo "Edit failed."; 
    } 
} 
?> 
     <table> 
     <form method="post" action="edit.php"> 
     <tr> 
     <td>Username:</td> 
     <td><input type="text" name="username" value="<?php echo $rs['username'];?>" /></td> 
     </tr> 
     <tr> 
     <td>Email:</td> 
     <td><input type="text" name="email" value="<?php echo $rs['email'];?>" /></td> 
     </tr> 
     <tr> 
     <td>Content:</td> 
     <td><textarea name="content" cols="50" rows="5"><?php echo $rs['content'];?></textarea></td> 
     </tr> 
     <tr> 
     <td>Feedback web address:</td> 
     <td><input type="text" name="refer_url" value="<?php echo $rs['refer_url'];?>" /></td> 
     </tr> 
     <tr> 
     <td><input type="submit" name="sub" value="Submit" /></td> 
     </tr> 
     </form> 
    </table> 
    </body> 
</html> 

admin.php:

<h1>Admin page</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>Admin page</title> 
    </head> 
    <body> 
    <hr /> 
    <table> 
     <form method="post" action="index.php"> 
     <tr> 
     <td>Username:</td> 
     <td><?php echo $rs['username'];?>&nbsp;&nbsp;<a href="edit.php?id=<?php echo $rs['id']?>">Edit</a> &nbsp;&nbsp;<a href="del.php?del=<?php echo $rs['id']?>">Delete</a></td> 
     </tr> 
     <tr> 
     <td>Time:</td> 
     <td><?php echo $rs['dates'];?></td> 
     </tr> 
     <tr> 
     <td>Email:</td> 
     <td><?php echo $rs['email'];?></td> 
     </tr> 
     <tr> 
     <td>Content:</td> 
     <td><?php echo $rs['content'];?></td> 
     </tr> 
     <tr> 
     <td>Feedback web address:</td> 
     <td><?php echo $rs['refer_url'];?></td> 
     </tr> 
     </form> 
    </table> 
    </body> 
</html> 
<?php 
} 
?> 

ответ

1

Вы никогда не инициализировать $rs если $_GET['id'] пуст. Вы уверены, что передаете id в свой скрипт?

В частности, после отправки формы вы используете метод POST, поэтому $_GET['id'], безусловно, не установлен. Возможно, вам захочется остановить выполнение сценария перед визуализацией формы, если был отправлен $_POST['sub'] или передать идентификатор пользователя среди других аргументов POST и заполнить $rs на основе этого.

+0

У меня был тест: «echo $ rs [1];» добавлено под строкой: $ rs = mysql_fetch_array ($ query); Я получил значение после работы, поэтому я уверен, что идентификатор передан. id был передан снизу admin.php: – penkku

+0

Вы все еще видите значение после отправки формы? – Ishamael

+0

Нет. Только что «Редактировать не удалось». и "Уведомление: Неопределенная переменная: rs ...". – penkku

Смежные вопросы