Q1.ファイルの書き込みを利用して以下のような一言掲示板を作成せよ。
●write.phpにアクセスすると以下のようなフォームが表示される。
●一言とパスワード(admin)と入力して送信ボタンを押す。
●ファイル(memo.txt)に書き込まれると。「書き込みました!」とメッセージが表示される。
●フォルダにmemo.txtが作成され。一言が保存されている。
●index.phpにアクセスすると、ファイルから一言を読み込まれ表示される。
●再びwrite.phpにアクセスしてみる。一言が表示される。
●変更して、更新する。
●index.phpにアクセスすると。内容も更新されている。
●パスワード未記入やパスワード間違えはパスワードが違いますと表示され、ファイルに書き込まれない。
[解答例]
●write.php
01 | <?php |
02 | $pass = 'admin' ; //パスワード |
03 | if (isset( $_POST [ 'memo' ])){ |
04 | $memo = $_POST [ 'memo' ]; |
05 | if (!isset( $_POST [ 'pass' ]) || $_POST [ 'pass' ] !== $pass ){ |
06 | $msg = 'パスワードが違います。' ; |
07 | } else { |
08 | $result = file_put_contents ( 'memo.txt' , $memo ); |
09 | $msg = '' ; |
10 | if ( $result !==false){ |
11 | $msg = '書き込みました!' ; |
12 | } else { |
13 | $msg = '書き込みに失敗しました。' ; |
14 | } |
15 | } |
16 | } else { |
17 | $memo = '' ; |
18 | if ( file_exists ( 'memo.txt' )){ |
19 | $memo = file_get_contents ( 'memo.txt' ); |
20 | } |
21 | $msg = '書き込む内容を入力してください。' ; |
22 | } |
23 | ?> |
24 | <!DOCTYPE html> |
25 | <html> |
26 | <head> |
27 | <meta charset= "utf-8" > |
28 | <title>PHPLesson</title> |
29 | </head> |
30 | <body> |
31 | <?= $msg ?> |
32 | <form method= "post" > |
33 | <p><textarea name= "memo" rows= "10" cols= "60" ><?= $memo ?></textarea></p> |
34 | <p>パスワード:<input type= "password" name= "pass" ></p> |
35 | <button type= "submit" >送信</button> |
36 | </form> |
37 | </body> |
38 | </html> |
●index.php
01 | <?php |
02 | $memo = '' ; |
03 | if ( file_exists ( 'memo.txt' )){ |
04 | $memo = file_get_contents ( 'memo.txt' ); |
05 | //改行をbrタグに変換 |
06 | $memo = nl2br ( $memo ); |
07 | } |
08 | ?> |
09 | <!DOCTYPE html> |
10 | <html> |
11 | <head> |
12 | <meta charset= "utf-8" > |
13 | <title>PHPLesson</title> |
14 | </head> |
15 | <body> |
16 | <p>一言メッセージ</p> |
17 | <p><?= $memo ?></p> |
18 | </body> |
19 | </html> |
コメント