2017-01-21 6 views
0

私はこのようなログインコードがあります。セッションに基づいてPHPで別の行データを投稿するには?

<?php 
if(isset($_POST['login'])){ 
    include("koneksi.php"); 

    $username = $_POST['username']; 
    $password = md5($_POST['password']); 
    $level  = $_POST['level']; 

    $query = mysqli_query($koneksi, "SELECT * FROM users WHERE username='$username' AND password='$password'"); 
    if(mysqli_num_rows($query) == 0){ 
     echo '<div class="alert alert-danger">Upss...!!! Login gagal.</div>'; 
    }else{ 
     $row = mysqli_fetch_assoc($query); 

     if($row['level'] == 1 && $level == 1){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='admin'; 
      header("Location: user.php"); 
     }else if($row['level'] == 2 && $level == 2){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='dosen'; 
      header("Location: user.php"); 
     }else if($row['level'] == 3 && $level == 3){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='mahasiswa'; 
      header("Location: user.php"); 
     }else{ 
      echo '<div class="alert alert-danger">Upss...!!! Login gagal.</div>'; 
     } 
    } 
} 
?> 

を、私は、ユーザーが投稿したいが、user.phpファイルでセッションに基づいてユーザ名を名前ではなく、私は何をすべきでしょうか?

このuser.php:ユーザーの名前を想定し

<div class="login"> 
    <p>Login Succes</p> 
    <p>Username: <?php echo $_SESSION['username']; ?><br> 
    Level: <?php echo $_SESSION['level']; ?></p> 
    <p><a href="logout.php" class="btn btn-primary" onclick="return confirm('are you sure?')">Log out</a></p> 
</div> 
+0

この値を格納する列の名前は何ですか?それは 'user'ですか? – dana

+1

トピックではありませんが、1)SQLインジェクションを防ぐためにデータをエスケープし、2)パスワードの暗号化を強化することをお勧めします。 MD5が適切でない –

+0

XSSを防ぐためにユーザデータを出力するときに 'htmlentities'を使います。 – dana

答えて

1

nameと呼ばれるデータベースの列に格納されている、あなたはセッション変数にこの値を保存し、そのようなユーザーに表示できます。

ログインコード:

<?php 
if(isset($_POST['login'])){ 
    include("koneksi.php"); 

    $username = $_POST['username']; 
    $password = md5($_POST['password']); 
    $level  = $_POST['level']; 

    $query = mysqli_query($koneksi, "SELECT * FROM users WHERE username='$username' AND password='$password'"); 
    if(mysqli_num_rows($query) == 0){ 
     echo '<div class="alert alert-danger">Upss...!!! Login gagal.</div>'; 
    }else{ 
     $row = mysqli_fetch_assoc($query); 

     if($row['level'] == 1 && $level == 1){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='admin'; 
      $_SESSION['name']=$row['name']; 
      header("Location: user.php"); 
     }else if($row['level'] == 2 && $level == 2){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='dosen'; 
      $_SESSION['name']=$row['name']; 
      header("Location: user.php"); 
     }else if($row['level'] == 3 && $level == 3){ 
      $_SESSION['username']=$username; 
      $_SESSION['level']='mahasiswa'; 
      $_SESSION['name']=$row['name']; 
      header("Location: user.php"); 
     }else{ 
      echo '<div class="alert alert-danger">Upss...!!! Login gagal.</div>'; 
     } 
    } 
} 
?> 

表示コード:

、ユーザーの名前が実際にあなたがそうのようなセッションに保存することができ、例えば、first_namelast_nameのために、2列に格納されている場合:

$_SESSION['name']=$row['first_name'].' '.$row['last_name']; 
関連する問題