【发布时间】:2009-02-26 13:52:37
【问题描述】:
我已将我的数据库字段“用户名”和“电子邮件”设置为取消静音,当使用下面的代码时,这仅在“用户名”已经存在时才有效,然后会回显错误。如果他们的电子邮件存在,则用户会收到一个 mysql 重复错误,此时应显示与上述相同的错误。
<?php
require_once ( 'connection.php' );
$username=$_POST['username'];
$password=md5($_POST['password']);
$email=($_POST['email']);
$ip=$_SERVER['REMOTE_ADDR'];
session_start();
$query = "INSERT INTO users (username, password, email, rank, ip, active) VALUES ('$username','$password', '$email', '1', '$ip', '0')";
$sql = "SELECT username AND email FROM users WHERE username = '$username' AND email = '$email'" ;
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row = mysql_fetch_array($result);
if ( $count== 0 )
{
if (!mysql_query($query))
{
die('Error: ' . mysql_error());
}
echo "You are signed up, please follow the link on your email to active your account.";
}
else
{
echo "Username or Email already exists"."<br><a href=\"sign_up.php\">Try Again</a></br>";
}
?
谢谢
【问题讨论】:
-
请更改您的代码,使其不易受到 sql 注入的影响。除其他外,请参阅此主题。 stackoverflow.com/questions/1973/…