2013-11-21 7 views
0

Я работаю над домашней работой, связанной с php. В задании требуется поиск на странице. В этом журнале на странице каждый пользователь должен ввести свое имя пользователя и пароль. Эти имя пользователя и пароль будут сравниваться со значениями в таблице клиентов в базе данных mysql. Если пароль и имя пользователя совпадают с записями в столбцах «cid» и «name» в таблице клиентов, будет показано уведомление об успешном входе в систему.Проверка имени пользователя и пароля с помощью php ajax

У меня есть 3 php-файла, которые являются loginGUI.php, check_login.php и db_connect.php.

db_connect.php:

<?php 
    $db_name="ozcan_b"; // Database name 
    $tbl_name="customer"; // Table name 
    //connect to db 
    $con=mysql_connect("127.0.0.1","xxxxxx","xxxxxx"); 
    mysql_select_db("ozcan_b")or die("cannot select DB"); 
    // Check connection 
    if (mysqli_connect_errno($con)) 
    { 
    echo "Failed to connect to MySQL: " . mysql_connect_error(); 
    exit(0); 
    } 
?> 

loginGUI.php:

<?php 
    session_start(); 
    require_once ('db_connect.php'); // include the database connection 

?> 

<html> 
<head> 
<title> 
Login page 
</title> 
</head> 
<body> 
<h1 style="font-family:Comic Sans Ms;text-align="center";font-size:20pt; 
color:#00FF00;> 
Login Page 
</h1> 
<form name="myForm" method="POST" >  
Username<input type="text" name="userid"/> 
Password<input type="password" name="pswrd"/> 
<input type="button" value="Login" id='checklogin' onclick="check()"/> 
<div id='username_availability_result'></div> 
</form> 

<script language="JavaScript"> 

var xhr_request = false; 
var checking_html = 'Checking...'; 

    //when button is clicked 
    function check(){ 

     //Check the fields 
     if(document.forms['myForm'].userid.value=="" || document.forms['myForm'].pswrd.value=="") 
     { 
      alert('Please enter your password and your username!'); 
     } 

     else 
     { 

      //else show the cheking_text and run the function to check 
      //$('#username_availability_result').html(checking_html); 
      check_availability(); 
     } 
    } 

    //function to check username availability 
