-2

index.php これは私のインデックス ファイルで、正常に動作します。ユーザーセッション変数をチェックし、現在ログインしているユーザーを表示します。

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    session_start();
    $username = $_SESSION['username']; 
?>

   <div id="userinfo">
   <?php
      if ( $username ) {
          echo "welcome <b>$username</b> <a href='logout.php'>Logout</a>";
      } else {
          echo 'welcome guest please <a href="login.php">Login</a>';
      }
   ?> 
   </div>

loginform.php

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    session_start();
    $username = $_SESSION['username'];
?>
<form id='frmlogin' method="post" action="esk.php">
    <div id="dialogcontainer">
        <div id="dialog">
           <h3>Welcome to Talk Login</h3>
           <p>Username</p>
           <input type="text" id="txtloginusername" name="txtloginusername"/>
           <p>Password</p>
           <input type="password" id="txtloginpassword" name ="txtloginpassword"/> <br /><br />
           <button type="submit">Login</button>
           <br>
           <br>
           <div id="logindisplay" class ="display"></div>
        </div>
    </div>        
 </form>

login.php メッセージを他のページにエコーする代わりに、たまたま私のログインフォームである loginform.php に表示したいのです。

 <?php
    error_reporting(E_ALL ^ E_NOTICE);
    session_start();
    $username = $_SESSION['username'];
    $user = $_POST['txtloginusername'];
    $pass = $_POST['txtloginpassword'];

    if ( $user ) {
        require ('connect.php');
        $query = mysql_query("SELECT * FROM user WHERE username = '$user'");
        $numrows = mysql_num_rows( $query );
        if ( $numrows == 1 ) {
           $row = mysql_fetch_assoc( $query );
           $dbpass = $row['password'];
           $dbuser = $row['username'];
           $dbactive = $row['active'];

           if ( $pass == $dbpass ) {
              if ( $dbactive == 1 ) {
                  $_SESSION['username'] = $dbuser;
                  header("location:index.php"); //"success";
              }
           } else {
                  echo "You did not enter the correct password"; //Display this somewhere on loginform.php
           }    
        } else {
           echo"Invalid Username"; // //Display this also in loginform.php 
        }

        mysql_close();
    } else {
        echo "Wrong username"; //this too;  
    } 

    ?>
4

2 に答える 2

1
Follow the Below Steps

1. use Ajax method to send the request from loginform.php page.

function validUser()
{   
      $.ajax({ 
      type: "POST",
      url: 'esk.php',

      data: $('#frmlogin').serialize(),

       success: function(data){
        $("#logindisplay").append(data);
       }
   });
  }

Step 2. remove submit button and change it to type button.

<input  type="button"  value="submit" onclick=validUser() />


step 3. remove the action of the form.

step 4. on esk.php page simply echo the message u want to show.

Thats It!!! 
于 2013-10-15T04:52:37.770 に答える
-1

login.phpで結果をエコーする代わりに、エラー メッセージをログイン フォームに戻すことができます。

たとえば、次の方法で「間違ったユーザー名」をログイン フォームに戻すことができます。

header('Location: loginform.php?err=Wrong+username');
exit;

loginform.phpで、エラーを表示する位置に次のを追加します。

<?php
if(isset($_GET['err'])) { echo '<p>'. $_GET['err'] . '</p>'; }
?>
于 2013-10-15T03:45:12.683 に答える