-1

データベースからデータを削除する際に問題が発生したため、登録ユーザーの名前とパスワードを表示するテーブルを作成しました。それらの横に削除リンクがあります。削除リンクを押すと、エラーが発生します。

これがviewTheUsers.phpページです

<html> 
<head>
<title>the users</title> 
</head> 
<body>
<table  width ="650" align ="center" border ="2" >     
<tr>
<th width="60">User No </th>    
<th>User Name  </th>   
<th>User Password </th>   
<th>Delete User </th> 
</tr>    
<?php
mysql_connect("hostName","userName","password");
mysql_select_db("db_name");
$Thequery = "SELECT * FROM table_name";
$run = mysql_query($Thequery );
while($row = mysql_fetch_array($run)){
$The_id = $row[0];    
$The_name = $row[1];  
$The_pass = $row[2];  
?>
<tr> 
<td><?php echo $The_id; ?></td>    
<td><?php echo $The_name; ?></td>
<td><?php echo $The_pass; ?></td>
<td><a href="delete.php?deleting=<?php echo $The_id; ?>">Delete</a></td>
</tr>
<?php }?>
</table>
</body>
</html>

これがdelete.phpページです:

<?php
mysql_connect("hostName","userName","password");
mysql_select_db("db_name");
$deleting_id = $_GET['deleting'];
$Thequery = "delete from users where id = '$deleting_id' ";
if (mysql_query($Thequery )){
echo "<script>window.open('viewTheUsers.php?deleted = user has been    deleted!!!','_self')</script>";      
}
?>

マッサージエラーは言う:

Notice: 未定義のインデックス: C:\wamp\www\delete.php の 6 行目で削除

4

1 に答える 1

1

このコードには多くの問題があることに注意してください。それらの 1 つは、get 変数にあるものをデータベース クエリに直接「削除」するために発生するインジェクションの問題です。

また、その window.open 呼び出しは無効な URL を開きます (うまくいくかもしれませんが、おそらくスペースなどに対して何らかの URL エンコードを行う必要があります)。細かいことを言うと、変数の命名は本当に標準的ではありません (最初の文字はほとんど小文字で、なぜ先頭に「the」を追加するのですか? しかし、それは実際には大したことではありません)。

最後に、6 行目を確認してください。このエラーは、「配列内の値にアクセスしようとしていますが、使用しているインデックス ('del') がまったく存在しないことを意味します。おそらく、チェック$_GET['del']しても存在しません」設定します。

于 2013-06-01T09:23:33.757 に答える