javascript - 限制用户在 PHP 中查看页面

标签 javascript php laravel

我正在制作的网站有问题。我正在制作一个网站,用户可以在该网站上观看一段短片,之后他们可以注册并获得一个链接来验证他们的电子邮件。电子邮件转到他们输入的电子邮件,他们有一个指向另一个页面的验证链接。该页面有一个指向完整视频的按钮。现在我想阻止用户在验证电子邮件之前查看验证页面和用户查看完整视频的页面。我是 PHP 的新手,我尝试了一些东西,我认为它不是那么好,但我仍在学习。

我想在用户转到 localhost/verify.php 时重定向用户并允许他们在 URL 为 localhost/verify.php?verified=1 时进入页面, 那 ?verified=1 URL 被发送到他们的电子邮件。

但是无论我输入什么,它都会重定向 index.php

验证.php

 if (stripos($_SERVER['REQUEST_URI'], 'verify.php')){
    header('Location: index.php');
  }
  else if (stripos($_SERVER['REQUEST_URI'], 'verify.php?verified=1')){
    header('Location: verify.php');
  }

因为用户没有注册选项而且我没有保存任何 session ,所以有什么方法可以做得更好。

最佳答案

即使你没有创建用户,你也可以有一个表来代表这些电子邮件地址,然后在 Controller 中包含一个键,电子邮件,验证(bool),verification_token(唯一字符串)对于经过验证的路线,您可以检查该验证 token 是否存在,将用户标记为已验证并将它们传递给视频。这还允许您将那个 token 存储在 cookie 中,您可以在没有查询参数的情况下随时检查它们是否到达正常端点,您仍然可以将它们视为已验证。它没有完整的授权,但听起来你不希望这些电子邮件有一个完全成熟的可验证用户

关于javascript - 限制用户在 PHP 中查看页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015122/

相关文章:

javascript - 谷歌应用程序脚本: Set cell blank if time is older than one hour

javascript - Material-UI Darkmode Toggle with User Preference Fallback

php - 如果为零则隐藏产品价格

javascript - 无法组合脚本和 php div.innerHTML += "<form action='\"{{route(' stock.store')}}\"' method ='post' >@csrf</form>";

php - 将 PHP 和 MySQL 编译为独立的 Windows 或 Linux 应用程序

php - 在 laravel 5 中,在配置文件中定义全局变量的替代形式是什么?

php - Laravel-多对一的多态关系

javascript - 如何将 setTimeout 添加到 OnClick 函数 Show/Hide with multiple div

javascript - 从 JavaScript 对象中获取元素

php - Laravel Eloquent 在 belongsToMany 关系上返回一个空集合