PHP会话变量 - 在Wit的结尾

时间:2010-07-28 21:49:24

标签: php session login scripting variables

我刚刚进入MySQL和PHP - 我只是想为我们正在测试的项目创建一个简单的登录系统。我已经连接并创建了登录逻辑就好了,但是现在我不能在我的生活中得到会话变量来转移到新页面。有人可以告诉我这样做的正确方法吗?

这是我的登录脚本 - 通过提交表单激活​​:

<?php 
session_start();

$link = mysql_connect('xxxxxxx.ipowermysql.com', 'xxxxxx', 'xxxxxx'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db(austinhabich_IC_20090511_174535) or die(msql_error());

$email=$_POST['email']; 
$password=$_POST['password'];

$sql="SELECT * FROM player WHERE email='$email' and password='$password'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

$_SESSION['status'] = "1";      

header("location: main.php");
}
else {
echo "Wrong Username or Password";
}
?>

以下是重定向到的页面:

 <?php session_start(); ?>
 ...doctype stuff...

 <html
 xmlns="http://www.w3.org/1999/xhtml">
 <head> <meta http-equiv="Content-Type"
 content="text/html; charset=utf-8" />
 <title>Untitled Document</title>
 </head>

 <body> 

 <?
 echo $_SESSION['status'];

 ?> </body> </html>

在这种情况下,我只是试图让会话变量进行注册,所以我通过尝试打印变量的数据进行测试。我一直在尝试使用isset并将其重定向回登录页面。重定向工作,但每次都发生,因为会话变量没有注册。

PHP Verion是5.2.12

1 个答案:

答案 0 :(得分:0)

快速浏览一下,有三件事:

  • 您似乎在第一个脚本中缺少session_start()

  • 如果帐户中存在两次或更多帐户,您会收到“错误的用户名”,这有时会在测试时发生。

  • 执行die()重定向后,您应header()

  • austinhabich_IC_20090511_174535需要加入引号。

  • 在输出任何HTML之前,需要在脚本的头部调用
  • session_start();

  • 您的SQL语句容易受到SQL注入攻击。在查询中使用{/ 1>}之前,应立即对传入数据进行清理