使用跨域表单处理器的PHP会话

使用跨域表单处理器的PHP会话,php,Php,我的网站上有一个下载页面。为了达到它,你必须填写一份表格,不幸的是,由于遗留编码超出了我的控制,表格是通过另一个域(我们的crm所在域)上的脚本处理的 当您成功地将表单提交到下载页面时,我无法传递添加的会话值。同样,用户填写表单,表单被处理,会话值被添加,它们应该返回到下载页面 下载页面在任何其他情况下都不可访问。不希望人们绕过表单直接下载 处理器脚本代码 <?PHP session_start(); //lots of database stuff //successful

我的网站上有一个下载页面。为了达到它,你必须填写一份表格,不幸的是,由于遗留编码超出了我的控制,表格是通过另一个域(我们的crm所在域)上的脚本处理的

当您成功地将表单提交到下载页面时,我无法传递添加的会话值。同样,用户填写表单,表单被处理,会话值被添加,它们应该返回到下载页面

下载页面在任何其他情况下都不可访问。不希望人们绕过表单直接下载

处理器脚本代码

<?PHP
  session_start();
  //lots of database stuff

  //successful insertion to database
  if (($row = mysql_fetch_assoc($result)))
    {
        $redirect .= '?sessionid=xvyXXXXX';
        header("Location: http://" . $redirect);
    }
?>

软件下载页面代码

<?php
$code = $_GET['sessionid'];

if(strcmp( $code , 'xvyXXXXX'  ) != 0) {
    header("Location: http://kinetick.com/V3/download-registration.php");
} else {
       header("Location: http://kinetick.com/V3/download-software.php");
}
?>

我不能让它工作。是否有其他方法考虑处理器脚本位于另一个域上?当前,当我删除if/else并将其打印为空数组时。需要一些帮助!thx all标题(“位置:http://”$redirect)

这条线最终会像这样

遗漏了什么

应该是

。。。
我宁愿查看
curl
库,因为这将隐藏会话id,用户永远不会知道向该网站传递了什么会话id,除非他们阅读了以下帖子:)

您说过,当用户成功填写表单时,会话值会被添加到(我假设的链接中)。您是否100%确定会话值已正确添加到链接(拼写正确)?它应该是这样的
http://website.com/Some_Page.php?Session_Value=1
我没有将会话值硬编码到链接中,而是试图避免这种情况,有没有办法做到这一点?@Val-所以将会话ID添加到url中。该死,我早该知道的。别担心,这不是真正的会议,我很笨但没那么笨!谢谢!不确定我是否遵循,$redirect定义为$redirect=(“”;
$redirect.='?sessionid=xvyxxx';
add
die($redirect)
在它之后,然后让我知道它打印出来的内容。因为除非您在前面的页面上有一个
$redirect='domain.com/page.php'
,否则我认为您的代码会输出。
http://?sessionid=xxx
如果($row=mysql\u fetch\u assoc($result)){$redirect.='?sessionid=xvy1234dds2';头(“位置:http://“$redirect);die($redirect);}到处理器,它现在允许您点击页面并打印空值,您必须放置die();在你的头()之前;否则,您已被重定向,模具功能无效。