Php 这个通知是指什么

Php 这个通知是指什么,php,Php,注意:第12行C:\wamp\www\espn.com\registration.php中的未定义索引:name 注意:第13行C:\wamp\www\espn.com\registration.php中的未定义索引:username 注意:第14行C:\wamp\www\espn.com\registration.php中的未定义索引:密码 很抱歉,您指定的用户名已被使用。请再挑一个 编码 <html> <body> <?php $dbhost = "localh

注意:第12行C:\wamp\www\espn.com\registration.php中的未定义索引:name

注意:第13行C:\wamp\www\espn.com\registration.php中的未定义索引:username

注意:第14行C:\wamp\www\espn.com\registration.php中的未定义索引:密码 很抱歉,您指定的用户名已被使用。请再挑一个

编码

<html>
<body>
<?php
$dbhost = "localhost";
$dbname = "users";
$dbuser = "root";
$dbpass = "*******";

mysql_connect ($dbhost,$dbuser,$dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$name = $_POST['name'];
$username = $_POST['username'];
$password = md5($_POST['password']);

$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'"); 

$username_exist = mysql_num_rows($checkuser);

if($username_exist > 1){
    echo "I'm sorry but the username you specified has already been taken.  Please pick another one.";
    unset($username);
    include 'registration.html';
    exit();
}

$query = "INSERT INTO users (name,username, password)
VALUES('$name','$username', '$password')";
mysql_query($query) or die(mysql_error());
mysql_close();

echo "You have successfully registered";
?>
</body>
</html>


这意味着$\u POST['name']、$\u POST['username']和$\u POST['password']不存在。当您访问registration.php时,您的表单很可能没有提交(或者字段名错误)

在PHP中,您必须确保在使用之前设置好要使用的每个字段。你可以用!空函数或isset函数


此外,您的脚本容易受到SQL注入的攻击,请查看mysql\u real\u escape\u string函数。您的条件是错误的:如果您想知道用户名是否已经存在,您应该检查它是否大于0,而不是1。您也可以使用计数(*)查询而不是选择行。

这意味着$\u POST['name']、$\u POST['username']和$\u POST['password']不存在。当您访问registration.php时,您的表单很可能没有提交(或者字段名错误)

在PHP中,您必须确保在使用之前设置好要使用的每个字段。你可以用!空函数或isset函数


此外,您的脚本容易受到SQL注入的攻击,请查看mysql\u real\u escape\u string函数。您的条件是错误的:如果您想知道用户名是否已经存在,您应该检查它是否大于0,而不是1。您还可以使用COUNT(*)查询而不是选择行。

基本上,全局变量$\u POST['name']、$\u POST['username']和$\u POST['password']不存在。我建议您检查表单的每个输入是否作为一个名称提交,该名称可以声明如下:

<input name="username"/>
它将返回每个用户名为空(“”)的用户。
同样,如前所述,请尽快修复脚本。

基本上,全局变量$\u POST['name']、$\u POST['username']和$\u POST['password']不存在。我建议您检查表单的每个输入是否作为一个名称提交,该名称可以声明如下:

<input name="username"/>
它将返回每个用户名为空(“”)的用户。
另外,如前所述,请尽快修复脚本。

我应该在哪里检查/添加必要字段?我应该在哪里检查/添加必要字段?不,一点也不
从username=''
不是的用户中选择用户名
从用户中选择用户名
!第一个返回用户名为空字符串(NULL“”!)的行,而第二个返回每行。是的,对不起。我用逻辑思考:没有人有用户名为空的用户。所以我修正了我的答案。不,一点也不
从username=''
不是的用户中选择用户名
从用户中选择用户名
!第一个返回用户名为空字符串(NULL“”!)的行,而第二个返回每行。是的,对不起。我用逻辑思考:没有人有用户名为空的用户。所以我修正了我的答案。可能的重复