Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql PHP-注意:未定义索引:_Mysql_Php - Fatal编程技术网

Mysql PHP-注意:未定义索引:

Mysql PHP-注意:未定义索引:,mysql,php,Mysql,Php,可能重复: 我正在尝试做一个注册表单,在数据库(MySQL)中注册一个用户 代码应注册为: 名字 姓 用户名 密码 电子邮件 安全问题 安全答案 在保存到表中之前,代码会检查用户名或密码是否已存在,如果已存在,则会回显错误消息,如果不存在,则会保存到数据库中 但是,在页面加载时,我发现以下错误: Notice: Undefined index: Name in C:\xampp\htdocs\Task2\registration.php on line 216 Notice: Undef

可能重复:

我正在尝试做一个注册表单,在数据库(MySQL)中注册一个用户

代码应注册为:

  • 名字
  • 用户名
  • 密码
  • 电子邮件
  • 安全问题
  • 安全答案
在保存到表中之前,代码会检查用户名或密码是否已存在,如果已存在,则会回显错误消息,如果不存在,则会保存到数据库中

但是,在页面加载时,我发现以下错误:

Notice: Undefined index: Name in C:\xampp\htdocs\Task2\registration.php on line 216

Notice: Undefined index: Surname in C:\xampp\htdocs\Task2\registration.php on line 217

Notice: Undefined index: Username in C:\xampp\htdocs\Task2\registration.php on line 219

Notice: Undefined index: Email in C:\xampp\htdocs\Task2\registration.php on line 221

Notice: Undefined index: C_Email in C:\xampp\htdocs\Task2\registration.php on line 222

Notice: Undefined index: password in C:\xampp\htdocs\Task2\registration.php on line 224

Notice: Undefined index: c_password in C:\xampp\htdocs\Task2\registration.php on line 225

Notice: Undefined index: SecQ in C:\xampp\htdocs\Task2\registration.php on line 227

Notice: Undefined index: SecA in C:\xampp\htdocs\Task2\registration.php on line 228

Notice: Undefined variable: mysql_connect in C:\xampp\htdocs\Task2\registration.php on line 231

Fatal error: Function name must be a string in C:\xampp\htdocs\Task2\registration.php on line 231
代码如下:

    <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

  <title>Registration</title>

  <style type="text/css" title="Amaya theme">

body {
    font-size: 12pt;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: normal;
    font-style: normal;
    color: black;
    background-color: white;
    line-height: 1.2em;
    margin-left: 4em;
    margin-right: 2em;
   }

/* paragraphs */
p  {
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
    text-align: left;
   }

/* headings */
h1 {
    font-size: 180%;
    font-weight: bold;
    font-style: normal;
    font-variant: small-caps;
    text-align: left;
    padding: 0;
    margin-top: 1.7em;
    margin-bottom: 1.7em;
   }
h2 {
    font-size: 150%;
    font-weight: bold;
    font-style: normal;
    padding: 0;
    margin-top: 1.5em;
    margin-bottom: 1.1em;
   }
h3 {
    font-size: 130%;
    font-weight: bold;
    font-style: normal;
    padding: 0;
    margin-top: 1.3em;
    margin-bottom: 1.1em;
   }
h4 {
    font-size: 110%;
    font-weight: bold;
    font-style: normal;
    padding: 0;
    margin-top: 1.1em;
    margin-bottom: 1.1em;
   }
h5 {
    font-size: 100%;
    font-weight: bold;
    font-style: italic;
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
   }
h6 {
    font-size: 100%;
    font-weight: normal;
    font-style: italic;
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
   }

/* divisions */
div {
    padding: 0;
    margin-top: 0em;
    margin-bottom: 0em;
   }

/* lists */
ul, ol {
    padding: 0 0 0 3em;
    margin-top: 1em;
    margin-bottom: 1em;
   }
ul ul, ol ol, ul ol, ol ul {
    margin-top: 1em;
    margin-bottom: 1em;
   }
li {
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
    text-align: left;
   }
li p {
    margin-top: 1em;
    margin-bottom: 1em;
   }
dl {
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 1em;
   }
dl dl {
    margin-top: 0em;
    margin-bottom: 0em;
   }
dt {
    padding: 0;
    font-weight: bold;
    margin-top: .3em;
    margin-bottom: .3em;
   }
