2014-04-08 60 views
0

我读到未定义指数误差所有的答案,但不是因为我已经在使用isset功能检查PLZ如何解决售后服务帮助解决这个问题充满了对我..未定义指数形式的错误

<?php 
$con=mysqli_connect("localhost","root","","contact"); 
if (mysqli_connect_errno()) 
{ 
    echo "failed".mysqli_connect_error(); 
    } 

检查submited数据

if(isset($_POST['submit'])) 
     { 
     $name=$_POST['name']; 
     $website=$_POST['website']; 
     $gender=$_POST['gender']; 
     $comment=$_POST['comment']; 
     } 
     $sql="insert into form(name,website,gender,comment) Values('$_POST[name]','$_POST[website]','$_POST[gender]','$_POST[comment]')"; 

     if(!mysqli_query($con,$sql)) 
      { 
       die('error:'.mysqli_error($con)); 
      } 
     else "added"; 

     mysqli_close($con); 
     ?> 
    <html> 
     <body> 
      <form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
       Name: <input type="text" name="name"><br> 
       E-mail: <input type="text" name="email"><br> 
       Website: <input type="text" name="website"><br> 
       <input type="radio" name="gender" value="female">Female 
       <input type="radio" name="gender" value="male">Male<br> 
       Comment: <textarea name="comment" rows="5" cols="40"></textarea> 
       <input type=submit name="submit"><br> 
      </form> 
     </body> 

这些错误来自

Notice: Undefined index: name in H:\Wamp\Xamp\htdocs\form.php on line 15 

Notice: Undefined index: website in H:\Wamp\Xamp\htdocs\form.php on line 15 

Notice: Undefined index: gender in H:\Wamp\Xamp\htdocs\form.php on line 15 

Notice: Undefined index: comment in H:\Wamp\Xamp\htdocs\form.php on line 15 
+1

移动乌尔查询代码里面,如果(isset($ _ POST [ '提交'] )) –

+1

[PHP:“Notice:Undefined variable”和“Notice:Undefined index”]的可能重复(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-索引) – Rikesh

+0

以isset($ _ POST ['submit'])的右括号并将其放在b ''和'?>' – Vagabond

回答

1

请尝试以下纠正代码:

if(isset($_POST['submit'])) 
     { 
     $name=isset($_POST['name']) ? $_POST['name'] : ''; 
     $website=isset($_POST['website']) ? $_POST['website'] : ''; 
     $gender=isset($_POST['gender']) ? $_POST['gender'] : ''; 
     $comment=isset($_POST['comment']) ? $_POST['comment'] : ''; 
     $sql="insert into form(name,website,gender,comment) Values('$name','$website','$gender','$comment')"; 

     // Open the database connection here 
     // aka, mysqli_connect() 


     if(!mysqli_query($con,$sql)) 
      { 
       die('error:'.mysqli_error($con)); 
      } 
     else "added"; 

     mysqli_close($con); 
     } 
     ?> 
    <html> 
     <body> 
      <form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
       Name: <input type="text" name="name"><br> 
       E-mail: <input type="text" name="email"><br> 
       Website: <input type="text" name="website"><br> 
       <input type="radio" name="gender" value="female">Female 
       <input type="radio" name="gender" value="male">Male<br> 
       Comment: <textarea name="comment" rows="5" cols="40"></textarea> 
       <input type=submit name="submit"><br> 
      </form> 
     </body> 

我所做的是添加了验证检查,如果这些字段设置,如果是这样,那么设置的值,如果没有,则设置变量(又名$ name)改为''。如果必填字段为“=”(等于空白),您应该添加一些进一步的验证。

我还调整了您的查询,不使用$ _POST变量,而是使用您分配$ _POST值的变量,因此您知道它们存在的确定。

最后,我移动了mysql连接代码,并将自己查询到if(isset(submit))语句,因此它不会尝试处理那些尚未提交表单的常规页面加载。

0

变化

if(isset($_POST['submit'])) 
     { 
     $name=$_POST['name']; 
     $website=$_POST['website']; 
     $gender=$_POST['gender']; 
     $comment=$_POST['comment']; 
     } 
     $sql="insert into form(name,website,gender,comment) Values('$_POST[name]','$_POST[website]','$_POST[gender]','$_POST[comment]')"; 
     if(!mysqli_query($con,$sql)) 
     { 
      die('error:'.mysqli_error($con)); 
     } 
     else "added"; 

     mysqli_close($con); 
     ?> 

if(isset($_POST['submit'])) 
{ 
     $name=$_POST['name']; 
     $website=$_POST['website']; 
     $gender=$_POST['gender']; 
     $comment=$_POST['comment']; 
     $sql="insert into form(name,website,gender,comment) values ('$name','$website','$gender','$comment')"; 
     if(!mysqli_query($con,$sql)) 
     { 
      die('error:'.mysqli_error($con)); 
     } 
     else "added"; 
     mysqli_close($con); 

    }?> 
+0

undefind变量$ sql这也检查之前,然后问题在这里.. – Zu007

+0

Try @ user1153551答案 –

+0

@ Zu007 - 如果条件不只是一个SQL语句。 – Rikesh

1

更新此插入查询,

$sql="insert into form(name,website,gender,comment) values('". $name ."','". $website ."','". $gender ."','". $comment ."')"; 

希望这有助于你!

0

比朋友的问题是很难 什么错?

if(isset($_POST['submit'])) 
     { 
     $name=$_POST['name']; 
     $website=$_POST['website']; 
     $gender=$_POST['gender']; 
     $comment=$_POST['comment']; 


     $sql="insert into form(name,website,gender,comment) Values('". $name . "','" . $website . "','" . $gender . "','" . $comment . "')"; 

//这也是如果(isset()函数)块

if(!mysqli_query($con,$sql)) 
      { 
       die('error:'.mysqli_error($con)); 
      } 
     else "added"; 
     } 

感谢名单向所有