请帮我解决这个问题。 我有一个脚本,对于管理区域,它使用以下代码请求文件“login.php”:
<?
if($_COOKIE["ok"]==1){
setcookie("user",$_REQUEST["name_theuser"]);
setcookie("tipe",$_REQUEST["thetipe"]);
}else{
echo "<script>document.location.href='disconnect.php';</script>";
}
echo "<script>document.location.href='bord.php';</script>";
?>
据我所知,我的小知识和搜索在php 5.3.x中已被弃用
症状是,如果使用正确的用户和密码,它将无法登录,则无法正确重定向。
如果有人可以举手,我将非常感激。
谢谢!
答案 0 :(得分:0)
setcookie
和$_REQUEST
不已弃用。检查:http://php.net/manual/en/migration53.deprecated.php
根据您的服务器配置$_REQUEST
可能不可用,这可能是这里发生的事情。这也是首选配置,因为$_REQUEST
被认为是坏的。
$_REQUEST
是$_GET
和$_POST
的组合输入。修复方法是用正确的替换它。
如果您是来自action="post"
的表单,则您的输入位于$_POST
。如果您使用mysite/login.php?name_theuser=john&thetipe=foo
这样的网址,那么您会在$_GET
中找到您的输入。
答案 1 :(得分:-1)
您的JavaScript重定向错误。您有document.location
它应该是window.location
。 $_REQUEST
未折旧,但您必须确保正确使用它。如果您的表单正在提交,请确保测试您正在设置的提交按钮。如果您使用的$_POST
方法更安全,那么您的代码应该更像这样:
<?php
session_start();
if(isset($_POST['submitButton']) && isset($_COOKIE['ok']) && $_COOKIE['ok'] === '1'){
setcookie('user', $_POST['name_theuser']);
setcookie('tipe', $_POST['thetipe']);
//send a header or do your thing here
}
else{
header('LOCATION:disconnect.php'); die();
}
?>
我也不清楚你为什么试图在页面底部进行重定向,无论如何。
旁注:
您不必使用window.location.href =
。实际上,您可以使用window.location =
作为快捷方式。更短的是,您实际上只能使用location =
,因为window
是隐含的。