0

これは奇妙な問題です

テストサーバーにログインの詳細を入力すると、必要に応じてページlogin.phpにリダイレクトされます。admin.php

ただし、ファイルをホスティングサーバーにアップロードしlogin.php、ログインの詳細にアクセスして入力すると、何も起こりません。つまり、ページがリロードされるだけです。admin.phpローカルホストでサイトをテストするときと同じようにページにリダイレクトされるはずですが、ウェブサーバーでは何も起こりません

これがなぜなのか誰にも分かりますか?

これが私のコードです:

//Open SQL connection
include 'connect.php';
//Check if user has entered Data yet
if(isset($_POST['submit']))
{   
//Get values from username and password user entered into form field
    $uname = $_POST['name'];
    $pword = $_POST['pword'];
//Get username and password from database   
    $result = mysql_query('SELECT `username`, `password` 
                            FROM player_info
                            WHERE `position` = "coach" ') or die (mysql_error());   
        while($row = mysql_fetch_array($result))
        {
            $username = $row['username'];
            $password = $row['password'];       
        }
//Check if username and password entered matched the username and password stored in the database
            if($uname != $username  || $pword != $password)
            {
            echo '<center><p style="color:red">Username and Password incorrect. Please try again</center>';
            }
                    
//if username and password match redirect to admin page         
                else if($uname = $username && $pword == $password)
                {
                            echo("<script>location.href ='admin.php'</script>");
                    session_start();
                    $_SESSION[$pword];
                    $_SESSION['username'] = $username;  
                }
            }
            echo'<ul>';
            echo'<li><a href="login.txt"><b>Source Code</a>';
            echo'</ul>';        
//Login Form    
        echo'<form name="test" action="" method="post">';
                echo'<div align="center">';
                echo '<form name="login" method="post" action="">';
                echo'<input type="text" name="name">'; echo'<input type="password" name="pword">';
                echo '<input type="submit" name="submit">';
        echo '</form>';
echo '<h2>Welcome to the Scoregasims rugby club</h2>';
echo '<img src="images/logo.jpg">';
echo'</div>';

echo'
</body>
</html>';
?>

PS私はこのコードがsqlinjectionsから安全ではないことを知っていますが、私はまだそれについて学んでいません.

4

6 に答える 6

1

次のようなユーザーヘッダー:

header("location:admin.php") instead of js below 
 echo("<script>location.href ='admin.php'</script>");

次のように、この目的で html リダイレクトを使用することもできます。

echo "<meta http-equiv='refresh' content='0;url=admin.php'>";
于 2013-11-05T09:21:26.477 に答える
0

else if 条件では、

 else if($uname = $username && $pword == $password)

のようにする必要があります

else if($uname == $username && $pword == $password) // equal to symbol is missed

セクションは、

   else if($uname == $username && $pword == $password)
            {
                session_start();                    
                $_SESSION['username'] = $username;  
                $_SESSION['pword'] = $pword;  
                echo ("<script>window.location.href ='admin.php';</script>");

            }
于 2013-11-05T09:49:43.200 に答える
0

セクションで確認してください:

else if($uname = $username && $pword == $password)
{
echo("<script>location.href ='admin.php'</script>");
session_start();
$_SESSION[$pword];
$_SESSION['username'] = $username;  
}

上記のコードでリダイレクトをエコーし​​ました。ログインに成功した後にリダイレクトして値をセッションに保持したい場合はadmin.php、この行の下に次のように記述します$_SESSION['username'] = $username;

else if($uname = $username && $pword == $password)
{        
$_SESSION[$pword];
$_SESSION['username'] = $username;  
echo("<script>location.href ='admin.php'</script>");
}

session_start();参考までに、スクリプトの先頭に書く必要があります。

于 2013-11-05T09:26:55.973 に答える
0

HTML のすべての行を「エコー」するのはやめましょう。HTML を書いてデバッグすることは不可能になります。

 <?php
      some code...
      ... more code...
    ?>
      <div>Hello</div>
      <div><?php echo $user_name; ?></div>
    <?php ...more code... ?>

タグ内のスクリプトを指定する必要があるため、問題が発生しています。してください<script type="text/javascript">js code here</script>

最後に、このために js をエコーし​​ないでください。次の PHP コードを実行するだけです。 header(Location: /admin.php);

于 2013-11-05T09:27:36.690 に答える