[英]I cannot retrieve a session variable in a second PHP file
我想做的是,我有一个HTML页,它是一个管理员登录表单。 我想将用户名传递给其他页面,以在允许用户访问被调用页面的功能之前验证用户是否已登录。
我在.html文件中包含的PHP文件中包含以下代码:
session_start();
session_register('username');
$_SESSION['id']=10;
echo "Login session id is " .$_SESSION['id'];
unset($_SESSION['username']);
// Only process POST reqeusts.
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
require_once 'config.inc.php';
$connect = mysqli_connect($host_name, $user_name, $password, $database);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
$uName = $_POST['name'];
$_SESSION['username'] = $uName;
echo $_SESSION['username'];
.....>更多的文件,但这显示用户名就好。
在第二个文件中,文件中带有PHP内联的.html文件:
<?php
session_start();
echo "Add user session id is ";
echo "<br>";
echo $_SESSION['id'];
echo "<br>";
echo "Hello";
echo "<br>";
echo $_SESSION['username'];
echo "<br>";
echo $_SESSION;
echo "<br>";
echo $_SESSION['time'];
echo "<br>";
echo date('Y m d H:i:s', $_SESSION['time']);
硬代码文本和“回显日期('Y md H:i:s',$ _SESSION ['time']);“” 显示良好。 行回显日期('Y md H:i:s',$ _SESSION ['time']); 显示麦芽汁数组。
谁能告诉我为什么我不能获得用户名的值?
就像你自己说的那样,
在第二个文件中,文件中带有PHP内联的.html文件:
PHP
必须位于.php
文件中,而不是.html
文件扩展名中。
编辑1:
根据PHP.net :
警告此功能自PHP 5.3.0起已弃用,而自PHP 5.4.0起已取消。
您应该停止使用它。
编辑2:
您还在回显$_SESSION
,
echo $_SESSION;
如果启用了错误报告并且文件扩展名为.php
,则应该将array to string conversion
引发array to string conversion
错误。
这是我能想到的最简单的例子。 希望对您有所帮助。
的HTML
<form action="signin.php" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="text" name="password"><br>
<input type="submit">
</form>
PHP [signin.php]
<?php
if($_POST['username'] == 'username') && $_POST['password'] == 'password')
{
session_start();
$_SESSION['username'] = $username;
header("location: admin.php");
}
else
{
header('location: error.php?msg=Invalid_Username';
}
?>
PHP [error.php]
<?php
$msg = '';
if(isset($_GET['msg']))
{
if($_GET['msg'] == "Invalid_Username")
{
$msg = "Your username or password didn't match.";
}
else if($_GET['msg'] == "Invalid_Access")
{
$msg = 'You are not allowed on that page.';
}
}
else
{
$msg = 'Unknown Error';
}
?>
<html>
<body>
<h1>ERROR</h1>
<p><?php echo $msg;?></p>
</body>
</html>
PHP [admin.php]
<?php
session_start();
if($_SESSION['username'])
{
echo 'your signed in';
}
else
{
header('location: error.php?msg=Invalid_Access');
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.