-
ID:JyDrdF さんの質問

phpでフォームからファイルを作成し、ファイルに書き込むプログラムを書いていますが、改行とデータの引き渡しがうまくできないので教えて下さい。

$sWriteContents = ’$consumerKey = ($_POST["url"];\n’;
$sWriteContents = ’$consumerSecret = ($_POST["consumerKey"];\n’;
$sWriteContents .= ’$accessToken = ($_POST["consumerSecret"];\n’;
$sWriteContents .= ’$accessTokenSecret = ($_POST["accessToken"];\n’;

としています。

みんなの回答 3 件

ID:UaJcyQ さんの回答

ダブルクォーテーションで囲まないとエスケープきかないよ。

ID:JyDrdF

データの受け渡しはどうやればいいのですか?

ID:UaJcyQ

まず初心者向けのPHPサイト読んで、文字列内で変数つかう方法みるといいよ。
echo "Var={$var}";とか

それから、ダブルクォーテーションとシングルクォーテーションの意味の違いを声に出して百回読んできてほしいです。

少なくとも$POST["var"]と使う必要はないから。

ID:u9hmJV さんの回答

PHPっていやだな〜。なんか汚い。

ID:JyDrdF

普段は何使ってるのですか?

ID:u9hmJV

HTMLですね。

ID:2kib0W

汚いのはトピ主の書き方が悪いだけで、言語は関係ないよ

ID:JyDrdF

キレイな書き方教えて下さい。

ID:Y2gWYs

HTMLってw

ID:SDTsPy さんの回答

やりたい事がイマイチ理解できてないのですが、
PHPフォームで入力・送信された各情報をファイルに保存して、それを別のPHPで読み取りたいって事ですか?

ID:JyDrdF

そうです!よろしくお願い致します。

ID:SDTsPy

それなら$_POSTにserialize掛けて配列から文字列に変換して、それをファイルに書き込んで、読み込み側でファイルの中身を取得してunserializeして配列に戻す方が簡単じゃないですかね。まぁcsv形式とかにしたほうがファイルを直接見る時に確認しやすいですけど。

たぶんトピ主さんは、ファイルにPHPの記述を格納して、それをincludeして値を取得する事を想定しているのかもしれないですけど、どうしてもそうせざる負えない状況以外は、そのやり方は避けたほうが無難だと思います。例えば$_POST[’url’]の値が「’’;exec(’rm -rf /’);」とかだった場合、includeした時に「$consumerKey = ’’;exec(’rm -rf /’);」ってことになってexecが実行されちゃいますよね。フォームを入力した人が意図的にPHPのコードを実行できちゃう事になります。やるなら適切にエスケープ処理してあげないといけないです。

ID:SDTsPy

たぶん、分かっているとは思いますが、くれぐれも「exec(’rm -rf /’);」を試しに実行してみようとかしないでくださいね。パーミッションの関係で失敗はするとは思いますが、最悪の場合全てが消え去るコードなので。

ID:JyDrdF

全く理解できてないですので勉強し直します。

ID:SDTsPy

勉強頑張ってくださいませ。

最終更新日:2014-09-18 (2,065 views)

関連するトピックス

ページ上部に戻る