-1
因此,这里是我的代码,不知道为什么它不工作已经看了几个小时,指向任何人都可以弄明白。变量传递正常,并建立了服务器连接。浏览器给出的错误消息是,PHP不会更新/插入
您的SQL语法错误;检查与您的MySQL服务器版本对应的手册,以便在'用户名'','2011年8月20日星期六02:02:22 PM','first','last','ssn'在第2行附近使用正确的语法
我用变量名称替换了变量数据,这样您就可以得到一个想法,所以首先说的是,浏览器实际上显示了我输入的名字。
谢谢!
$HTTP_COOKIE_VARS['username'] = $username;
$email = $_REQUEST['email'];
$Todaysdate = date('l jS \of F Y h:i:s A');
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$ssn = $_REQUEST['ssn'];
$street = $_REQUEST['street'];
$city = $_REQUEST['city'];
$zip = $_REQUEST['zip'];
$phone1 = $_REQUEST['phone1'];
$phone2 = $_REQUEST['phone2'];
$hdhas = $_REQUEST['hdhas'];
$mi= $_REQUEST['mi'];
$query = ("INSERT INTO Members (username, email, todaysdate, firstname, lastname, ssn, street, city, zip, phone1, phone2, hdhas, mi)
VALUES('$username','$email', '$Todaysdate', '$firstname', '$lastname', '$ssn', '$street', '$city', '$zip', '$phone1', '$phone2', '$hdhas', '$mi')");
$checkuser = mysql_query("SELECT username FROM Members WHERE username='$username'");
if(mysql_num_rows($checkuser)>0)
{
mysql_query("UPDATE Members SET email='$email', username='$username', todaysdate='$Todaysdate', firstname='$firstname', lastname='$lastname', ssn='$ssn', street='$street', city='$city', zip='$zip', phone1='$phone1', phone2='$phone2', hdhas='$hdhas', mi='$mi' WHERE username = '$username'");
}
else {
mysql_query($query);
}
mysql_query($query) or die(mysql_error());
mysql_close();
'$ email'是一个完整的查询。此外,重要的阅读:http://php.net/manual/en/security.database.sql-injection.php –
欢迎MysqlInjection,来感觉像在家里:)!阅读http://php.net/manual/en/security.database.sql-injection.php – genesis
你在代码中的SQL注入漏洞与Jupiter一样大。也许你不小心插入了一些不好的值(即至少包含''')。 __LE__:哦,我发现它:'[..]正确的语法在'username''附近使用< - 插入的值是'username',这打破了查询。 –