PHP变量error / file_put_contents错误

时间:2017-06-22 01:39:22

标签: php html mysql variables file-put-contents

我正在尝试使用file_put_contents()来创建特定于用户的页面。当用户首次进入他们的帐户时,我希望该网站创建一个只有用户可以在mydomain.com/users/username.php访问的页面。如果他们不是用户,那么我正在尝试将其重定向到他们自己的帐户页面(因为users / username.html包含敏感信息)。因此,我在username.html中使用此代码:

<?php 
$actual_link='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; 
$net = $actual_link['filename']; 
if($_SESSION['username']==$net){
 echo 'Verified'; 
 } 
 else{ 
 header('Location:mydomain.com/user/welcome.php');
 } 
?>

假设这会使未经授权的用户离开页面。要为每个用户创建页面(并保持其可扩展性),我使用了

file_put_contents($urlphp,$phpstuff)

(我决定不使用FILE_APPEND,因为该文件不应该存在)。 $ urlphp是用户名($ _SESSION [&#39;用户名&#39;])和.php相结合,$ phpstuff就是我上面提到的全部内容。这是我认为我错了的地方。我打字:

$phpstuff = "<?php 
$actual_link='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; 
$net = $actual_link['filename']; 
if($_SESSION['username']==$net){
 echo 'Verified'; 
 } 
 else{ 
 header('Location:mydomain.com/user/welcome.php');
 } 
?>"

但是,这段代码产生了:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in path/to/users/welcome.php on line 35

第35行是:

$actual_link='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; 

然而,(请记住,我对PHP / MySQL来说相对较新,所以我不知道我所知道的以及PHP.net和W3Schools告诉我的内容)我无法&#39 ; t找到第35行中的任何空格。所以我假设你不能有一个多行变量(这对代码不会有害。我想......),所以我试着制作这一行都产生了完全相同的错误,但将问题排成一行。

我能弄清楚的是,如果我使用file_put_contents()或使用变量$ phpstuff是一个问题。如果有任何我错过的东西,请指出,我几乎是肯定的,这是我忽略的东西。我不知道该怎么做/尝试。所有帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

不要这样做。

不是动态生成PHP并为每个单独的用户创建文件(这在很多方面都是错误的),而是让一个文件处理所有用户,然后将username / userid作为参数传递给脚本。

您可以使用.htaccess将/users/.php的所有请求路由到/users/index.php?user =