dd {
    padding: 0;
    margin-top: .3em;
    margin-left: 3em;
    margin-bottom: .3em;
   }
dl p {
    margin-top: .3em;
    margin-bottom: .3em;
   }

/* inline */
strong {
    font-weight: bold;
   }
em {
    font-style: italic;
   }
code {
    font-family: Courier New, Courier, monospace;
   }
ins {
    background-color: yellow;
    text-decoration: underline;
   }
del {
    text-decoration: line-through;
   }


a[href] {
    color: blue;
    text-decoration: underline;
   }


  </style>
</head>

<body>
<h4><span style="font-family: Arial,Helvetica,sans-serif">Name</span></h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="text"  name='Name'/></p>

<h4 style="font-family: Arial,Helvetica,sans-serif">Surname</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="text" name='Surname'/></p>

<h4 style="font-family: Arial,Helvetica,sans-serif">Username</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="text" name='Username' /></p>
<hr style="font-family: Arial,Helvetica,sans-serif" />

<h4 style="font-family: Arial,Helvetica,sans-serif">Email</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="text" name='Email' /></p>

<h4 style="font-family: Arial,Helvetica,sans-serif">Confirm Email</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="text" name='C_Email' /></p>
<hr style="font-family: Arial,Helvetica,sans-serif" />

<h4 style="font-family: Arial,Helvetica,sans-serif">Password</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="password" name='password' /></p>

<h4 style="font-family: Arial,Helvetica,sans-serif">Confirm Password</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="password" name='c_password'/></p>
<hr style="font-family: Arial,Helvetica,sans-serif" />

<h4 style="font-family: Arial,Helvetica,sans-serif">Security Question</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="password" name='SecQ' /></p>

<h4 style="font-family: Arial,Helvetica,sans-serif">Security Answer</h4>

<p style="font-family: Arial,Helvetica,sans-serif"> <input type="password" name='SecA'/></p>
<hr style="font-family: Arial,Helvetica,sans-serif" />

<hr style="font-family: Arial,Helvetica,sans-serif" />


<p><span
style="font-family: Arial,Helvetica,sans-serif"><button>Submit</button></span></p>

</body>

</html>
<?php
$Name = $_POST['Name'];
$Surname = $_POST['Surname'];

$Username = $_POST['Username'];

$Email = $_POST['Email'];
$C_Email = $_POST['C_Email'];

$Password = $_POST['password'];
$C_Password = $_POST['c_password'];

$SecQ = $_POST['SecQ'];
$SecA = $_POST['SecA'];


$mysql_connect ('localhost', 'admin', 'storefile1234');
mysql_select_db ("storefile");

$check_username = mysql_query("SELECT FROM users WHERE username = '$Username'");
$check_email = mysql_query("SELECT FROM users WHERE email = '$Email'");


if ($Name == null || $Surname== null || $Username == null || $Password == null || $C_Password == null || $Email == null || $C_Email == null || $SecQ == null || $SecA == null ) {

    echo "Missing details. Please enter all fields.";


} else {

    if(mysql_num_rows($check_username) != 0 && mysql_num_rows($check_email) != 0)
            {
            echo "Username/Email already exists";
            }
            if  ($Email == $C_Email && $Password == $C_Password) {

                $query = "INSERT INTO users (Username, Name,Surname, Password, Email, SecQ, SecA) VALUES ('NULL', ".$Username."', ".$Name."', ".$Surname."', ".$Password."', ".$SecQ."', ".$SecA."', ".$Email.')"';

                mysql_query($query) or die ('Error registering.');

                echo "Greetings, ".$Name.", you have been registered. ";

    }  else {

        echo "Error registering your account. Please try again.";
            }

 }


?>

