0

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

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

如果有人能伸出援手,将不胜感激。

谢谢!

4

2 回答 2

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.

于 2013-06-28T00:46:07.450 回答
-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是隐式的。

于 2013-06-28T01:11:05.550 回答