0

我有一个包含一些 html 代码的 php 页面。这是注册到该站点的用户的确认页面,因此,我只想在有效注册的情况下显示它(无法从外部访问它)。为此,我将这个条件放在了 Confirmation.php 的开头

if (empty($_POST))
{header('location: registration.php');} 

该文件的其余部分是:

<div id="logo"> <img src=my_logo_small_grey.png  height="60"/> </div>
<div id="msgConfirm">Thank You</div>

(顺便说一句,这是一个很好的解决方案?)

但是从registration.php开始,如何启动/重定向到confirmation.php发送POST参数?其实我用过AJAX:

url = "confirmation.php";
params = "ok"
ajaxReq.setRequestHeader("Content-length", params.length);
ajaxReq.open("POST", url, true); 

但似乎只执行脚本(思想),没有有效的重定向..为什么?

4

2 回答 2

0

抱歉,我不完全理解这个问题,但我会尽力提供帮助。

首先,如果文件的其余部分很小,那么您可以将其放入 if 循环中。

<?php
if(isset($_POST['yourpost']))
{
?>

<div id="logo"> <img src=my_logo_small_grey.png  height="60"/> </div>
<div id="msgConfirm">Thank You</div>

<?php
}
?>

您还可以通过编写如下 Javascript 来创建重定向:

<?php
echo "<script>location.href='".$redirecturl."'</script>";    
?>

发布数据通常被发送到处理它的不同页面,然后您被带到另一个显示确认的页面。可以通过再次从数据库中获取该数据来检索此数据。(如果您正在这样做)

如果您确实想将检索到的 POST 数据传递到另一个页面,那么您可以将其作为 GET 变量添加到链接中,例如 www.url.com/index.php?get=something

您还可以将会话变量存储为 $_SESSION['var']="something"; 记得启动 session_start(); 在使用会话的 php 页面的开头。

抱歉,我不是那么有经验,所以也许其他人会提供更好的帮助,希望这对现在有所帮助。

于 2013-04-19T12:34:03.093 回答
0

利用jQuery

$.post()将是实施您的解决方案的关键。


但更一般地看你的问题,通常情况下,工作流程如下

  1. 填写表格
  2. 发送电子邮件
  3. 用户点击电子邮件链接
  4. 确认页面打开
  5. 检查哈希,验证用户
  6. 登录并重定向到成功页面

如果您真的需要隐藏对成功页面的访问权限,请创建一次性可用的令牌。

拥有(!empty($_POST))不是限制访问该站点的“强大”方式。

于 2013-04-19T12:25:22.837 回答