プロが教える店舗&オフィスのセキュリティ対策術

今任意の名前でファイルを生成するPHPを作っています。ファイルの中身に$ka = $_REQUEST[\"FFF\"];というコードをファイル作成時に書き込みたいんですが、どうも変数 $HTMLにうまく代入されてくれません。もし、どこが問題なのかわかる方どなたかいらっしゃいましたらアドバイスお願いしますΣo(≧~≦)o。


下にコードを書いておきます。


<form name="form" action="A.php" method="POST">
HTMLファイルの名前
<input name="DAI" type="text">
<input type="submit" value="作成">
</form>
<?php
$DAI = $_REQUEST["DAI"];
?>





<!-- 【この下のコード$ka = $_REQUEST[\"FFF\"];がうまく変数$HTMLに代入されません】 -->
<? $HTML="$ka = $_REQUEST[\"FFF\"];" ?>





<?php
$fp = fopen("$DAI.php","a");
fputs($fp,$HTML);
fclose($fp);
echo "ファイル作成成功!";
?>
<?
print"$DAIが作成されました";
?>
<?
print"<A href=\"http://localhost/$DAI.php\">作成された貴方のファイルへのリンク</A>";
?>

A 回答 (5件)

<? $HTML='$ka = $_REQUEST["FFF"];' ?>


こういうことでしょうか?

シングルクォートは変数を評価しません。
    • good
    • 0
この回答へのお礼

なるほど、そうすればよかったんですねσ(@´∀`)σ。ちょっと直してみたらちゃんとできました。ありがとうございます。大変簡潔でわかりやすい回答ありがとうございます。

お礼日時:2007/03/16 19:01

ちょっと疑問なんですが



$fp = fopen("$DAI.php","a");
って
$DAIとphpを連結するのか(ピリオドは連結する場合にも使用するので)$DAI.php というファイル名なのか区別つかずエラーが出るような気がするのですが。。。
$DAIのみ変数として使用するなら{$DAI}.phpなどにしたほうがいいのでは?

それと
<? $HTML="$ka = $_REQUEST[\"FFF\"];" ?>
ですが、
どういう意味です?
単に$HTML に $ka = $_REQUEST["FFF"]
というのをそのまま代入したいなら
$HTML = "\$ka = \$_REQUEST[\"FFF\"]";
で、出来ると思いますが。

この回答への補足

{$DAI}.phpですか、なるほど確かにそうかもしれません。アドバイスありがとうございます〆(∇ ̄〃) 。ちょっと試してみますね。
ちなみに<? $HTML="$ka = $_REQUEST[\"FFF\"];" ?>のほうは、PHPのスクリプトごと変数に代入すると言う意味です。

補足日時:2007/03/16 19:02
    • good
    • 0

<?php $HTML="$ka = $_REQUEST[\"FFF\"];" ?>


の意味がわかりません。
コードを見る限り、$HTMLは使っていますが、
$kaって使ってないように見受けられますし、
"FFF"ってパラメータはどこから来るものなのでしょうか?

この回答への補足

コードは特に問題がある部分を抜き出していました。Σo(≧~≦)o。

$ka = $_REQUEST[\"FFF\"];

$_REQUEST[\"FFF\"];のFFFは別のフォームから受けとったパラメータで
$kaはこれからつかう変数です。逆にわかりずらくなったみたいで申しわけないです。

補足日時:2007/03/16 18:53
    • good
    • 0

投稿されたコードをどこで区切って別々のファイルにしているか、


線を引いていただけますか?

例えば、

--- ここから、hoge.html ---
<html>
<head></head>
<body></body>
</html>
--- ここまで、hoge.html ---

のように。

この回答への補足

すみません、ちょっとうまくいかなかった部分をはしょってだしたので、わかりずらかったかもしれません。いちおう、ファイルは一枚なんですΣo(≧ヘ≦o)。

補足日時:2007/03/16 18:46
    • good
    • 0

とりあえず、PHPスクリプトの開始部分を、すべて


<?php
にしてみませんか?

この回答への補足

アドバイスありがとうございます。とりあえずこんな感じで直してやってみましたΣo(≧ヘ≦o)。ただやはりちょっとまだだめみたいです。どうなってるのやら。。といった感じです。


<form name="form" action="A.php" method="POST">
HTMLファイルの名前
<input name="DAI" type="text">
<input type="submit" value="作成">
</form>
<?php
$DAI = $_REQUEST["DAI"];
?>





<!-- 【この下のコード$ka = $_REQUEST[\"FFF\"];がうまく変数$HTMLに代入されません】 -->
<?php $HTML="$ka = $_REQUEST[\"FFF\"];" ?>





<?php
$fp = fopen("$DAI.php","a");
fputs($fp,$HTML);
fclose($fp);
echo "ファイル作成成功!";
?>
<?php
print"$DAIが作成されました";
?>
<?php
print"<A href=\"?http://localhost/$DAI.php?\">作成された貴方のファイルへのリンク</A>";
?>

補足日時:2007/03/15 21:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!