PHP通过电子邮件安全地发送GET请求

PHP通过电子邮件安全地发送GET请求,php,get,Php,Get,我正在尝试制作一个考勤系统,在该系统中,我标记员工的考勤,然后单击链接。因此,每当员工按下按钮时,我就会收到一封包含他们信息的电子邮件,其中包含拒绝和接受URL。我尝试传递的URL将包含可变数据,如: http://website.com/page.php?id=123&username=abc 然后使用$\u GET['id],$\u GET['username']。但我看到的问题是,如果用户知道URL和id,他们可以传递他们的信息来完成我想在这里完成的过程 有没有更安全、更好的方法

我正在尝试制作一个考勤系统,在该系统中,我标记员工的考勤,然后单击链接。因此,每当员工按下按钮时,我就会收到一封包含他们信息的电子邮件,其中包含拒绝和接受URL。我尝试传递的URL将包含可变数据,如:

http://website.com/page.php?id=123&username=abc
然后使用
$\u GET['id],
$\u GET['username']。
但我看到的问题是,如果用户知道URL和
id
,他们可以传递他们的信息来完成我想在这里完成的过程


有没有更安全、更好的方法呢?

希望你知道邮寄的方法。它就像我们邮寄的信一样有效。在你打开它之前,你看不到里面有什么。所以使用POST方法。您可以这样做。在这里,我假设用户登录到系统,然后通过会话获取并存储用户数据。然后将它们分配到隐藏的输入字段中

 <?php
session_start();
if (isset($_SESSION['UserName'])) {
    ?>
<form action="http://website.com/page.php" method="post">
<input type="text" value="<?=($_SESSION['UserName']);?>"  name="username" hidden>
<input type="text" value="<?=($_SESSION['UserId']);?>" name="userid"  hidden>
<button type="submit" name="submit">Confirm Your attendance</button>
</form>
<?php
}else{
    header('Location: login.php');
}

我的意见是

如果用户单击了该链接,则不需要该参数。将其存储在会话中,然后进行检查


或者对于管理员,该参数没有问题。您只需要检查当前用户会话是否具有管理员角色,或者如果不只是显示权限错误

嗨,您没有考虑过POST方法吗?是的@D.Khumoyun是对的,您可以使用POST方法使用POST方法以及登录和会话概念,如无登录,用户无法点击此URL进行登录。然后,无论什么id、名称通过Url发送,始终只对登录用户进行考勤。我使用POST方法传递用户输入以进行验证,验证后,此信息通过电子邮件发送给管理员进行验证。但我将使用一个管理标志来验证它,正如答案中所建议的那样。谢谢你们的建议!你好我知道post方法,但如何将此信息发送到电子邮件?因此,现在正在进行的是,当表单提交时(这是一种POST方法),它会进入处理页面,在该页面中验证所有信息,然后将其发送给经理进行批准。经理可以点击电子邮件中的链接,将他重定向到另一个处理页面。我怎么能用POST呢?谢谢。管理员标志验证正是我所需要的。我不知道为什么我以前没想到。太好了!我以前开发过这样的考勤系统:)