2017-06-22 137 views
0

我想使用file_put_contents()來創建用戶特定的頁面。當用戶首次進入他們的帳戶時,我希望網站創建一個只能由mydomain.com/users/username.php用戶訪問的頁面。如果他們不是用戶,那麼我試圖將他們重定向到他們自己的帳戶頁面(因爲users/username.html包含敏感信息)。因此,我在username.html中使用此代碼:PHP變量錯誤/ file_put_contents錯誤

<?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是與.php結合的用戶名($ _SESSION ['username']),$ 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行。所以我認爲你不能有一個多行變量(這不會對代碼有害,我想....),所以我試着用maki所有這一行,這產生了完全相同的錯誤,但移動問題線。

我無法弄清楚的是,如果這是我使用file_put_contents()或使用變量$ phpstuff時出現的問題。如果有什麼我錯過了,請指出,我幾乎積極,這是我俯瞰的東西。我無法做什麼/嘗試。所有的幫助表示讚賞。謝謝!

+0

這個問題與mysql有什麼關係?有沒有代碼來支持它,你想在'$ phpstuff =「」'中做什麼? –

+1

*「因此,我在'username.html'中使用了這些代碼」* - 您是否指示服務器將其視爲php? *「我用 'file_put_contents($ urlphp,$ phpstuff)'」* - 我沒有看到那些在任何地方定義的變量。你的問題的方式太不明瞭。 –

+0

我只能提供評論;看到給出的答案。 –

回答

2

不要這樣做。

除了動態生成PHP併爲每個單獨的用戶創建一個文件(這在許多方面都是錯誤的),還有一個文件處理所有用戶,然後將用戶名/用戶ID作爲參數傳遞給腳本。

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

+0

謝謝你的回答。我將如何使用.htaccess來做到這一點?或者你有任何解釋鏈接? – user54345349

+0

以下是.htaccess的一個很好的「備忘單」:http://htaccesscheatsheet.com/ – Enstage

+0

非常感謝!不過,我對PHP/.htaccess比較陌生。該網站的哪一部分應該用於我的需求? – user54345349