登记处
身体{
字号:12号;
字体系列:Helvetica、Arial、无衬线字体;
字体大小:正常;
字体风格:普通;
颜色:黑色;
背景色:白色;
线高:1.2米;
左缘:4em;
右边距:2米;
}
/*段落*/
p{
填充:0;
边缘顶部:1米;
边缘底部:1米;
文本对齐:左对齐;
}
/*标题*/
h1{
字号:180%;
字体大小:粗体;
字体风格:普通;
字体变体:小大写字母;
文本对齐:左对齐;
填充:0;
边缘顶部:1.7em;
边缘底部:1.7em;
}
氢{
字体大小:150%;
字体大小:粗体;
字体风格:普通;
填充:0;
边缘顶部:1.5em;
边缘底部:1.1米;
}
h3{
字体大小:130%;
字体大小:粗体;
字体风格:普通;
填充:0;
边缘顶部:1.3em;
边缘底部:1.1米;
}
h4{
字体大小:110%;
字体大小:粗体;
字体风格:普通;
填充:0;
边缘顶部:1.1米;
边缘底部:1.1米;
}
h5{
字体大小:100%;
字体大小:粗体;
字体:斜体;
填充:0;
边缘顶部:1米;
边缘底部:1米;
}
h6{
字体大小:100%;
字体大小:正常;
字体:斜体;
填充:0;
边缘顶部:1米;
边缘底部:1米;
}
/*分部*/
div{
填充:0;
页边顶部:0em;
边缘底部:0em;
}
/*列表*/
ul,ol{
填充:0.3em;
边缘顶部:1米;
边缘底部:1米;
}
ul-ul,ol-ol,ul-ol,ol-ul{
边缘顶部:1米;
边缘底部:1米;
}
李{
填充:0;
边缘顶部:1米;
边缘底部:1米;
文本对齐:左对齐;
}
李平{
边缘顶部:1米;
边缘底部:1米;
}
dl{
填充:0;
边缘顶部:1米;
边缘底部:1米;
左边距:1米;
}
dl{
页边顶部:0em;
边缘底部:0em;
}
dt{
填充:0;
字体大小:粗体;
边缘顶部:.3em;
边缘底部:.3em;
}
dd{
填充:0;
边缘顶部:.3em;
左边距:3em;
边缘底部:.3em;
}
dl-p{
边缘顶部:.3em;
边缘底部:.3em;
}
/*内联*/
强壮的{
字体大小:粗体;
}
em{
字体:斜体;
}
代码{
字体系列:Courier New、Courier、monospace;
}
ins{
背景颜色:黄色;
文字装饰:下划线;
}
德尔{
文字装饰:线条贯通;
}
a[href]{
颜色:蓝色;
文字装饰:下划线;
}
名称

用户名


电子邮件

确认电子邮件


密码

确认密码


安全问题

安全答案



提交


在从
$\u POST
提取值之前,应该检查它们是否存在。您可以使用
isset
功能进行此操作(http://php.net/manual/en/function.isset.php)您如何加载此页面?邮递上有什么东西要装吗?如果不是,那么$name=$\u POST['name'];分配在帖子上没有任何“名称”。

首先

mysql_connect()不应附带$;它不是一个变量,而是一个预定义的函数。删除$以正确连接到数据库

为什么在这个文档的顶部有一个XML标记?这是HTML/PHP-一个HTML doctype就足够了

从第215行开始,更新:

if (isset($_POST)) {
    $Name = $_POST['Name'];
    $Surname = $_POST['Surname'];

    $Username = $_POST['Username'];

    $Email = $_POST['Email'];
    $C_Email = $_POST['C_Email'];

    $Password = $_POST['password'];
    $C_Password = $_POST['c_password'];

    $SecQ = $_POST['SecQ'];
    $SecA = $_POST['SecA'];
}
POST变量来自您的表单,您必须检查它们是否存在,否则PHP将通知您一个错误。您可以通过放置错误报告(0)来禁用这些通知;在文档的顶部。为了开发目的,最好保持这些可见

只有在表单已提交的情况下,才能与数据库交互(插入、检查)。如果不这样做,PHP将运行所有这些操作,而不需要用户的任何输入。最好使用IF语句,如下所示:

if (isset($_POST['submit']) {
// blah blah
// check if user exists, check if fields are blank
// insert the user if all of this stuff checks out..
} else {
// just display the form
}

棒极了的表单教程:

您会遇到错误,因为您试图读取尚未设置的post变量,它们只在表单提交时设置。将php代码在底部包装成

if($\u服务器['REQUEST\u方法']='POST'){…}


此外,您的代码适合SQL注入。在SQL查询中使用post变量之前,至少要在post变量上使用
mysql\u real\u escape\u string
mysql\u real\u escape\u string
对于生产站点来说还不够好,但是应该在课堂上给你加分。

使用将你的代码放在
if(isset($\u POST)){..}
你的html标签在哪里?。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PD