我刚刚进入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
答案 0 :(得分:0)
快速浏览一下,有三件事:
您似乎在第一个脚本中缺少session_start()
。
如果帐户中存在两次或更多帐户,您会收到“错误的用户名”,这有时会在测试时发生。
执行die()
重定向后,您应header()
。
austinhabich_IC_20090511_174535
需要加入引号。
session_start();
。
您的SQL语句容易受到SQL注入攻击。在查询中使用{/ 1>}之前,应立即对传入数据进行清理