アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PHPUbuntuAndroid
【PHP】フォーム入力を受け取り出力する
POSTED BY
2024-04-11

HTMLからPOSTでtextareaの入力文字列を受け取ってそれをそのままtextareaの値として表示する。

テンプレートのHTMLを作り、キーワードで変換をかける。テンプレートHTMLは以下のような感じ。

HTMLsample_form_template.htmlGitHub Source
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>$title$</title>
</head>
<body>
$body$

<form action="read_replace_form.php" method="post">
  <textarea name="textarea" rows="5" cols="50">$textarea$</textarea><br>
  <input type="submit" value="送信">
</form>

</body>
</html>

受け取って表示するPHPは以下のようになる。

PHPread_replace_form.phpGitHub Source
<?php

$html = file_get_contents('./sample_form_template.html');

$html = str_replace('$title$', 'たいとる', $html);
$html = str_replace('$body$', 'ぼでぃ', $html);

$textarea = "";
if(isset($_POST['textarea'])) {
  $textarea = htmlspecialchars_decode($_POST['textarea']);
}

$html = str_replace('$textarea$', htmlspecialchars($textarea), $html);

$content_length = strlen($html);

header('Content-Type: text/html; charset=UTF-8');
header('Content-Length: ' . $content_length);

echo $html;

isset関数でフォーム入力値の存在確認を行い、あればhtmlspecialchars_decode関数でHTMLエンコード済みの入力であればデコードして生データにしてから取り扱いを開始する。

なんらかの加工をするならして、最終的には出力前にhtmlspecialchars関数でHTMLエンコードを行い、$textarea$キーワードが埋め込まれているHTMLを、この入力値でreplaceして値を出力する。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】