ferahlatıcı sayfası olmadan komut dosyası çalıştırarak giriş formunu, ancak bir kez başarılı formunu kaldırmak gerekir

1 Cevap php

Aşağıdaki kod adı / şifre alır ve backend.php komut dosyası aracılığıyla çalıştırır.

<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#login_form").submit(function() {
                var unameval = $("#username").val();
                var pwordval = $("#password").val();
                $.post("backend.php", { username: unameval, 
                password: pwordval }, function(data) {
                    $("#status p").html(data);
                });
                return false;
            });
        });
    </script>
    </head>
<body>
<?php
    if(isset($_SESSION['user_session'])) {
        print '<p>user '.$_SESSION['user_session'].' logged in</p>';
    } else { ?>
        <form id="login_form" method="post">
            <p>Username: <input type="text" id="username" name="username" /></p>
            <p>Password: <input type="password" id="password" name="password" /></p>
            <p><input type="submit" value="Login" /></p>
        </form>
        <div id="status">
            <p></p>
        </div> <?php
    }?>

</body>
</html>

Bu şekilde, kullanıcının kimliğini doğrular, ama formu kez başarılı gizlemek olduğunu istediğinizi.

http://grab.by/3hoH: Burada gibi form gönderilmeden önce sayfa görünüyor ne

Form başarıyla teslim edildikten sonra burada sayfası: http://grab.by/3hoR

Ben başarı, formunu görüntülemek yoksa ben, o, başarı için denetlemek için bazı javascript çalıştırmak gerekir düşünüyorsanız! Başarı, ekran formu.

Bu durumda ise ben, bunu nasıl emin değilim.

backend.php kodu

<?php
session_start();
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once('adLDAP.php');
//header('Content-type: text/json');
$adldap = new adLDAP();

if(isset($_POST['username']) && isset($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];  // associated password

    // connect to ldap server
    $authUser = $adldap->authenticate($username, $password);
    if ($authUser === true) {
        print "<p>authuser true</p>";
        $_SESSION['user_session'] = $username;

        if(isset($_SESSION['user_session'])) {
            print "<p>session is set</p>";
        }   
    }
    else {
      print "<p>User authentication unsuccessful</p>";
    }
}
?>

1 Cevap

Sen açma başarılı olmadığını görmek için yanıtı kontrol, ve, o olsaydı, giriş formu kaldırmak gerekir.

Sen yazarak giriş formunu kaldırabilirsiniz

 $('#login_form').remove();

To check whether the login succeeded, you should change your server-side script to return a JSON object that indicates whether the login succeeded and contains a message.
For example:

{ success: true, message: "You have successfully logged in" }