6

この質問は以前に尋ねられたと確信していますが、答えを徹底的に検索しましたが、役に立ちませんでした。(私が見た唯一の答えはajaxに関するものです)しかし、私はjavascript、PHP、およびHTMLのみを使用しています。

login.php ページがあり、ユーザーが正常にログインした直後にランディング ページとなる HTML ページを既に作成しています。

以下は、ログイン ページと、ログイン後のランディング ページのコードが transfer.html です。

ログイン.PHP

  <div id="content">
     <h3>Login to Internet Banking</h3>
     <form id="login" action="" method="post">
        <p>
          <label for="userid">UserID:</label>
          <input type="text" name="UserID" id="UserID"/>
        </p>
        <p>
          <label for="PIN">PIN:</label>
          <input type="password" name="PIN" id="PIN" />
        </p>

        <p>
          <input type="submit" name="btnSend" value="Login" class="submit_button" />

        </p>
      </form>
      <td>&nbsp;</td>
 <p>
        Not yet registered?
 <a href="registration.php">Click here to register</a>
 </p>

  <div id="wrap">
        <!-- start PHP code -->
        <?php

            mysql_connect("localhost", "root", "") or die(mysql_error()); // Connect to database server(localhost) with UserID and PIN.
            mysql_select_db("registrations") or die(mysql_error()); // Select registration database.

            if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['PIN']) && !empty($_POST['PIN'])){
                $UserID = mysql_escape_string($_POST['name']);
                $PIN = mysql_escape_string(md5($_POST['PIN']));

                $search = mysql_query("SELECT UserID, PIN, active FROM users WHERE UserID='".$UserID."' AND PIN='".$PIN."' AND active='1'") or die(mysql_error()); 
                $match  = mysql_num_rows($search);

                if($match > 0){
                    $msg = 'Login Complete! Thanks';
                }else{
                    $msg = 'Login Failed!<br /> Please make sure that you enter the correct details and that you have activated your account.';
                }
            }


        ?>
        <!-- stop PHP Code -->
        <?php 
            if(isset($msg)){ // Check if $msg is not empty
                echo '<div class="statusmsg">'.$msg.'</div>'; // Display our message and add a div around it with the class statusmsg
            } ?>

    </div>
        </div>
4

7 に答える 7

21

まず、すべての PHP コードを先頭に移動します。それがなければ、以下のコードは機能しません。

リダイレクトを行うには、次を使用します。

header('Location: http://www.example.com/');

また、私のアドバイスを考慮してください。これは今日の最初の質問ではなく、すべての質問が基本に関連しているため、物事がどのように機能するかを理解するには、PHP に関する優れた本を読むことを検討してください。

ここでは、無料の書籍への便利なリンクを見つけることができます: https://stackoverflow.com/tags/php/info

于 2013-02-26T13:53:34.833 に答える
11

PHP コードで生成された Javascript リダイレクト:

 if($match > 0){
     $msg = 'Login Complete! Thanks';
     echo "<script> window.location.assign('index.php'); </script>";
 }
 else{
     $msg = 'Login Failed!<br /> Please make sure that you enter the correct  details and that you have activated your account.';
 }

PHP リダイレクトのみ:

<?php
    header("Location: index.php"); 
    exit;
?>
于 2013-02-26T13:54:46.013 に答える
0

header( "Location:home.php");を試してください。$ msg ='ログイン完了を表示する代わりに!ありがとう'; お役に立てば幸いです。

于 2013-02-26T13:53:15.297 に答える
0

location次のようにヘッダーを設定する必要があります。

header('Location: http://www.example.com/');

http://www.example.comもちろん、ランディングページのURLに置き換えます。

ユーザーのログインが終了した場所にこれを追加します。

:リダイレクトすると、ユーザーはすぐにリダイレクトされるため、メッセージが表示されない可能性があります。

さらに、このソリューションを機能させるには、PHPコードをファイルの先頭に移動する必要があります。

別の注意点として、非推奨のステートメントの使用に関する上記の私のコメントを参照mysqlし、より新しく、より安全で、改善されたステートメントの使用を検討してmysqliくださいPDO

于 2013-02-26T13:53:17.840 に答える
-1

ログイン後にページへのリンクを提供し、10 秒後に JavaScript を使用して自動リダイレクトさせることもできます。

于 2014-06-17T15:27:18.773 に答える
-2

PHPコードを使用して提供する最終メッセージの後に次のコードを追加するだけです

Print'window.location.assign("index.php")

于 2016-08-12T13:20:49.043 に答える