【问题标题】:PHP redirect with conditions带条件的 PHP 重定向
【发布时间】:2019-03-02 07:07:19
【问题描述】:

您好,我的 php 代码有点问题。 我有一个 Moodle 网站,我可以获取用户信息。 我正在尝试做的事情:

  1. 我的疯狂之路
  2. 获取用户的名字和姓氏(变量正确且有效)
  3. 我正在使用 MD5 HASH 生成随机种子并设置为 cookie
  4. 然后我将用户“userid”与 MD5 种子结合起来,将它们连接在一起。
  5. 我将新生成的 MD5 HAS cookie 设置为 30 秒后过期
  6. 我验证 cookie 条件(如果用户未登录用户 ID 为 0)
  7. 如果满足所有条件,它们将使用标头重定向定向到 $locations 变量地址。
  8. 如果不满足条件,它们将被重定向到 404 页面。

我总是收到 404。提前感谢您的帮助。

<?php
require('../../config.php');
global $USER;
/* Session Variables */
$userid = $USER->id;
$firstname=$USER->firstname;
$lastname=$USER->lastname;

/* Random MD5 seed to set as cookie */
$random = md5(rand(1,1000));
setcookie(MoodleSession, $random, time()+ 30, '/',"", 1);
$_COOKIE['MoodleSession'] = $random;
$randomcookie = $random;

/* Where I want to go if all conditions are true */
$location="Location: https://MyDomainHere.com/uid=".$firstname."_".$lastname;

/* Response Data and verification of MD5 with firstname and lastname */ 
if ($randomcookie."_".$userid !== $randomcookie."_".$userid && $firstname."_".$lastname != ""){
header($location); /* Redirect browser */
die();}

/* If condition are not met, user gets a 404 */
header("Location: https://MyDomainHere.com/404");

?>

【问题讨论】:

    标签: php redirect cookies verification


    【解决方案1】:

    您的 if 语句将始终评估为 false,因为此部分始终评估为 False。

    $randomcookie."_".$userid !== $randomcookie."_".$userid
    

    您是否尝试在此页面上设置 cookie,然后验证您正在重定向到的页面上的 cookie,或者您是否尝试同时设置 cookie,并验证此页面上的 cookie/登录?

    【讨论】:

    • 我的意图是随机生成一个 cookie 标记 UID,然后使其在第 n 次过期,同时使用变量作为名字和姓氏,如果它们存在条件满足(验证)重定向使用$location 变量。重定向实际上是到一个 API 验证页面,该页面将使用名字和姓氏进行流程。我以为 !== 和一样。
    【解决方案2】:

    我相信修复以下部分将解决问题。

    $randomcookie."_".$userid !== $randomcookie."_".$userid 
    

    【讨论】:

      【解决方案3】:

      怎么样?

      setcookie("MoodleSession", $random, time()+ 30, '/',"", 1);
      

      【讨论】:

        猜你喜欢
        • 2020-07-18
        • 1970-01-01
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-11
        • 1970-01-01
        • 2012-08-03
        相关资源
        最近更新 更多