PHP中的会话(用户登录)

时间:2014-03-09 14:34:14

标签: php mysql sql database session

我对PHP很陌生,并坚持如何使用会话来检查数据库的用户名和密码。

我有一个PHP文件调用createuser.php,它允许我使用html文本框中的用户名和密码将用户添加到数据库。我有另一个名为viewuser.php的文件,它允许我输入用户名和密码,看看数据库中是否存在该用户/密码。

我如何向checkuser添加会话,如果用户名和登录名正确且位于数据库中,则只允许用户使用该文件。

如果我的checkuser.php文件是Belor。

<?php
 $username = $_POST['username']; 
 $password = $_POST['password']; 

 $db= new  PDO('sqlite:test2.db'); 
 $query = "SELECT * from login WHERE username = '$username' AND password = '$password' ";
 $results = $db->Query($query)->fetchAll(); 

 foreach ($results as $arow) {    
 print 'username: ' . $arow['username'] . '  password: ' . $arow['password'].'<br>';
 }

 $rowcount = count($results); 
 print "number of rows $rowcount <br>" ; 

 if ( $rowcount  > 0 ){
  print " details matched atleast once <br>";
 }else{
  print " details did not match <br>";    
 }
?>

 <form action='' method=post> 
    Username <input type='text' name='username' /> <br>
    Password <input type='text' name='password' /> <br>
    <input type='submit' value='Submit' /> 
 </form>

1 个答案:

答案 0 :(得分:0)

以下是

....
$rowcount = mysql_num_rows($results); 
if ( $rowcount  > 0 )
{
 session_start();
 $_SESSION['user'] = $arow['username'];
 print " details matched atleast once <br>";
}

else
{
  print " details did not match <br>";
 }

 ?>
 ...

在其他所有页面中

<?php
   session_start();
   if(!isset($_SESSION['user']))       
      //redirect to login
    else
     //logged in