2015-08-23 8 views
0

Следующая представлять свою регистрационную ссылку, которая приведет открыть модальное:JavaScript Имя пользователя аутентификации

<a href="#registermodal" data-toggle="modal">Register Here</a> 

Ниже представляет код для моего модального диалога:

<div class="modal fade" id="registermodal" role="dialog" style="overflow: scroll;"> 
      <div class="modal-dialog"> 
       <div class="modal-content"> 
        <form class="form-horizontal" name="f2" id="regisform" method="post" onsubmit="return false;" role="form"> 
         <div class="modal-header"> 
          <h4>Registration<button class="close" data-dismiss="modal">&times;</button></h4> 
         </div> 
         <div class="modal-body"> 
       <div class="form-group"> 
           <label for="inputusername3" class="col-sm-2 control-label">Username</label> 
           <div class="col-lg-8"> 
            <input type="text" name="txtusername" class="form-control" id="inputusername3" placeholder="username"> 
           </div> 
          </div> 
</div> 
<div class="modal-footer"> 
           <input type="submit" name="submit" id="regisBtn" class="btn btn-primary" value="Registration"> 
          <a class="btn btn-default" data-dismiss="modal">Cancel</a> 
         </div> 
</form> 
       </div> 
      </div> 
     </div> 

Ниже представляют JavaScript код:

$(document).ready(function(){ 
        $("#regisBtn").click(function(){ 
var username1=$("#inputusername3").val(); 
$.post("registercheck.php", {username:username1}, function(result){ 
if(result==='true') 
alert("true"); 
else 
alert("false"); 
}); 
}); 
}); 

ниже представляют мой PHP код:

<?php 
$username1=$_POST['username']; 
$con= mysql_connect("localhost","root",""); 
mysql_select_db("onlineshop",$con); 
$query1= mysql_query("select username from users where username=$username1",$con); 
if(mysql_num_rows($query1)==1){ 
    echo 'false'; 
}else{ 
mysql_query("insert into users(username)values ('".$username1."')",$con); 
    session_start(); 
    $_SESSION['username']=$username1; 
    echo 'true'; 
} 

Существует ошибка в mysqli_num_rows() показывает, что он ожидает параметр 1, чтобы быть ресурсом, Boolean дано в чем-то вроде этого , котор я не KNW, почему мой код не работает. пожалуйста, помогите мне с моим кодом, чтобы проверить, существует ли имя пользователя или нет?

+0

У вас есть ошибки? Попробуйте записать результат с помощью console.log (result); чтобы увидеть, что происходит – Ahmad

+2

необходимо предотвратить отправку по умолчанию или страница будет перезагружена до того, как будет выполнен ajax. – charlietfl

+0

Ошибка, такая как mysql_num_rows() ожидает, что параметр 1 будет ресурсом, Boolean задан в. –

ответ

1

У вас есть 4 проблемы с кодом. Сначала вы используете функции mysql_*. Вместо этого используйте mysqli_*, mysql_* устарел. Во-вторых, вы уязвимы для SQL-инъекций. Это фиксируется ниже, используя mysqli_real_escape_string. Вместо этого рассмотрите использование PDO. В-третьих, ваш запрос select неверен - любая строка в запросе должна быть обернута в одинарные кавычки. В-четвертых, в парах mysql_* функциональных вызовов ваша ссылка на базу данных является последним параметром. Он всегда должен быть первым параметром в вызове.

<?php 
$con = mysqli_connect("localhost","root",""); 
mysqli_select_db($con, "onlineshop"); 

$clean_username1 = mysqli_real_escape_string($con, $_POST['username']); 

$query1 = mysqli_query($con, "select username from users where username = '".$clean_username1."'"); 

if (mysqli_num_rows($query1) == 1){ 
    echo 'false'; 
} else { 
    mysqli_query($con, "insert into users (username) values ('".$clean_username1."')"); 

    session_start(); 
    $_SESSION['username'] = $_POST['username']; 
    echo 'true'; 
} 
+0

Ошибка в mysqli_num_rows() показывает, что она ожидает параметр 1 быть ресурсом, Boolean задано в чем-то вроде этого –

+0

У вашего пользователя root есть пароль? Является ли сервер MySQL на одной машине? Существует ли база данных «onlineshop»? Существует ли таблица «users» в базе данных «onlineshop»? Является ли «имя пользователя» допустимым полем в таблице «users»? Эта ошибка означает, что что-то в MySQL препятствует запуску запроса, поэтому возвращает false. –

+0

Кроме того, я не указал это явно в своем ответе, но в код, который я включил, были исправлены все 4 проблемы. Не уверен, что вы пробовали это, так как я не упоминал об этом. –

Смежные вопросы