简体   繁体   English

PHP会话变量未保持恒定

[英]PHP Session Variable not staying Constant

I have an issue with using $_Session[] , I am trying to set a constant variable which should be active across all my pages. 我在使用$_Session[]$_Session[]问题,我试图设置一个常量变量,该变量应该在所有页面上均处于活动状态。

It becomes active when someone successfully logs in, on login.php ( $logged_in gets set to 1 ) 当有人成功登录login.php时,它将变为活动状态( $logged_in设置为1

Here is the code for action.php: 这是action.php的代码

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
    if($logged_in==1) {
        $_SESSION['logged_in'] = 1;
        $_SESSION['logged_user'] = $username;
    }
?>
<head>

action.php is where all of the form processes are done, so $logged_in gets set in action.php. action.php是完成所有表单处理的位置,因此$logged_in会在action.php中设置。

Then I attempt to call $_SESSION['logged_user'] in index.php: 然后,我尝试在index.php中调用$_SESSION['logged_user']

(link to code) http://pastebin.com/8BA3csUZ

But as you can see by looking at the code: I attempt to call it <?php echo $_SESSION['logged_in']; ?> 但是正如您通过查看代码所看到的:我尝试将其称为<?php echo $_SESSION['logged_in']; ?> <?php echo $_SESSION['logged_in']; ?> but nothing happens, how come? <?php echo $_SESSION['logged_in']; ?>但是什么也没发生,怎么会这样?

edit: Login code: 编辑:登录代码:

if (isset($_GET['do']) && $_GET['do'] === "login") {
$username = $_POST['username'];
$password_input = $_POST['password'];
$password = md5($password_input);

$result = mysqli_query($con,"SELECT * FROM users WHERE username='" . $username . "'");
while($row = mysqli_fetch_array($result)) {
if($password == $row['password']) {
echo "successful login";
$logged_in = 1;
}
else { echo "unsuccessful login";}
}
}

...and yes I am aware of md5 not really doing much ;) ...是的,我知道md5并没有做太多;)

if (isset($_GET['do']) && $_GET['do'] === "login") {
$username = $_POST['username'];
$password_input = $_POST['password'];
$password = md5($password_input);

$result = mysqli_query($con,"SELECT * FROM users WHERE username='" . $username . "'");
while($row = mysqli_fetch_array($result)) {
if($password == $row['password']) {
session_start();
$_SESSION['logged_in'] = 1;
echo "successful login";
}
else { echo "unsuccessful login";}
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM