我理解PHP中$ _SESSION变量的基础知识 . 我目前有一个站点,可以在整个页面中传递几个值来管理SQL查询 . 我遇到了一个新问题:
我在用户表中使用电子邮件地址作为主键 . 我希望将此电子邮件传递到第二页(一旦从服务器收集了额外的信息),并在选择链接时动态加载内容 . 这是我的问题设置:
//从服务器返回的数据:// $ FName = bob,$ LName = rogers,$ Email = bob@rogers.com
$_SESSION['userEmail'] = $Email;
$_SESSION['FirstName'] = $FName;
$_SESSION['LastName'] = $LName;
当我在第二页上加载内容时,我收到这些值:
echo $_SESSION['userEmail']; //bob@rogers_com !!!!! THIS is not correct
echo $_SESSION['FirstName']; //bob
echo $_SESSION['LastName']; //rogers
电子邮件是从页面上的POST表单收集的 . 它是表单中唯一的值 . 在第一页上,我使用end(array_keys($ _ POST))检索电子邮件,这是“$ _SESSION ['userEmail'] = $ Email”来自的地方 . 它更具体地说是:: $ _SESSION ['userEmail'] = end(array_keys($ _ POST))::
如何使电子邮件安全地通过请求而不进行转换?
经过进一步的故障排除后,我已经能够确定在表单的POST请求中发生了这种转换 . 单击时,表单使用POST方法,该方法在PHP中使用if($ _ SERVER ['REQUEST_METHOD'] =='POST'){}拦截,其中我捕获值的数组(在我的情况下,只有一封电子邮件) ) - 现在转换电子邮件的地方 .
3 回答
如果您想使用未转换的文本(如哈希,编码等),您可以尝试使用替代密钥替代您的电子邮件主键 .
您可以从每行的auto_increment索引键中获取命中 .
之前:
后:
这等于:
祝好运 .
我有搜索,发现这个东西在Xampp localhost中工作 . 这将有所帮助 .
http://forum.directadmin.com/showthread.php?t=48001
我想出了一个解决方法:
收到电子邮件后,您可以替换字符'' . 具有不同的字符序列;这是通常的电子邮件地址中找不到的东西 . 我发现 - # - 是一个体面的(通常) . 这就是我做的方式:
然后,当我转到我的if($ _ SERVER ['REQUEST_METHOD'] =='POST'){}函数时,我通过执行以下操作将字符串转换回它的(希望)原始状态: