dongzhao1865 2012-06-07 09:12
浏览 44

PHP Session变量消失了吗?

I have 3 pages, login.php, login_validate.php and userhome.php. My issue is that the login information is being correctly passed to login_validate.php, but seems to disappear when login_validate redirects to userhome.php

Any help would be appreciated.

Login.php

<form name="login" action="login_validate.php" method="post">
    Username: <input type="text" name="myusername" /><br />
    Password: <input type="password" name="mypassword" /><br />
    <input type="submit" value="Login" />
</form>

login_validate.php (I know, it's long)

<?php

  include'connect.php';

  // username and password sent from form
  if(isset($_POST['myusername']) and isset($_POST['mypassword'])){
    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];
  }else{
    header('Location:login.php?failatvalidate');
  }
  // To protect MySQL injection (more detail about MySQL injection)
  $myusername = stripslashes($myusername);
  $mypassword = stripslashes($mypassword);
  $myusername = mysql_real_escape_string($myusername);
  $mypassword = mysql_real_escape_string($mypassword);

  $mypassword = hash('sha256', $mypassword);

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

  // Mysql_num_row is counting table row
  $count=mysql_num_rows($result);

  // If result matched $myusername and $mypassword, table row must be 1 row

  if($count==1){

  // Register $myusername, $mypassword and redirect to file "userhome.php"
  $_SESSION['myusername'] = $myusername;
  $_SESSION['mypassword'] = $mypassword;

  print '<pre>';
  var_dump($_SESSION);
  print '</pre>';

  echo "<a href='userhome.php'>Home</a>";
  }
  else {
    echo "Wrong Username or Password";
  }
?>

userhome.php

<?php
  error_reporting(E_ALL ^ E_NOTICE);
  ini_set('display_errors',1);

  session_start();
  if(!isset($_SESSION['myusername'])){
    echo "error :( ";
  }else{
    echo "Logged in as ".$_SESSION['myusername']."&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<a href='logout.php'>Log out</a><br /><br />";
  }
?>
  • 写回答

1条回答 默认 最新

  • dongxia5394 2012-06-07 09:15
    关注

    You need to call session_start() in every script that uses sessions (and before the headers are sent).

    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3