我有index.php文件,它从用户那里获取用户名和密码,然后重定向到process_login.php,将这些凭据与SQL数据库进行比较以授权用户。现在,如果用户已获得授权,我想获取有关此用户的所有数据,并希望在其他PHP文件中使用。我正在使用会话这样做,但不知何故他们没有工作。 我知道他们有很多类似的问题,但都没有奏效。 这是我的process_login.php代码
<?php
session_start();
require_once('connectdatabase.php');
if(isset($_POST) && !empty($_POST)) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE USERNAME='$username' AND PASSWORD='$password'";
$result = mysqli_query($connection, $sql);
echo $count = mysqli_num_rows($result);
if($count == 1) {
$row = mysqli_fetch_assoc($result);
$_SESSION['first_name'] = $row["FIRST_NAME"];
$_SESSION['last_name'] = $row["LAST_NAME"];
$_SESSION['email'] = $row["EMAIL"];
$_SESSION['username']=$username;
header('Location: ../../src/welcome.php');
exit();
}
else {
header('Location: ../../src/index.php');
}
}
?>
现在我想在welcome.php文件中使用这些变量。
这是我的welcome.php代码
<?php
session_start();
$fist_name = $_SESSION['first_name'];
echo "<script>console.log('$first_name');</script>";
?>
答案 0 :(得分:0)
这是因为您使用的是$fist_name
而不是$first_name
。并修改您的echo
部分
<?php
session_start();
$fist_name = $_SESSION['first_name'];
echo "<script>console.log('$first_name');</script>";
?>
要
<?php
session_start();
$first_name = $_SESSION['first_name'];
echo $first_name;
?>
答案 1 :(得分:0)
我想发表评论,但我不能这样,这是我对你的建议。
当你的问题发生在我身上时,我倾向于回复$_SESSION
所有这些问题,看看他们是否真的设定了。
下面是一个小的PHP脚本,它使用PDO作为DB API。
if (isset($_REQUEST["pWord"])){
$inmPword = md5($_REQUEST["pWord"]);
$loginData = "SELECT * FROM userlogin WHERE pWord = :pWord";
$loginDataQuery = $dbConnect -> prepare($loginData);
$loginDataQuery -> bindParam(':pWord', $inmPword);
$loginDataQuery -> execute();
if ($row = $loginDataQuery -> fetch(PDO::FETCH_ASSOC)){
//Time to set the session
$_SESSION["uId"] = $row["uId"];
$_SESSION["uRole"] = $row["uRole"];
$_SESSION["fName"] = $row["fName"];
$_SESSION["lName"] = $row["lName"];
echo "3";
}else{
echo "4";
}
}
我认为最好不要进行行计数并回复它。这样的事情可能有所帮助。
$sql = "SELECT * FROM users WHERE USERNAME='$username' AND PASSWORD='$password'";
$result = mysqli_query($connection, $sql);
if($row = mysqli_fetch_assoc($result)) {
$_SESSION['first_name'] = $row["FIRST_NAME"];
$_SESSION['last_name'] = $row["LAST_NAME"];
$_SESSION['email'] = $row["EMAIL"];
$_SESSION['username']=$username;
header('Location: ../../src/welcome.php');
exit();
}