【发布时间】:2018-09-22 15:08:44
【问题描述】:
我有以下代码,但由于某种原因会话保持为空。
有人可以帮忙解决这个问题吗?
<?php
session_start();
ob_start();
$ifLogged = $_SESSION["mbse"];
if(!isset($ifLogged))
{
$_SESSION["mbse"] = 'not logged';
}
echo '--'.$ifLogged.'--';
//Obtain Info if User Tried to Log In
$username = $_POST[username];
$password = $_POST[password];
$submit = $_POST[submit];
if(isset($submit))
{
$_SESSION["mbse"] = $username;
$user = get_user_by( 'login', $username );
if ( $user && wp_check_password( $password, $user->data->user_pass, $user->ID) )
{
// Automatic login //
$user = get_user_by('login', $username );
// Redirect URL //
if ( !is_wp_error( $user ) )
{
wp_clear_auth_cookie();
wp_set_current_user ( $user->ID );
wp_set_auth_cookie ( $user->ID );
echo '<meta http-equiv="refresh" content="0;URL=/landing-page" />';
exit();
}
else
{ echo 'Error';}
//Stop Here
}
else
{
echo "Username and Passcode Do Not Match";
}
}
//Obtain Domain and Check Alias
$domain = "$_SERVER[HTTP_HOST]";
$alias = "$_SERVER[REQUEST_URI]";
//Strip the Slashes from the Alias
$alias = str_replace("/", "", $alias);
if($alias == '')
{
$nameInput = 'text';
}
else
{
$nameInput = 'hidden';
}
echo'
<form method="POST">
<div class="form-group">
<input class="form-control" type="'.$nameInput.'" value="'.$alias.'" name="username" placeholder="Input Your Username" required>
</div>
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Input Your Password" required />
</div>
<div class="col-sm-12 submitlogin">
<input class="btn" type="submit" name="submit" value="Submit" />
</div>
</form>';
从下一页开始,当我返回此页面时 - 会话最初是空的,在第一次尝试后显示“未登录”。问题是在重定向发生时触发条件。
非常感谢您的帮助!
【问题讨论】:
-
试试
if(empty($_SESSION['mbse']))。为什么人们坚持将完美的数组值移动到不必要的标量变量中? -
我已完成此更改,但我认为这不是问题所在。由于某种原因,未存储身份验证时的会话。
-
是的,已确认。语句 $_SESSION["mbse"] = $username;永远不会被执行。
标签: php html wordpress session