2013-02-26 7 views
5

現在、ダミーのログイン/登録ページのプロジェクトを少し進めていますが、ログインしたときにしかアクセスできないページを追加したいのです。 ですから、どうやってセッションやクッキーを作成して取得するのですか? ログインしていないユーザーをブロックするにはどうすればいいですか? Login.php:ログインしたときにページにアクセスできるようにするには

<?php 
    session_start(); 





    if(isSet($_POST['login'])) { 
     include('db.php'); 

     $username = mysql_real_escape_string($_POST['username']); 
     $password = sha1($_POST['password']); 

     $query = mysql_query("SELECT * FROM tab WHERE username='".addSlashes($username)."' AND password='".addSlashes($password)."'"); 
     $res = mysql_num_rows($query); 

     if ($res == 1) { 
      $_SESSION['username'] = $username; 
      $_SESSION['password'] = $password; 
      $_SESSION['userobj'] = mysql_fetch_assoc($query); 

      header('Location: http://localhost/member_area.php'); 
      exit; 
     } else { 
      echo 'Data does not match <br /> RE-Enter Username and Password'; 
     } 
    } else { 

?> 
    <html> 
    <head><link rel="stylesheet" type="text/css" href="css.css"></head> 
     <body> 
       <div id="div1"> 

       <a href="index.php" id="home">Home</a> 
       <a href="Login.php" id="login2">Login</a> 
       <a href="register.php" id="register">Register</a> 


     </div> 
      <table width="200" border="0" cellspacing="1" align="center"> 
       <form id="form1" method="post" action="login.php"> 
       <tr> 
        <td colspan="2"><h2>Members login</h2></td> 
       </tr> 
       <tr> 
        <td>Username: </td> 
        <td> 
         <input type="text" name="username" id="username"/> 
        </td> 
       </tr> 
       <tr> 
        <td>Password: </td> 
         <td><input type="password" name="password" id="password"/> </td> 
       </tr> 
       <tr> 
        <td colspan="2" align="center"> 
         <input type="submit" name="login" id="login" value="login" /> 
        </td> 
       </tr> 
       </form> 
      </table> 
      </body> 
    </html> 
    <?php 
    } 


?> 

Member_area.php:

<?php 

?> 
<html> 
<head><link rel="stylesheet" type="text/css" href="css.css"></head> 
    <body> 
      <div id="div1"> 

       <a href="index.php" id="home">Home</a> 
       <a href="Login.php" id="login2">Login</a> 
       <a href="register.php" id="register">Register</a> 


     </div> 
     <form action="/Log_out.php" method="get"> 
      <input type="submit" name="submit" value="Log Out." action="http://localhost/Log_out.php" id="Logout"> 
     </form> 
    </body> 
</html> 
<?php 

?> 

私はあることに注意してください

私は現在、login.phpとmember_area.phpためにこれらのコードを使用していますPHPに完全に新しいので、可能であれば少しの説明とコードを置くためにいくつかの方向。

答えて

10

はMember_area.phpの先頭にこれを追加します。

session_start(); 
if(!isset($_SESSION['username'])){ 
    header("Location:Login.php"); 
} 

を、それがログインページにユーザーをリダイレクトしますない場合には、セッションが設定されているかどうかをチェックします。

+0

説明してください-1 –

+0

まあ、それは一種の私は、ログインページでログインしても、それが戻っページに私をリダイレクトします取り組んでいます。ログインページでセッションを開始する必要がありますか?またはセッションがいくつかの方法を破壊する可能性がありますか? EDIT:セッションが修正されていませんでした。 –

+0

コードを編集しました。今すぐ試してください。先頭に 'session_start();'を追加しました。 –

0
<?php 
    if(!isset($_SESSION['username'])) { 
    die("Please login"); 
} 

?> 
<html> 
<head><link rel="stylesheet" type="text/css" href="css.css"></head> 
    <body> 
      <div id="div1"> 

       <a href="index.php" id="home">Home</a> 
       <a href="Login.php" id="login2">Login</a> 
       <a href="register.php" id="register">Register</a> 


     </div> 
     <form action="/Log_out.php" method="get"> 
      <input type="submit" name="submit" value="Log Out." action="http://localhost/Log_out.php" id="Logout"> 
     </form> 
    </body> 
</html> 
<?php 

?> 

それをする必要があること:)

+2

'session_start();'が追加されていません:) –

+0

Prasanthはセッションを開始するのを忘れましたが、D! –

+0

ああ、大変申し訳ありません。私はそれを完全に忘れてしまった! –

関連する問題