0

PHPコードは次のとおりです。

<?php

// Inialize session
session_start();

// Include database connection settings
include('config.inc');

// Retrieve username and password from database according to user's input
$sql ="SELECT * FROM user WHERE (email = '" . mysql_real_escape_string($_POST['username']) . "') and (password = '" . mysql_real_escape_string(md5($_POST['password'])) . "')";

$login = mysql_query($sql);


// Check username and password match
if (mysql_num_rows($login) == 1) {
    // Set username session variable
    $_SESSION['username'] = $_POST['username'];
    // Jump to secured page
    header('Location: http://localhost/site/client/index.php');
}
else {
    // Jump to login page
    header('Location: http://localhost/site/acces-client/index.php');
}

?>

これは機能します:

次のフォームは、ユーザーのログインとリダイレクトを正常に取得できます。

<table border="0">
<form method="POST" action="loginproc.php">
<tr><td>Email:</td><td>:</td><td><input type="text" name="username" size="30"></td></tr>
<tr><td>Mot de passe:</td><td>:</td><td><input type="password" name="password" size="30"></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" value="Envoyer"></td></tr>
</form>
</table>

これは機能しません。 「機能しない」とは、リダイレクトがないことを意味します。正しい URL が呼び出されますが (http://localhost/site/client/index.php)。

$.post("http://localhost/site/loginproc.php", {username: email, password: motdepasse})
    .success(function(result3){
    });
4

2 に答える 2

1

リダイレクトを機能させるには、次のようなものが必要です。

$.post("http://localhost/site/loginproc.php", {username: email, password: motdepasse})
    .success(function(result3){
        // won't reach here, since the php script never returns a 200 OK
    })
    .error(function(jqXHR, textStatus, errorThrown) {
        if(jqXHR.status == 302 || jqXHR.status == 301) {
            // 301 or 302 means redirected (perm, temp respectively)
            window.location.href = jqXHR.getResponseHeader('Location');
        }
    });
于 2012-07-10T12:22:08.303 に答える
0

次の作品:

$.post("http://localhost/site/acces-client/loginproc.php", {username: email, password: motdepasse})
        .success(function(jqXHR, textStatus, errorThrown) {
        window.location = 'http://localhost/site/client/index.php';
    })
});
于 2012-07-10T12:49:46.950 に答える