这是我的代码。我无法通过php获取表单数据。即使我回应了表单数据,但它显示只是重新加载登录页面 登录表单
<form id="loginform" action="sql.php" method="post">
<label style="text-align:center" for="Email">Email :</label>
<input type="text" name="email" id="email" value="<?php echo $user_profile['email'];?>">
<label for="pass" style="text-align:center;">Password :</label>
<input type="password" name="password" id="password">
<div id="space" style="height:15px; width:500px; margin:auto;"></div>
<div id="button" style="height:30px; width:50px; margin:auto;">
<input type="submit"onclick="return verify(this);"name="submit" value="LoG In" style="border:outset; border-color:#000080; margin:auto;">
</div>
</form>
和 sql.php文件
<?php
$a = $_POST['email'];
$b = $_POST['password'];
$c = mysql_real_escape_string($a);
$d = mysql_real_escape_string($b);
$e = htmlentities($c);
$f = htmlentities($d);
$user = strip_tags($e);
$pass = strip_tags($f);
session_start();
$dbhost = '';
$dbuser = '';
$dbpass = '';
$dbname = '';
$table = '';
$conn = mysql_connect($dbhost,$dbuser,$dbpass) or die ("I cannot connect to the database because: " . mysql_error());
mysql_select_db($dbname) or die ("I cannot select the database because: " .mysql_error());
$sql = "INSERT INTO data (email, password) VALUES('$user','$pass')";
$result = mysql_query($conn,$sql);
if($result){
echo $user;
echo "";
echo $pass;};
mysql_close($conn);?>
答案 0 :(得分:0)
您的逻辑完全错误,您正在进行数据库插入,而不是将发布的值与表中的现有值进行比较。
但是,您目前的问题是由于您使用mysql_real_escape_string
造成的。当您在打开数据库连接之前使用该函数时,它将返回FALSE
,在您尝试使用它们之前有效地清空变量。
您应该切换到PDO(或mysqli)和预处理语句,因为不推荐使用mysql_*
函数。然后,您需要根据发布的信息从数据库中SELECT
行,而不是插入一行。
如果您不能/不想切换到PDO或mysqli,则应在使用mysql_real_escape_string
之前打开数据库连接,以便将代码更改为:
<?php
$conn = mysql_connect($dbhost,$dbuser,$dbpass) or die ("I cannot connect to the database because: " . mysql_error());
$a = $_POST['email'];
$b = $_POST['password'];
$c = mysql_real_escape_string($a);
$d = mysql_real_escape_string($b);
// etc.