PHP在iframe POST数据中打开另一个页面

时间:2015-07-31 07:16:30

标签: php curl iframe

我正在创建一个Phonegap应用,可以将表单中的用户填充数据提交到我的网址www.myDomain.com

因此发送的数据将使用GET,因此网址的可能性就是这样。

www.myDomain.com/processor.php?value1=99
www.myDomain.com/processor.php?value1=ninetyNine

我在iframe中打开这些网站。

现在取决于价值,我可以获得超过200种不同类型的值,我想将用户重定向到发布这些值的某个网站

所以我可以像上面那样重定向上面两个例子

www.numericProcessor.com       //vlaue send by POST is 99
www.alphabeticProcessor.com    //vlaue send by POST is ninetyNine

我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找一个好的设计决定?

一个简单的解决方案可能是使用开关:

<?php
ob_start( );
$value = strip_tags($_GET['value1']);

if (!empty($value )) {
    switch( strtolower($value) ) {
        // add a case for each value you support (in lower case)
        case "99":          $url = "http://www.numericProcessor.com/";     break;
        case "ninetynine":  $url = "http://www.alphabeticProcessor.com/";  break;
        default:            $url = "/InvalidOption.html";                  break;
    }

    header( "location: $url", true, 307 ); // not sure what status you'd prefer
    exit;
}
?>

这可能是一个好的,简单的方法吗?然后,您可以将iFrame导航到类似www.myDomain.com/processor.php?value1=99

的内容

请在运行前检查代码,我还没有时间对其进行测试。

编辑:

我们聊天后,我认为我们解决了这个问题。这段未经测试的代码可能会为您解决问题!

<?php  
    $value = strip_tags($_GET['value1']); 

    if (!empty($value )) { 
        switch( strtolower($value) ) { 
            // add a case for each value you support (in lower case) 
            case "99":         $url = "http://www.numericProcessor.com/";    break; 
            case "ninetynine": $url = "http://www.alphabeticProcessor.com/"; break; 
            default:           $url = "/InvalidOption.html"; break; 
        } 

        print " <h1>Please wait while we refer you to the right website</h1>
                <form method='post' action='$url'>
                    <input type='hidden' value='$value' name='<here the name they expact it>'>
                </form>
                <noscript>Please enable JavaScript, else we cannot refer you!</noscript>
                <script language='JavaScript'>
                    document.forms[0].submit();
                </script>";


    }
} 

请务必先测试,因为其中可能存在一些愚蠢的错误。