首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查用户名是否存在POSTBACK

问检查用户名是否存在POSTBACK
EN

Stack Overflow用户
提问于 2014-06-01 07:14:21
回答 2查看 91关注 0票数 0

我想使用POSTBACK方法检查用户是否存在于mysql表中。我学习mysql,我知道它很快就会被删除,但我现在不能改变。我希望警报弹出旁边的用户名文本框,如果它已经exists.At的时候,它不工作。我有一个类似的密码和密码确认代码,但我认为这是不同的,因为我需要一个查询。这就是我所拥有的:

代码语言:javascript
复制
<?php
$passErr = $pass1Err = "";
$passw = $passw1 = "";
$userErr="";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["password"])) {
     $passErr = "Password is required";
                                  }
if (empty($_POST["passconfirm"])) {
     $pass1Err = "Password confirmation is required";
                                 }
if ($_POST['password']!= $_POST['passconfirm'])
 {
     $passErr = "Passwords must be the same";
     $pass1Err = "Passwords must be the same";

 }

}
else {

if (isset($_REQUEST["submit"]))
{

   if (isset($_POST["submit"]))
   {

     $firstname = mysql_real_escape_string($_POST["gname"]);
     $middlename = mysql_real_escape_string($_POST["mname"]);
     $lastname = mysql_real_escape_string($_POST["surname"]);
     $user = mysql_real_escape_string($_POST["username"]);
     $addy = mysql_real_escape_string($_POST["address"]);
     $post = mysql_real_escape_string($_POST["postcode"]);
     $sta = mysql_real_escape_string($_POST["state"]);
     $telephone = mysql_real_escape_string($_POST["tel"]);
     $pass = mysql_real_escape_string($_POST["password"]);
     $systemuser= mysql_real_escape_string($_POST["susername"]);

$sql2 = "SELECT username FROM users WHERE username= '$user'"; 
 $rs = mysql_query($sql2, $conn) 
 or die ('Problem with query' . mysql_error());

$num_rows = mysql_num_rows($rs);

       if(isset($_POST['username'])) {
                     if($num_rows != 0){
                $userErr = "Username already exists";
                                }
                                       }


}
}
mysql_close($conn);
} 
?>

这就是我在表格中得到的:

代码语言:javascript
复制
<label>Chosen Username:</label> <input type="text" name="username" value="<?php 
echo $userErr;?>"/><span class="error">* <?php echo $userErr;?></span><br />

<label>Password:</label> <input type="password" name="password" value="<?php 
echo $passw;?>"/><span class="error">* <?php echo $passErr;?></span><br />
<br />
<label>Password confirmation:</label> <input type="password" name="passconfirm" value="<?php 
echo $passw1;?>"/><span class="error">* <?php echo $pass1Err;?></span><br />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-01 07:22:06

来获取你想要的东西,而不是用

代码语言:javascript
复制
   $num_rows = mysql_num_rows($rs);
   if(isset($_POST['username'])) {
       if($num_rows != 0){
           $userErr = "Username already exists";
        }
    }

代之以

代码语言:javascript
复制
   $num_rows = mysql_num_rows($rs);
   if(isset($_POST['username'])) {
       $userErr = "Username field cannot be empty";
   }elseif($num_rows > 0){
           $userErr = "Username already exists";
   }

这样,如果Username字段为空,它将出错。这也将实现您的目标,即检查数据库以查看用户是否存在。

票数 0
EN

Stack Overflow用户

发布于 2014-06-01 07:35:45

您需要知道,如果使用用户名的请求返回了什么,所以错误消息,否则,插入新用户,

代码语言:javascript
复制
 $sql2 = "SELECT * FROM users WHERE username= '$user'"; 
 $rs = mysql_query($sql2, $conn) or die ('Problem with query' . mysql_error());

   if($num_rows=mysql_fetch_array($rs)){ 

         $userErr = "Username already exists";

         // ....
     } else{
        // $SQL = "INSERT INTO users SET ... 
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23977575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档