这是我的代码,如果刷新我的页面注销,或者当我更改菜单栏时也注销为什么?
<?php
$userid = ($_POST['userid']);
$pswd = ($_POST['pswd']);
$conn = oci_connect('user', 'pswrd', 'db');
$query = "SELECT userid, pswd FROM staff
WHERE userid=:userid AND pswd=:pswd";
$stmt = oci_parse($conn, $query);
oci_bind_by_name($stmt, ':userid', $userid, 8);
oci_bind_by_name($stmt, ':pswd', $pswd, 32);
oci_execute($stmt);
list($userid, $pswd) = oci_fetch_array($stmt, OCI_NUM);
if ($userid != "" && $pswd !="")
{
$_SESSION['userid'] = $userid;
echo " logged in sucessfully!!!...";
}
else {
echo"you are not logged in ";
}
?>
答案 0 :(得分:0)
您可以使用javascript
或php header
重定向到应用程序中的特定页面。
<?php
if ($userid != "" && $pswd !="")
{
$_SESSION['userid'] = $userid;
?>
<script> window.location ="http://www.yourwebsite.com/user.php";</script>
<?php
}?>
或使用php header
if ($userid != "" && $pswd !="")
{
$_SESSION['userid'] = $userid;
header("Location: http://www.yourwebsite.com/user.php");
}
答案 1 :(得分:0)
要使用Sessions,首先需要告诉PHP查找它们。为此,首先调用“session_start();”。
然后,您应该检查是否设置了会话。使用isset($ _ SESSION ['varname'])执行此操作。您可以选择设置会话以检查login_state。如果用户暂时“处于非活动状态”,您可以在这里保存时间戳并检查。当然,这只是一种简单的方式。
此外:在预期请求时,请先检查是否已设置。
例如。 isset($ _ POST [ 'varname的'])
<?php
session_start();
$display_page = false;
if(
isset($_SESSION['userid'])
&& isset($_SESSION['logged'])
&& (time()-$_SESSION['logged'] < 60 * 30) // 30 Minutes
) {
$display_page = true;
}
if(!$display_page) {
if(!isset($_POST['userid'])) die("No userid given");
$userid = ($_POST['userid']);
if(!isset($_POST['pswd'])) die("No password given");
$pswd = ($_POST['pswd']);
$conn = oci_connect('user', 'pswrd', 'db');
$query = "SELECT userid, pswd FROM staff
WHERE userid=:userid AND pswd=:pswd";
$stmt = oci_parse($conn, $query);
oci_bind_by_name($stmt, ':userid', $userid, 8);
oci_bind_by_name($stmt, ':pswd', $pswd, 32);
oci_execute($stmt);
list($userid, $pswd) = oci_fetch_array($stmt, OCI_NUM);
if ($userid != "" && $pswd !="")
{
$_SESSION['userid'] = $userid;
$_SESSION['logged'] = time();
echo "You just logged in sucessfully!!!...<br>";
$display_page = true;
} else {
echo "Your credentials did not match. Pleas try again";
}
}
if($display_page) {
echo "This is the page content";
}
?>
如果你想要“如果没有登录,重定向到登录页面”,你应该使用以下内容:
if(!$display_page) {
header("Location: http://www.yourwebsite.com/login.php");
exit();
}