问题将JS变量传递给PHP包含文件

时间:2013-03-24 19:22:30

标签: php javascript html include

我有一个php文件,我用它根据输入变量设置动态生成的页面。它从index.html页面开始,其中收集变量,其中一些不是简单的字符串,而是复杂的Google Earth对象。在该页面的提交上,它将被发布到另一个页面,您将被重定向到创建的文件。当我尝试在用于生成页面的php包含文件中使用该变量时,麻烦就来了。如何从这个表单中正确获取变量然后传递它以便能够在新生成的页面上使用它。这是我目前正在尝试的。

点击此按钮,设置变量flyto1view。

 $("#flyto1").click(function(){          
    if (!flyto1view){
        flyto1view = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
            $("#flyto1view1").val(flyto1view)
    }
    else {
        ge.getView().setAbstractView(flyto1view);

    }
});

然后从这里我尝试将值设置为隐藏字段,但我不确定该类变量是否具有可以像这样设置的值。什么是在发布

之后将此变量发送到此处的最佳方法
<? 
if (isset($_POST['submit']) && $_POST['submit']=="Submit" && !empty($_POST['address']))     {//if submit button clicked and name field is not empty 
$flyto1view1 = $_POST['flyto1']; 
$address = $_POST['address']; //the entered name 
$l = $address{0}; // the first letter of the name 

// Create the subdirectory: 
// this creates the subdirectory, $l, if it does not already exists 
// Note: this subdirectory is created in current directory that this php file is in. 
if(!file_exists($l))  
{  
mkdir($l);  
} 
// End create directory 

// Create the file: 
$fileName = dirname(__FILE__)."/$address.html"; // names the file $name 
$fh = fopen($fileName, 'w') or die("can't open file"); 
// The html code: 
// this will outpout: My name is (address) ! 
$str = "    
<?  php include ('template.php') ?>

"; 
fwrite($fh, $str); 
fclose($fh); 
// End create file 

echo "Congradualations!<br /> 
The file has been created. 
Go to it by clicking <a href=\"$address.html\">here</a>."; 
die(); 
 } 

// The form: 
?> 

1 个答案:

答案 0 :(得分:1)

首先。从用户输入创建文件是非常危险的。也许这只是代码的摘要,但是从输入的第一个字母开始mkdir而不检查第一个字母实际上是字母而不是点,斜杠或其他字符不是好习惯。

无论如何,关于你的问题。我可能会使用$ _GET变量传递给第二个文件。因此,在第二个文件中,您使用<?php $_GET['foo'] ?>并在第一个文件中执行:

echo "Congradualations!<br /> 
    The file has been created. 
    Go to it by clicking <a href=\"$address.html?foo=$flyto1view1\">here</a>."; 

您也可以将变量回显到模板中,如下所示:

$str = '
    <?php 
        $var = \'' . $flyto1view1 . '\';
        include (\'template.php\')
    ?>';