JQuery вход в систему с PHP - PullRequest
       0

JQuery вход в систему с PHP

0 голосов
/ 21 января 2011

Я пытаюсь добавить вход в систему Jquery с помощью PHP.Я смог привязать к LDAP без JQuery и войти - ОК.Но как только я добавляю код JQuery, он отправляет сообщение об ошибке:

ldap_bind () [function.ldap-bind]: невозможно привязать к серверу: недействительные учетные данные.

Я сделал многопоиск и все еще чего-то не хватает, но не совсем уверен, что ...: (

Вот что у меня есть до сих пор:

    <script type"text/javascript"> 

    var username = $("input#username").val();  
    var password = $("input#password").val();  
    var dataString = 'username='+ username + '&password=' + password;  
$(document).ready(function(){
$("form#memberlogin").submit(function() {

$.ajax({
type: "POST",
url: "verification.php",
data: dataString,
success: function(data){
if(data.success) {
$('form#memberlogin').hide()
$('div.success').fadeIn();

}
else {
    alert(data); 
  }
}
});
return false;
});
}); 

</script>

Это мой проверочный файл .php:

    // LDAP variables
    $ldap['user']              = $_POST["username"];
    $ldap['pass']              = $_POST["password"];
    $ldap['host']              = 'my.server.com'; // host or server name
    $ldap['port']              =  389; // LDAP port on the server
    $ldap['dn']                = 'uid='.$ldap['user'].',cn=users,dc=my,dc=server,dc=com'; // LDAP search
    $ldap['base']              = ' ';

    // connect to LDAP
     $ldap['conn'] = ldap_connect( $ldap['host'], $ldap['port'] );
     ldap_set_option($ldap['conn'], LDAP_OPT_PROTOCOL_VERSION, 3);

    // match user and password
     $ldap['bind'] = ldap_bind( $ldap['conn'], $ldap['dn'], $ldap['pass'] );

    if ($ldap['bind']){

    session_cache_limiter('nocache,private');    

    $_SESSION['username']=$_POST["username"];

    $_SESSION['password']=$_POST["password"];

    $_SESSION['user_date']= date("Y-n-j H:i:s");

    $page=$_SERVER['PHP_SELF'];

   echo "success!";

}
    else
    {
            echo "login failed...";

            exit();
    }    
?> 

и вот форма:

    <form id="memberlogin" method="POST">

<fieldset>
<legend>Please login:</legent>

<label for="username">Username:</label>
<input id="username" class="text_inputs" type="text" name="username" size="20"  class="imputbox">

<label for="username">Password:</label>
<input name="password" class="text_input" type="password" name="password" size="20"  class="imputbox">
<input type="submit" name="submit" value="access"  />
</fieldset>
</form>

1 Ответ

2 голосов
/ 21 января 2011

Ваша проблема в HTML: ваше поле password имеет 2 name атрибута, но не id, поэтому пароль, который вы отправляете, всегда пуст.

Я бы рекомендовал переписать ваш код, чтобы избежатьповторение.

$(document).ready(function() {
    $("form#memberlogin").submit(function(e) {
        // instead of creating data string by hand just .serialize your form
        dataString = $(this).serialize();
        $.post("verification.php", dataString, function(data) {
            $('form#memberlogin').hide();
            $('div.success').fadeIn();
        });
        e.preventDefault(); // this is better than "return false"
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...