PHP 变量错误/file_put_contents 错误

标签 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['username']) 与 .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 告诉我的内容)我找不到任何空格第 35 行。所以我假设你不能有一个多行变量(这不会对代码有害。我认为......),所以我尝试将其全部写成一行,这产生了完全相同的结果错误,但将有问题的行移到了一位。

我无法弄清楚这是我使用 file_put_contents() 还是使用变量 $phpstuff 的问题。如果我错过了什么,请指出,我几乎肯定这是我忽略的事情。我不知道该做什么/尝试什么。感谢所有帮助。谢谢!

最佳答案

不要这样做。

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

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

关于PHP 变量错误/file_put_contents 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44688743/

相关文章:

mysql - 动态MySQL表

mysql - 插入的记录不显示

javascript - Node.js 数据模型对象语法

javascript - 如何以编程方式使链接工作?

javascript - 灵活显示变化的表格信息?

mysql - 如何在本地主机:800上连接mysql工作台

c# - 将 C# lambda 表达式移植到 PHP

javascript - 如何下载外部视频而不在浏览器中播放?

php - 如何将一维数组转换为二维数组

html - 如何垂直对齐div中的文本和图像