我有一个用户数据库,我想为用户发送一个包含一些独特参数的电子邮件。
我在DB中存储了这些唯一参数的用户ID,电子邮件,名称和2个字段。
我正在考虑使用id和email来创建两个独特的参数,比如使用hash / encryption / shuffle。
像md5
(我知道它不安全,但那不是密码),uniquid
,..等等。
$uniquId = uniquid( $id );
$uniquEmail = md5( $email );
$URL = 'www.example.com/page.php?u='.$uniquId.'&e='.$uniquEmail;
在page.php
:
$id = $_GET['u'];
$email = $_GET['e'];
//Check if these values exist in the DB, If exists show the page, Else redirect the user
但是,如果随机字符串包含&Ugeb=kijd
,那么URL看起来像:www.example.com/page.php?u=26737&e=IKd752&uTehD=Hye3
,那么$_GET['e']
只会是IKd752
吗?
如果是这样,创建2个唯一参数的最佳方法是什么?
你可以使用time()
函数来获得一个唯一的整数,然后你可以将它与一个常数相乘,只是为了使数字长或什么的。此方法的唯一问题是您的密钥只有数字。
Str_replace(就像第一个评论者建议的那样)和str_split来删除你不需要的字符串。