我正在为表单执行更新脚本。当用户信息在注册时提交时,它将提交给用户数据库,其中包含以下字段:username,pass,full_name和telephone。例如,当用户更新表单以更改他/她的名字时,用户名,密码,远程字段也是更新表单的一部分。因此,当用户在更新表单上更新他或她的电话号码时,表单上还会出现用户名信息和通行证信息以及姓名信息。问题是系统识别出已经使用了用户名。
那么我如何更新我的脚本,以便系统可以选择更改的值。或者有更好的方法吗?
代码:
if (!get_magic_quotes_gpc()) {
$_POST['username'] = addslashes($_POST['username']);
}
$idcheck = $_POST['username'];
$check = mysql_query("SELECT username FROM users WHERE username = '$username'")
or die(mysql_error());
$check2 = mysql_num_rows($check);
if ($check2 != 0) {
print("username already taken");
die('');
}
基本上问题是它识别出这些值已经存在,但它没有意识到它的用户信息与使用公共ID或用户名的其他用户相同...
答案 0 :(得分:1)
只需从更新脚本中删除以下代码:
$idcheck = $_POST['username'];
$check = mysql_query("SELECT username FROM users WHERE username = '$username'") or die(mysql_error());
$check2 = mysql_num_rows($check);
if ($check2 != 0) {
print("username already taken");
die('');
}
事情应该没问题。
如果你有相同的注册和更新脚本,我建议你制作两个不同的脚本,因为这是一种更好的做法。
最佳, 卡姆兰
答案 1 :(得分:1)
我认为您之前发布的代码是正确的,如果您要检查是否已经使用了用户名,以防用户决定更改自己的用户名,只需运行您在UPDATE语句之前发布的这段代码,如果用户名很好(或允许它更改其他文件,同时保留旧用户名并回显已经采用的用户名的警告)将运行