我刚为我的网站制作了一个标志脚本。表单将数据发布到自身,然后检查所有数据是否正确。如果是,则加载付款页面。要加载此付款页面,请使用:
header(location: payment.php);
所以我想将数据发送到我加载的页面,我虽然可以使用:
$userid = mysql_insert_id();
将最后一个ID添加到数据库但它无法正常工作,但也许我使用它错了。无论如何,我知道在我的数据库中每个记录上的电子邮件地址是唯一的还是id,所以我想也许我会改变标题:
header(location: payment.php?email=$email);
通过这种方式,它会将电子邮件地址放入网址,我可以通过以下方式在下一页上再次找到用户:
$email = $_GET['email'];
现在这很好用,我可以从数据库中获取用户详细信息。然而,我认为将某人的电子邮件地址放入网址并不是最佳做法,但我不能为我的生活想到另一种方式。
这样做有什么建议或好方法吗?
感谢您的时间。
答案 0 :(得分:3)
使用$_SESSION
将数据与当前客户端关联,不要忘记在将数据实际附加到数组之前调用session_start ();
。
注意:这需要在客户端使用Cookie
虽然发布数据的页面的唯一目的是验证数据,但是执行此操作然后您可以include ("payment.php");
,不需要重定向。
或者将表单着陆页的功能改为payment.php
。
您还可以重定向到payment.php?id=<val>
,其中<val>
是交易的ID,但您不应公开真实ID,因为这会降低安全性。
除非您检查以确保用户只能访问实际属于他们的id
。
可以使用支付信息的哈希值,因为这个值不会轻易地或完全被猜到。
答案 1 :(得分:1)
在两页中做任何事情之前,先开始一个会话。
<?php session_start()
并在验证页面上执行类似
的操作$_SESSION['email'] = $email;
最后在付款页面上,您可以通过
收到电子邮件$email = $_SESSION['email'];
答案 2 :(得分:1)
我认为你应该回去查看mysql_insert_id()
无效的原因。这将是获取数据的最佳方式。
答案 3 :(得分:0)
更新付款后,请从您的数据库创建/获取您的GUID或您的唯一ID,并使用您的guid或唯一ID重定向到您的成功页面,无论如何都不会对此ID进行曝光。