2012-04-29 14 views
-2

みんな私はPHPでかなり新しいです。私はログインページを作ろうとしています。私はどのようにしてPHPの別のページにリダイレクトできますか

ページif文がtrueにリダイレクトするにはどうすればよいですか?

私はiwthヘッダー( "location:nextpage.php")を試しました。それは動作しません

<html> 
    <head> 
     <title>Uploader</title> 
    </head> 
    <body> 

     <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
     <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/> 
     <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/> 
     <input id="login" class="submit" type="submit" value="Login" /> 
     <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p> 

     <?php 
     mysql_connect("localhost", "root","******") or die(mysql_error()); 
     mysql_select_db("login") or die(mysql_error()); 

     if(isset($_POST['username']) && isset($_POST['password'])){ 
      $db_user = mysql_query("SELECT username FROM login_tb"); 
      $db_pass = mysql_query("SELECT password FROM login_tb"); 
      $ctrl_user = mysql_result($db_user,0); 
      $ctrl_pass = mysql_result($db_pass,0); 

      $username = $_POST['username']; 
      $password = $_POST['password']; 
      echo $username . $password; 

      if(($username || $password) == NULL){ 
       echo "you have entered wrong username or password! <br/> please contact site admin."; 
      }else{ 
       if($username == $ctrl_user && $password == $ctrl_pass){ 
       header("location: ./nextpage.php"); 
       } 
      } 
     } 
     ?> 
    </body> 
</html> 

私を助けること誰も助けてください?ありがとう

+2

更新ヘッダ( "location:./nextpage.php"); ( "場所:./nextpage.php"); –

+0

あなたのコードは意味をなさないことに注意してください。 –

+0

このコードで何をしようとしていますか? – Sethunath

答えて

1

ページをリダイレクトするために複数の方法がありますが、私は次のようにそれを行うのが好き。

また、SQLインジェクション/ XSSを防止するために、データ入力をサニタイズする必要があることを指摘してください。 ここに:

$user = htmlspecialchars(mysql_real_escape_string($_POST['user'])); 
1

ヘッダーは、データ転送の始めに表示されるものです。ヘッダーを送信する前に、データ(Webページのほとんど)を送信しています。

は、ファイルの先頭にPHPコードを移動し、ちょうど正しい位置に別のPHPブロックに「間違ったユーザー/パスを」エコー

<?php 
    mysql_connect("localhost", "root","******") or die(mysql_error()); 
    mysql_select_db("login") or die(mysql_error()); 

    if(isset($_POST['username']) && isset($_POST['password'])){ 
     $db_user = mysql_query("SELECT username FROM login_tb"); 
     $db_pass = mysql_query("SELECT password FROM login_tb"); 
     $ctrl_user = mysql_result($db_user,0); 
     $ctrl_pass = mysql_result($db_pass,0); 

     $username = $_POST['username']; 
     $password = $_POST['password']; 

     if(($username || $password) != NULL && $username == $ctrl_user && $password == $ctrl_pass){ 
      header("location: ./nextpage.php"); 
     } 
    } 
?> 
<html> 
    <head> 
     <title>Uploader</title> 
    </head> 
    <body> 

     <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
     <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/> 
     <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/> 
     <input id="login" class="submit" type="submit" value="Login" /> 
     <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p> 
     <?php 
      echo $username . $password; 
      if(($username || $password) == NULL){ 
       echo "you have entered wrong username or password! <br/> please contact site admin."; 
      } 
     ?> 
    </body> 
</html> 
+0

DUDE、ちょうど彼のナンセンスコードをそのまま残しました –

+0

@YourCommonSense彼は学びたいと思っています。彼のコードは最高品質ではなく、Chicxulubクレーターよりも大きなセキュリティホールを持っていると私は同意します。セキュリティや優れたコーディングの実践に関する講義に出くわすことなく問題を解決することができます。 –

+0

OMG、それは「最高の品質」ではありません!それは意味をなさないだけで動作しません。 「安全保障」や「慣行」の問題ではありません。このコードは動作しません。私はあなたがそれを見ることができないと信じられない。 –

-1

これは、出力バッファリングの問題と思われる、あなたが使用することができますob_start()およびob_end_fluh()

<?php 
header('Location: /blah.php'); 
die('<meta http-equiv="refresh" content="0; url=http:/blah.php" />\n 
<p>Please visit <a href="/blah.php">Blah.php</a>.</p>'); 
?> 

をヘッダに障害が発生した場合は、フォールバックを持っているその方法は:

<? ob_start(); ?> 
<html> 
    <head> 
     <title>Uploader</title> 
    </head> 
    <body> 

     <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
     <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/> 
     <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/> 
     <input id="login" class="submit" type="submit" value="Login" /> 
     <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p> 

     <?php 
     mysql_connect("localhost", "root","******") or die(mysql_error()); 
     mysql_select_db("login") or die(mysql_error()); 

     if(isset($_POST['username']) && isset($_POST['password'])){ 
      $db_user = mysql_query("SELECT username FROM login_tb"); 
      $db_pass = mysql_query("SELECT password FROM login_tb"); 
      $ctrl_user = mysql_result($db_user,0); 
      $ctrl_pass = mysql_result($db_pass,0); 

      $username = $_POST['username']; 
      $password = $_POST['password']; 
      echo $username . $password; 

      if(($username || $password) == NULL){ 
       echo "you have entered wrong username or password! <br/> please contact site admin."; 
      }else{ 
       if($username == $ctrl_user && $password == $ctrl_pass){ 
       header("Location: ./nextpage.php"); 
       } 
      } 
     } 
     ?> 
    </body> 
</html> 
<? ob_end_flush(); ?> 
+0

これは松葉杖であり、決して使用すべきではありません。 –

+0

平均的にコード化されているかどうかに関わらず、完全にユーザーコードをチェックしていませんでした。リダイレクトの出力バッファリングを強調したかったのです。ありがとう –

+2

それがポイントです。リダイレクションの出力バッファリングを強調するべきではありません。 –

関連する問題