嗨我有2个数据库一个用于凭证号码,另一个用于新用户 我需要从订户插入凭证号码,如果号码是正确的,那么他们可以完成注册,如果不是,他们将被要求从他们的凭证号码确认,我使用这个代码,但它是非常弱的,做了不工作
<?php
$username = "salbota";
$password = "lK8tFIGAJ_Jp";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");
$selected = mysql_select_db("salbota_users", $dbhandle);
$myusername = $_POST['user'];
$mypassword = $_POST['pass'];
$mycardnum = $_POST['cardnum'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$mycardnum = stripslashes($mycardnum);
$query = "SELECT * FROM cardnumbers WHERE cardnumo='$mycardnum'";
if($mycardnum = $_POST['cardnum']){
mysql_query("INSERT INTO users (Username, Password, cardnum) VALUES ('$user', '$pass', '$mycardnum')");
}else{
echo 'card number is not correct';
}
mysql_close();
?>
<html>
<body>
<h1>Signup!</h1>
<form action="new_user.php" method="POST">
<p>Username:</p><input type="text" name="user" />
<p>Password:</p><input type="password" name="pass" />
<p>Card Number:</p><input type="text" name="cardnum" />
<br />
<input type="submit" value="Signup!" />
</form>
</body>
</html>
答案 0 :(得分:0)
INSERT
查询中的变量是错误的。而不是('$user', '$pass', '$mycardnum')
,它应该是('$myusername', '$mypassword', '$mycardnum')
。
此外,检查“如果数字正确则插入凭证编号”似乎不在您的代码中的任何位置。你也没有检查vouchers
表。
评论后编辑:
你有一个查询$query = "SELECT * FROM cardnumbers WHERE cardnumo='$mycardnum'";
,但你没有执行它。
然后你正在检查if($mycardnum = $_POST['cardnum']){
但是只检查你所做的stripslashes
相同的卡号 - 所以它们无论如何都不匹配。相反,您需要执行查询并检查是否获得了正确的卡号。此外,您的if
支票必须是两个==
标志,而不是一个。
有太多非相关问题导致您的代码无效。我不认为你会在StackOverflow上得到答案。修复上述内容并重试。