はじめに
値を受け取った時のみ処理を行うコードです、POSTのみに限りませんが備忘録として置いておきます。
POSTされた値は$_POSTに格納されています。
使ってみる
post.phpとFunc.phpがあります。
func.phpはPost.phpから送られたmessageをテキストに追加していきます。
//post.php
<form action="result.php" method="post">
<input type='text' name='message'>
<button>Post</button>
</form>
//func.php
$message = filter_input(INPUT_POST, 'message');
$message = $message ?? '値が空です';
$fp = fopen('messages.txt', 'a');
fwrite($fp, $message . "\n");
fclose($fp);
このコードだと手入力でlocalhost:8080/Func.phpとすると「値が空です」とテキストファイルに追記されてしまいます。
なので、$_SEVER関数を使いpostメソッドで送信された時のみテキストファイルに追記するようにします
func.php
$message = trim(filter_input(INPUT_POST, 'message'));
$message = $message !== '' ? $message : '...';
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$filename = '../app/messages.txt';
$fp = fopen($filename, 'a');
fwrite($fp, $message . "\n");
fclose($fp);
}
これでpostだった時のみテキストファイルに追記されるようになりました。
おわりに
便利ですね。