function check_availability(){ 
    //get the username 
    var userid = document.forms['myForm'].userid.value; 
    var pswrd = document.forms['myForm'].pswrd.value; 


    //use ajax to run the check 

    var request = $.ajax(
    { 
     url:check.php, 
     type:POST, 
     data:{pswrd:pass, userid:username} 
     success:function() 
     { 

     alert("Success"); 
     } 
    }); 



    </script> 






</body> 
</html> 

check_login.php:

<?php 
    session_start(); 
    require_once ('db_connect.php'); 



    if(isset($_POST['pswrd']) && isset($_POST['userid'])) 
    { 
     $sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc,  trim($_POST['userid'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['pswrd'])."'"); 

     $result = mysql_query($dbc, $sql) or die("Could Not make request"); 
     if(mysql_num_rows($result) == 1) 
     { 
      //redirect to the welcome page 

     } 
     else 
     { 
      echo "User Not Found"; 

    } 


    } 

?> 

И мой вопрос заключается в том, что я не могу получить какой-либо результат после того, как Ajax, кажется, не работает. Что не так?

P.S: Я отредактировал свои php-файлы в соответствии с рекомендациями. Спасибо вам за все, но ajax не работает снова. Помоги мне!!

+3

Где вы в том числе Библиотека jQuery? У вас есть другие JS или CSS? – DevlshOne

+0

Я не включил никакую библиотеку jQuery !! Где я должен включать? Я пишу все php-файлы, используя TextWrangler на mac. – Begumm

+0

Поместите это в '' раздел loginGUI.php: '' – DevlshOne

ответ

1

Вы фактически не отправляете userid и pswrd в свой PHP-скрипт. Вы не можете просто отправить $.ajax случайные свойства и надеяться, что это сработает. Ваши данные должны войти в параметр data.

$.ajax({ 
    type:"POST", 
    url: "check_login.php", 
    cache: false, 
    data:{ 
     userid:userid, 
     pswrd:pswrd 
    }, 
    success: function(result){ 
     //if the result is 1 
     if(result == 1){ 
      //show that the username is available 
      $('#username_availability_result').html(username + ' is Available'); 
     }else{ 
      //show that the username is NOT available 
      $('#username_availability_result').html(username + ' is not Available'); 
     } 
    } 
}); 
+0

Нет, он снова не работает .. :(Я думаю, что мой документ не готов, потому что, когда я использую $ (document) .ready (function() {...}, он не работает. Что мне делать, я У меня очень мало часов ..: (( – Begumm

+0

Вы видите какие-либо ошибки в вашей консоли JavaScript? –

+0

Нет, я не вижу. Мой код не работает, даже если я изменил некоторые строки в соответствии с рекомендациями .. :( – Begumm

0
$sql="SELECT * FROM customer WHERE name='" . $myusername . "' and cid='" . $mypassword . "'"; // fix this line 
if ($count === 1){ // and fix this line 
if (result === 1){ // and this line 

Мне кажется, что вы используете код из разных мест. Вы должны подтвердить, что существует комбинация имени пользователя и пароля, а не проверка доступности.

Никто не собирается делать домашнее задание для вас, извините. Вот хорошая причина, почему ..

<?php 
    session_start(); 
    require_once ('db_connect.php'); 
    if(isset($_POST['pswrd']) && isset($_POST['userid'])) 
    { 
     $sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc,  trim($_POST['userid'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['pswrd'])."'"); 
     $result = mysql_query($dbc, $sql) or die("Could Not make request"); 
     if(mysql_num_rows($result) == 1) 
     { 
      //redirect to the welcome page 
     } 
     else 
     { 
      echo "User Not Found"; 
    } 
    } 
?> 

Вы смешивания mysql и mysqli здесь. Вы должны использовать JUST mysqli! Ваши userid и pswrd переменные присваиваются username и pass в вызове AJAX, но сценарий check_login.php никогда их не видит. Он по-прежнему ищет userid и pswrd. У вас слишком много ошибок, и вы, похоже, не очень отзывчивы в том, что их исправили. Кроме того, мы не являемся домашней страницей .

+0

Да , потому что я новичок в php. – Begumm

+0

Спасибо, я изменил, но снова это не сработает! – Begumm

1

Вы можете использовать JQuery Ajax

<input type='text' id='username'/> 
<input type='text' id='password'/> 
<input type='button' id='submit'/> 

<script type='text/javascript'> 
    $(document).ready(function() 
    { 
    var pass = $("#password").val(); 
    var username = $("#username").val(); 
    $().click(function() 
    { 
     var request = $.ajax(
     { 
      url:server.php, 
      type:POST, 
      data:{password:pass, username:username} 
      success:function() 
      {     
       alert("Success"); 
      } 
     }); 
    });  

});

</script> 

Это должно работать для вас, и может собирать данные на стороне сервера, используя нормальный $_POST['password'] и $_POST['username']

На стороне сервера вы можете сделать это

<?php 
    if(isset($_POST['password']) && isset($_POST['username'])) 
    { 
     $sql = "SELECT * FROM users WHERE username='".mysqli_real_escape($dbc, trim($_POST['username'])."' AND password= '".mysqli_real_escape($dbc, trim($_POST['password'])."'"); 

    $result = mysqli_query($dbc, $sql) or die("Could Not make request"); 
    if(mysqli_num_rows($result) == 1) 
    { 
    //redirect 

    } 
else 
{ 
     echo "User Not Found"; 

} 


    } 


?> 
+0

Нет, это не сработает! Уже $ (document) .ready (function() не работает. Что мне делать? – Begumm

+0

Возможно, вы сделали еще одно заявление document.ready –

+0

Нет, я этого не сделал. Мой код не работает .. :( – Begumm

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