注册表单 PHP 中的未定义索引


Undefined index in registration form PHP

我试图创建一个简单的用户注册,将数据保存到数据库中。但我有一个我无法战胜的错误。它说

注意:未定义的索引:pass_conf C:''wamp''www''book''reg.php on 27号线

但我pass_config似乎是对的。

任何想法是什么问题?这是PHP代码

更新我的代码,这个有效

    <?php
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "pagination";
$connection = mysql_connect($host,$dbuser,$dbpass);
$db = mysql_select_db($dbname,$connection);
/*
$name = $_POST["username"];
$pass = $_POST["password"];
$pass_conf = $_POST["pass_conf"];
$email = $_POST["email"];
$ip = $_POST["ip"]; */
$name = isset($_POST['username']) ? $_POST['username'] : 0;
$pass = isset($_POST['password']) ? $_POST['password'] : 0;
$pass_conf = isset($_POST["pass_conf"]) ? $_POST["pass_conf"] : 0; // 0 equals your default off value.
$email = isset($_POST['email']) ? $_POST['email'] : 0;
$ip = isset($_POST['ip']) ? $_POST['ip'] : 0;
if($name == false || $pass == false || $pass_conf == false || $email == false){
echo "Please fill in all the required fields.";
};
if($pass != $pass_conf){
echo "Passwords do not match.";
}else {
$connection = mysql_connect($host,$dbuser,$dbpass);
$db = mysql_select_db($dbname,$connection);
$sql = "INSERT INTO user (username,password,email,ip) VALUES ($name, $pass, $email, $ip)";
$result = mysql_query($sql);
echo "Thank you for your registration to Our Site";
};
?>

我将添加我的表格.php因为我收到了请求。

<?php
$IP = $_SERVER['REMOTE_ADDR']; 
?>
<form name=reg action=reg.php method=post>
Username : <input type=text name=username><br>
Password : <input type=password name=password><br>
Confirm :<input type=password name=pass_conf><br>
Email : <input type=text name=email><br>
<input type=hidden name=ip value='<?php echo $IP ?>'>
<input type=submit value='Register'>
</form>

谢谢

而不是$x = $_POST['x']使用$x = isset($_POST['x']) ? $_POST['x'], null

或使用:

function post($key, $default = null) {
   return isset($_POST[$key]) ? $_POST[$key] : $default;
}

首先,在创建应用程序时使用E_ALL做得很好! 您的"pass_conf"值可能是提交表单时未选中的复选框,因此不会发送任何值。 一个简单的:

$pass_conf = isset($_POST["pass_conf"]) ? $_POST["pass_conf"] : 0; 0 等于默认关闭值。

该消息表示您尝试获取的值不存在于数组中。因此,要么值未填写,要么未正确传递(检查字段名称,它必须完全相同)。

你试过吗:

if (array_key_exists("pass_conf", $_POST))
  $pass_conf = mysql_real_escape_string($_POST["pass_conf"]);
else
  $pass_conf = null;
$sql =
"INSERT INTO events (username, password, email, ip) " . 
"VALUES ('{$name}','{$pass}','{$email}','{$ip}')";

看到我要求我的完整示例的这个问题,并向下滚动到用户dldnh如何回答它;它与你的相似,所以也许它会帮助你:[链接] 未定义的索引通知