需要PHP Session建议

时间:2012-10-27 21:55:12

标签: php html

我正在学习PHP,如果可能的话需要一些帮助。

我知道我遗漏了一些简单的她,但无法弄明白,我已经得到以下一块PHP来将用户从他们刚刚输入用户名和密码的页面转移到下一页网站名为homepage.php。这个脚本需要生成一个会话名称,但我不确定是否会把它放进去。

然后我需要一小段PHP然后在加载页面之前检查用户名和密码是否正确,以便用户查看,这是否有意义,任何人都可以帮忙吗?

<?php 
$host="localhost"; // Host name
$username="root"; // username
$password=""; // password
$db_name="gotswapuser"; // Database name
$tbl_name="users"; // Table name


mysql_connect("$host", "$username", "$password");
mysql_select_db("$db_name");


$myusername=mysql_real_escape_string($_POST['myusername']);
$mypassword=mysql_real_escape_string($_POST['mypassword']);

$sql="SELECT * FROM $tbl_name WHERE name='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
    header("location:homepage.php");
} else {
  header("location:subscriptionpage.php");
}
?>

4 个答案:

答案 0 :(得分:2)

您应该使用PDO进行数据库访问,而不是mysql。 Mysql正在被弃用,并不是一种好的做法。

回答你的问题:

使用您拥有的代码,您只想在“成功”登录时添加几行:

 if($count==1) {  
     session_start();  
     $_SESSION["logged_in"] = 1;  
     header("location:homepage.php");  
 } else {  
   header("location:subscriptionpage.php");  
 }  

然后,在用户应该登录的页面上,执行以下操作:

 session_start();
 if ( ! isset($_SESSION["logged_in"]) || ! $_SESSION["logged_in"]) {
      header("location:signin.php");
      exit;
 }

答案 1 :(得分:2)

MySQL命令正在折旧,您应该考虑使用Mysqli或PDO,但除此之外,您应该在if子句中启动会话

         if(found){
             session_start();
             $_SESSION['username'] = $myusername;
              redirect user
           }
          rest of code.....

答案 2 :(得分:0)

首先,您需要开始会话。见下文:

session_start();

开始会话后,您可以使用$ _SESSION超全局存储和检索变量。见下文:

$_SESSION['me'] = 'John Doe';
$_SESSION['you'] = 'Jane Doe';
$_SESSION['us'] = 'Doe Family';

echo $_SESSION['us'];

确保始终使用session_start();在尝试访问这些变量之前。在PHP.net上阅读更多内容:http://php.net/manual/en/function.session-start.php

运行session_start()后,您可以使用session_id()函数轻松检索会话ID。如果您还没有使用session_start(),它将返回null。见下文:

echo session_id(); // Returns session ID.

希望这有帮助!祝你的项目好运。

答案 3 :(得分:0)

你几乎就在那里。你只需要: 1,确保您的会话已启动:session_start(); 2,为您的用户名创建一个会话变量:$_SESSION['username'] = $result[0]['username'];

if($count==1){
    $_SESSION['username'] = $result[0]['username'];
    header("location:homepage.php");
} else {
  header("location:subscriptionpage.php");
}

有几点需要建议。在调用你的mysql语句之后获取行或对象,以便能够为你的会话引入你的用户名。