0

我有一个 php 文件,我使用它来根据输入变量设置动态生成的页面。它从 index.html 页面开始,其中收集了一些变量,其中一些不是简单的字符串,而是复杂的 Google 地球对象。在提交该页面时,它会发布到另一个页面,您将被重定向到创建的文件。当我尝试在用于生成页面的 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: 
?> 
4

1 回答 1

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\')
    ?>';
于 2013-03-24T19:29:40.347 回答