如何使用include函数通过URL将变量/值传递给另一个PHP文件(通过HTTP)? (PHP)

时间:2015-03-28 02:42:59

标签: php

我正在尝试读取URL中传递的变量/值。

作为一项实验,我从2个简单文件开始。

test.php的

<?php
//option1
//include "http://myhost.com/test2.php?tempvar=testonly";

//option2
//$tempvar = "testonly";
//include "http://myhost.com/test2.php";

//option3
$tempvar = "testonly";
include ("test2.php)";
?>

test2.php

<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    console.log(getURLParameter("tempvar"));
    $("#test").html(getURLParameter("tempvar"));

    function getURLParameter(name) {
        return (decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search.toLowerCase())||[,""])[1].replace(/\+/g, '%20'))).toUpperCase()||"";
    }
});
</script>
<div id="test"><?php echo tempvar; ?></div>

一些观察结果:

  1. 如果我从浏览器标签中调用http://myhost.com/test.html?tempvar=testonly,它可以正常工作(即在页面上显示testonly)

  2. 如果我从浏览器中拨打http://myhost.com/test.php,我的页面上就不会显示“testonly”。所以看来我的getURLParameter javascript函数没有找到通过include传递的tempvar。 根据include manual (example 3),这应该有效。

  3. 只有option3适用于我的test.php但在我的情况下,这对我来说没用,因为test2.php可以在另一个主机中。并且有可能test2.php可以被其他编程语言替换,如java(.jsp)或coldfusion,甚至只是普通的HTML和DB通信是通过AJAX调用来处理的。

  4. 根据phpinfo,服务器使用的是PHP 5.1.6。也许我需要一个特定的PHP扩展来使它工作?

    非常感谢

1 个答案:

答案 0 :(得分:1)

更改

<?php echo tempvar; ?>

<?php echo $tempvar; ?>

顺便说一句,您只是声明一个变量并包含第二个文件。如果要将变量从一个页面传递到另一个页面,则需要使用:

取决于您如何传递变量(GET或POST)

GET

<?php echo $_GET['tempvar'];?>

POST

<?php echo $_POST['tempvar'];?>

或者您可以同时使用

<?php echo $_REQUEST['tempvar'];?>