未定义的索引:第9行的C:\ wamp \ www \ ralph \ search.php中的初始值...

时间:2013-11-30 09:52:36

标签: php mysql

下面是我在php中搜索的代码。我在运行这个程序时遇到了问题。所以请帮帮我?

<html>
<body>
<?php

mysql_connect("localhost","root",""); 
mysql_select_db("login");


$initial = mysql_real_escape_string($_POST['initial']);

$find_videos = mysql_query("SELECT * FROM `sigup` WHERE `initial` LIKE '%initial%'");

while($row = mysql_fetch_assoc($find_videos))
{
$initial = $row['initial'];
echo "$initial<br/ >";
}
?>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

你的问题就在这一行:

$initial = mysql_real_escape_string($_POST['initial']);

基本上,只要POST变量initial不存在,就会引发问题。当POST变量initial不存在时,$ _POST数组中将不存在索引initial

在尝试使用POST或GET变量之前,应始终检查是否存在POST或GET变量。您可以使用函数isset:

来完成此操作
if(isset($_POST['initial'])){
    //initial exists as a POST variable
} else{
    //initial does not exist as a POST variable
}

当然,您也可以以三元形式使用它:

$initial = isset($_POST['initial']) ? mysql_real_escape_string($_POST['initial']) : false;
if($initial !== false){
    //Good to go
}

当您认为POST变量应该存在时,某些原因不存在:

  1. 表单元素名称与您尝试访问的POST变量不匹配。例如:您的字段名为name,但您正在尝试访问POST变量names
  2. 直接访问该页面的用户,而不是通过表单访问该页面。