我需要PHP会话的帮助
我想为每个用户创建一个个性化的仪表板,并创建了一个登录系统 我使用这段代码将不同的用户重定向到不同的页面,但无论用户名或密码是什么,它都会将我带入file1.php我需要PHP会话的帮助,php,session,Php,Session,我想为每个用户创建一个个性化的仪表板,并创建了一个登录系统 我使用这段代码将不同的用户重定向到不同的页面,但无论用户名或密码是什么,它都会将我带入file1.php <?php session_start(); if ($_SESSION['username'] == "google") { header("location:file1.php"); } else if ($_SESSION['username'] == "apple") { header("locati
<?php
session_start();
if ($_SESSION['username'] == "google") {
header("location:file1.php");
}
else if ($_SESSION['username'] == "apple") {
header("location:page2.php");
}
else {
header("location:default.php");
}
?>
确保使用两个=符号。一个单独的赋值将与eval相反
另外,切换也会更好
开关($\会话['username']){
案例“谷歌”:
$file='file1.php';
中断;
案例“谷歌”:
$file='file2.php';
中断;
默认值:
$file='default.php';
中断;
}
标题(“位置:$file”);确保使用两个=符号。一个单独的符号将赋值,而不是eval
另外,切换也会更好
开关($\会话['username']){
案例“谷歌”:
$file='file1.php';
中断;
案例“谷歌”:
$file='file2.php';
中断;
默认值:
$file='default.php';
中断;
}
标题(“位置:$file”) 您不需要session_start()在您查询用户名的页面上的code>
假设此代码位于单独的页面中
<?php
session_start();
$connect = @mysql_connect ($host, $username, $password) or die ('error');
$select = @mysql_select_db($db_name, $connect) or die('check');
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM $tbl_name WHERE username='$username' and password='$password' ";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count==1) {
session_register("username");
session_register("passsword");
header("location:dashboard.php");
} else {
echo "Username/Password does not match. Try Again.";
}
?>
您不需要会话启动()吗在您查询用户名的页面上的code>
假设此代码位于单独的页面中
<?php
session_start();
$connect = @mysql_connect ($host, $username, $password) or die ('error');
$select = @mysql_select_db($db_name, $connect) or die('check');
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM $tbl_name WHERE username='$username' and password='$password' ";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count==1) {
session_register("username");
session_register("passsword");
header("location:dashboard.php");
} else {
echo "Username/Password does not match. Try Again.";
}
?>
尝试打印会话变量。会话可能存在其他问题
<?= print_r($_SESSION['username']) ?>
尝试打印会话变量。会话可能存在其他问题
<?= print_r($_SESSION['username']) ?>
首先,您真的不应该在数据库中以明文形式存储密码。至少,md5()
其次,您应该转义输入到SQL查询中的值(或者更好,如果您的服务器启用了MySQLi,则使用的预处理语句),以避免SQL注入
第三,调试语句创造了奇迹。您是否已尝试在条件设置之前立即打印出$\u SESSION['username']
的值?我很难相信PHP的条件处理或相等测试会出错,因此出于某种原因,该值必须是“google”。我想你需要在你的代码中找到$\u SESSION['username']
的分配,并找出原因。首先,你真的不应该在数据库中以明文形式存储密码。至少,md5()
其次,您应该转义输入到SQL查询中的值(或者更好,如果您的服务器启用了MySQLi,则使用的预处理语句),以避免SQL注入
第三,调试语句创造了奇迹。您是否已尝试在条件设置之前立即打印出$\u SESSION['username']
的值?我很难相信PHP的条件处理或相等测试会出错,因此出于某种原因,该值必须是“google”。我认为您需要在代码中跟踪会话['username']
的分配,并找出原因。在将用户名和密码放入会话之前,您应该调用会话启动()
,并且不应该使用会话注册()
(因为它已被弃用),只需像这样使用$\u会话
全局
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
然后在下一页执行start\u session()
和var\u dump($\u session)
并且您可以查看会话中设置的内容在将用户名和密码放入会话之前,您应该调用会话_start()
,并且不应该使用会话_register()
(因为它已被弃用),只需像这样使用$\u会话
全局
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
然后在下一页执行start\u session()
和var\u dump($\u session)代码>您可以看到会话中设置了什么我看不出条件有任何错误。设置用户名的代码可以在不应该运行的时候运行吗?我不太清楚你的意思。下面是另一个代码-$connect=@mysql_connect($host,$username,$password)或die('error')$select=@mysql\u select\u db($db\u name,$connect)或die('check')$用户名=$_POST['username']$密码=$_POST['password']$sql=“从$tbl\U名称中选择*其中用户名='$username'和密码='$password'”$result=mysql\u查询($sql)$count=mysql\u num\u行($result);如果($count==1){session_register(“username”);session_register(“passsbrow”);header(“location:dashboard.php”)}或者{echo“username/Password”不匹配。请重试。“;}我希望它从我的数据库中检查用户名是否为apple,将其重定向到file1.php,如果google将其重定向到page2.php……您还需要验证输入,如果我输入bye怎么办;从tbl中删除用户名和密码;作为我的密码?我看不出条件有什么问题。设置用户名的代码可以在不应该运行的时候运行吗?我不太清楚你的意思。下面是另一个代码-$connect=@mysql_connect($host,$username,$password)或die('error')$select=@mysql\u select\u db($db\u name,$connect)或die('check')$用户名=$_POST['username']$密码=$_POST['password']$sql=“从$tbl\U名称中选择*其中用户名='$username'和密码='$password'”$result=mysql\u查询($sql)$count=mysql\u num\u行($result);如果($count==1){session_register(“username”);session_register(“passsbrow”);header(“location:dashboard.php”)}或者{echo“username/Password”不匹配。请重试。“;}我希望它从我的数据库中检查用户名是否为apple,将其重定向到file1.php,如果google将其重定向到page2.php……您还需要验证输入,如果我输入bye怎么办;从tbl中删除用户名和密码;作为我的密码?我插入了两个=符号。无论您的用户名是什么,您的代码都会将我带到default.php