0

ログインボタンを押すと、同じページに応答が返されます。たとえば、ユーザー名が存在しないか重複している場合、同じページにエラーメッセージが表示されます。もう1つ、このデータは別のページに移動し、その後値を返すいくつかのデータベースアクション、そのデータベースクエリを使用するページで値を取得しましたが、実際に送信した場所から最初のページに戻す方法

これはシナリオです login->function selector->controller(データベースクエリページ)

<form method="post" action="selector.php?type=login" id="login" id="loginForm">
                <div class="row">
                    <div class="offset1 span1">            

                        <div class="lbel"><label class="control-label" for ="loginName">Username/Email</label></div>
                        <div class="lbl_inpuCnt"><input type="text" class="input-xlarge" id="loginName" name="loginName" maxlength="50"/></div>
                        <div id="usernameError" style="font-size: 10px; color: red;">&nbsp;</div>
                        <div class="lbel"><label class="control-label" for="loginPassword">Password</label></div>
                        <div class="controls">
                            <input type="password" class="input-xlarge" id="loginPassword" name="loginPassword" maxlength="50"/>
                        </div>
                        <div id="passwordError" style="font-size: 10px; color: red;">&nbsp;</div><br/>
                    </div>
                </div>
                <div style="margin-left: 55px;">
                    <input class="btn" style="width: 80px;" type="reset" name="reset" value="Reset" onclick="clearFields()"/>
                    <input class="btn" style="width: 80px;" type="submit" name="submit" value="Login" onclick="return validateForm();"/>
                </div>
            </form>

次に、セレクターページが表示されます

<?php
include_once 'classes/controller.php';
$controller = new controller();
switch ($_GET['type']) {
case 'signup':
    $registerStatus = $controller->register($_POST);
    $_POST['username'] = $registerStatus;
    break;
case 'login':{
    $result= $controller->login($_POST);
    echo $result; //here i get the value from next page after process, i need it back to   login page to show error there!
    }
    break;
case 'uploadSongs':
    $controller->uploadSongs();
    break;
case "delete":
    echo "Function Called";
    break;

} ?>

これは、controller.php のコントローラー関数です。

public function login($request = array()) {
    $login = $request['loginName'];
    $password = ($request['loginPassword']);
    $query = "select * from user where (user_name = '" . $login . "' OR email = '" . $login . "') AND (password  = '" . $password . "')";
    $user = $this->model->select($query);

    if (is_array($user) && isset($user[0]['user_id'])) {
        $_SESSION['uid'] = $user[0]['user_id'];
        echo $_SESSION['name'] = $user[0]['first_name'];
        $this->redirect("userArea.php");
    } else {
        echo "-1";
        return $login;
    }
    exit;
}
4

1 に答える 1

2

ログインページはそれ自体に送信でき、ログインに成功すると、メンバーエリアにリダイレクトされます。ログインに失敗すると、単にメッセージが表示されます。

于 2012-07-15T08:22:56.923 に答える