$ _REQUEST和setcookie已弃用

时间:2013-06-28 00:44:31

标签: php request deprecated setcookie

请帮我解决这个问题。 我有一个脚本,对于管理区域,它使用以下代码请求文件“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中已被弃用

症状是,如果使用正确的用户和密码,它将无法登录,则无法正确重定向。

如果有人可以举手,我将非常感激。

谢谢!

2 个答案:

答案 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是隐含的。