【问题标题】:Notice: Undefined index:注意:未定义的索引:
【发布时间】:2015-06-02 14:45:28
【问题描述】:

我已经创建了我注册页面,但得到了这个:

我该如何解决?

... 注意:未定义索引:第 2 行 C:\wamp\www\paperblog\signup.php 中的 _name

注意:未定义索引:第 3 行 C:\wamp\www\paperblog\signup.php 中的 _username ...

<?php
$name=$_POST['_name'];
$username=$_POST['_username'];
$gender=$_POST['_gender'];
$email=$_POST['_email'];
$password=$_POST['_password'];
$repassword=$_POST['_repassword'];
$question=$_POST['_question'];
$answer=$_POST['_answer'];
$sql="INSERT INTO members ('name', 'gender', 'city', 'email', 'username', 'password', 'question', 'answer') VALUES ('$name','$username',$gender','$email','$password','$question','$answer')";
include_once("header.html");
$localhost="localhost";
$db_user="root";
$db_password="";
$db_name="blog";
$connect=mysqli_connect("localhost","root","");
mysqli_select_db($connect,"blog");
include_once("header.html");
$msg='';
if ( isset( $_POST['submit'] ) ) 
           if ( empty( $username ) )
           $msg .='<br>Username Required</br>' ;
    else if ( empty( $password ))
           $msg .='Password is Required';
    else if ( $password != $repassword)
           $msg .='Password Mismatch';
                   else {
                    mysql_query($sql);

                   }

?>

【问题讨论】:

  • 您需要在条件if(isset($_POST['submit'])) 中设置所有变量。您还缺少括号,因为您没有只有一条指令。
  • @D4V1D 是绝对正确的。你们都忽略了这样一个事实,即 PHP 已经 告诉 您的 POST 变量缺少您希望存在的键,并且您忽略了这些值需要来自某个地方 - 请参阅我的 (希望多一点外交)回答。

标签: php post undefined


【解决方案1】:

您的错误消息已经告诉您出了什么问题:$_POST 中根本没有 _name。我猜你的意思是使用 HTML &lt;form&gt; 来提供这些东西,所以也许你忘了为此创建字段?

无论如何,您只是依靠您的用户输入,这是一个安全和稳定的危险豪华。您必须始终首先检查来自用户浏览器的数据是否符合您的预期,否则可能会发生可怕的事情。

$sql 是你的 PHP/sql 教程应该告诉你永远不要去做的事情。请阅读this comic,然后写一篇关于你做错了什么的单页文章!

【讨论】:

  • 我不认为你的回答比你的评论更圆滑,但 +1!
猜你喜欢
  • 2015-12-01
  • 2013-11-27
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2023-04-07
相关资源
最近更新 更多