运行register.php
文件时遇到问题。我的PHP代码没有从html变量中获取值。
运行代码会产生未定义的索引错误。
我使用过MySQLi和WAMP服务器。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<form action="register.php" method="post">
<table width="200" border="1" align="center">
<tr>
<td width="95">User Name </td>
<td width="89"><label>
<input name="uname" type="text" id="uname" />
</label></td>
</tr>
<tr>
<td>User Password </td>
<td><label>
<input name="upass" type="text" id="upass" />
</label></td>
</tr>
<tr>
<td>User Email </td>
<td><label>
<input name="uemail" type="text" id="uemail" />
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<div align="center">
<input type="submit" name="Submit" value="Sign Up !!" />
</div>
</label></td>
</tr>
</table>
</form>
</body>
</html>
<?php
$con=mysqli_connect('localhost','root','','firstdatabase');
if($con->connect_error)
{
die('error:'.$con->connect_errno.')'.$con->connect_error);
}
$u_name=$_POST['uname'];
$u_pass=$_POST['upass'];
$u_email=$_POST['uemail'];
$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ($u_name, $u_pass, $u_email)");
if($insert_row)
{
print 'Success';
}
else
{
die('error:'.$con->errno.')'.$con->error);
}
?>
答案 0 :(得分:0)
您应该更改查询
$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ('$u_name', '$u_pass', '$u_email')");
但是你的代码还有另一个问题。请拍摄并了解SQL Injection
的内容答案 1 :(得分:0)
将代码的php部分放在register.php。
中变量需要从HTML发布到PHP,以便PHP可以在URL变量中接受它。如果你把它放在与HTML相同的文件中,它不会事先知道发生了什么。
如果您已将当前文件命名为register.php。然后在表单中更改文件的名称,并将您的PHP代码放在那里。
答案 2 :(得分:0)
将代码包含在isset()函数中以提交输入。因为这些是在设置之前检查。在提交表单之前不会设置它们并且将提供未定义的索引
<?php
$con=mysqli_connect('localhost','root','','firstdatabase');
if($con->connect_error)
{
die('error:'.$con->connect_errno.')'.$con->connect_error);
}
if(isset($_POST['Submit'])){
$u_name=$_POST['uname'];
$u_pass=$_POST['upass'];
$u_email=$_POST['uemail'];
$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ($u_name, $u_pass, $u_email)");
if($insert_row)
{
print 'Success';
}
else
{
die('error:'.$con->errno.')'.$con->error);
}
}
?>
答案 3 :(得分:0)
在这里,我建议3-4点重新检查并格式化您的表格,这将解决您的问题。
使用
检查您的表单提交事件 if(isset($_POST['Submit'])) {
$u_name=isset($_POST['uname'])?mysqli_real_escape_string($con,$_POST['uname']):"";
$u_pass=isset($_POST['upass'])?mysqli_real_escape_string($con,$_POST['upass']):"";
$u_email=isset($_POST['uemail'])?mysqli_real_escape_string($con,$_POST['uemail']):"";
$sql = "INSERT INTO user_index(user_name, user_pass, user_email)
VALUES ('".$u_name."', '".$u_pass."', '".$u_email."')";
$insert_row=$con->query($sql);
if($insert_row)
{
print 'Success';
}
else
{
die('error:'.$con->errno.')'.$con->error);
}
}
尝试使用
调试已发布的变量的print_r($ _ POST); 出口(0);
我认为在表单操作中,您需要提供哪些表单将在同一页面上提交。 (可选)
因此,通过考虑以上三点,您将能够获得所需的结果。