2017-06-22 4 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_APPENDを使用しないことを決めた)

file_put_contents($urlphp,$phpstuff) 

を使用しました。 $ 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行目の空白が見つからなかったので、複数行の変数を持つことはできませんコードに悪影響を及ぼすことはありませんでした...)、私はマキを試しましたそれは全く同じエラーを生成しましたが、問題のある行を1行上に移動しました。

私が理解できないことは、file_put_contents()の使用や変数$ phpstuffの使用に問題があるかどうかです。私が逃したものがあれば、それを指摘してください、私はほとんど肯定的です。それは私が見落としているものです。私は何をやるべきかについて迷っています。すべての助けに感謝します。ありがとう!

+0

質問はmysqlと何が関係がありますか?それをサポートするコードはなく、 '$ phpstuff =" "'で何をしようとしていますか? –

+1

* "このように、私は' username.html'でこのコードを使用しています "* - あなたのサーバにphpとして扱うよう指示しましたか? * "私は使用しました ' file_put_contents($ urlphp、$ phpstuff) '' * - どこにでも定義された変数は表示されません。あなたの質問はあまりにも不明です。 –

+0

コメントのみ提供できます。与えられた答えを見てください。 –

答えて

2

このようにしないでください。

PHPを動的に生成し、別々のユーザーごとにファイルを作成するのではなく、1つのファイルですべてのユーザーを処理してから、username/useridをパラメータとしてスクリプトに渡します。

.htaccessを使用すると、/ users/.phpのすべてのリクエストを/users/index.php?user=にルーティングできます。

+0

あなたの答えをありがとう。 .htaccessを使ってどうすればいいですか?または説明へのリンクがありますか? – user54345349

+0

以下は、.htaccess用の「チートシート」です:http://htaccesscheatsheet.com/ – Enstage

+0

ありがとうございました!しかし、私は比較的新しいPHP/.htaccessです。そのサイトのどの部分を自分のニーズに合わせて使うべきですか? – user54345349