我将数据从一个站点发布到另一个站点,然后将发布的数据转换为会话。
来自其他网站的表格
<form action="https://www.122.co.uk/11/" method="POST">
<input type="hidden" name="userid" value="1010101">
<input type="submit" value="Go" style="font-size:14px; padding:20px;">
然后我将此数据发布到我的新网站,然后将其转换为变量$userid
然后检查变量是否为空,如果没有显示某些代码。
检查变量不为空
if (!empty($userid)) {
?>
<div class="container">
<?php
echo "<hr>";
echo "You Are Logged In,</br>";
echo "Your User ID is <strong>" . $_POST['userid'] . "</strong>.";
当我单击按钮刷新页面时,我会松开会话数据,因此检查中的代码不会显示。
如何刷新页面并保留会话数据?
按钮刷新
<button class="btn btn-primary hidebutton showbuttonv2" role="button" id="homebutton" onClick="history.go(0)">Home</button>
完整代码spinet
<?php
session_start();
$_SESSION['userid'] = $_POST['userid'];
$userid = $_SESSION['userid'] = $_POST['userid'];
//$_SESSION["userID"] = $userid;
if (!empty($userid)) {
?>
<div class="container">
<?php
echo "<hr>";
echo "You Are Logged In,</br>";
echo "Your User ID is <strong>" . $_POST['userid'] . "</strong>.";
答案 0 :(得分:1)
这是因为即使$_POST['userid']
字段中没有任何内容,您仍然会使用POST数据覆盖会话数据。
我发现你是编程(PHP)的新手,因此我建议你坐下来思考一下你想做什么。然后尝试写下执行这些操作所需步骤的短项列表。请记住确实特定,因为这是您编写代码时所需要的。这被称为伪代码,是编程中的重要工具 完成后,请仔细阅读您编写的代码,并真正阅读它的功能。不只是你期望它。然后,您将了解编程的工作原理。 ;)
简短示例,基于您发布的代码:
您的代码,&#34;英语&#34;形式。
// Start the session
session_start ();
// Save the POSTed value from the form in the session array.
$_SESSION['userid'] = $_POST['userid'];
// Save the POSTed value fromthe form in the session array, and a variable of its own.
$userid = $_SESSION['userid'] = $_POST['userid'];
// If we have a (non-empty) value in the user ID variable.
if (!empty ($userid)) {
// Show the login confirmation.
}
如您所见,您的预期行为与您编写的代码之间存在差异。 :)
请记住:详细信息总是在编程中很重要。
此外,使用JavaScript history
创建面包屑并不是最好的选择。这将导致用户有些不可预测的行为,尤其是当他们从网络搜索进入您的页面时。 (它会再次将它们带到搜索引擎,而不是您的主页。)
这就是为什么我建议使用正确的URL。相对的,或动态创建的完整的。这样,您始终可以完全控制用户在单击链接时的结果。 :)
编辑,添加#2: 以下是我编写代码的方法,以执行伪代码概述的任务。
// Using sessions to persist data across page views.
session_start ();
// Check if user has tried to log in.
if ($user = login_user ($username, $password)) {
// He has. Use session to keep him logged in.
$_SESSION['user'] = $user;
}
// If the user is logged in, show confirmation message.
if (!empty ($_SESSION['user']['id'])) {
$page = 'login_confirmed';
} else {
$page = 'login_form';
}
查看注释和代码如何与子弹列表中的伪代码对齐?它是如何详细描述你想要的? ;)
答案 1 :(得分:1)
如果最后一个为空,您可能不希望将$_SESSION['userid']
设置为$_POST['userid']
的值。
<?php
session_start();
// check that $_POST['userid'] is set
if (isset($_POST['userid'])) {
$_SESSION['userid'] = $_POST['userid'];
$userid = $_SESSION['userid'];
}
if (!empty($userid)) {
?>