Kintarou'sBlog

プログラミング学習中。学習内容のアウトプットや読書で学んだことなど随時投稿!

【PHP】別ファイルへのデータ送信

こんにちは😊Kintarouです。

現在エンジニア転職を目指してプログラミング学習中です👨‍🎓
夢はフリーランスエンジニアになって働く人にとって働く事が楽しくなるシステムを作ること!
と、愛する妻と海外移住すること🗽

プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry


今回参考にさせて頂いたサイト様🙇‍♂️ dotinstall.com


別のファイルにデータを送信する

inputで入力したデータを別のファイルに送信する方法についてまとめます。
まずはform部品を作ります。

■index.php

#head部分などは省略します。

#form内のパラメーターを同階層内に作成したresult.phpファイルにGETメソッドで送ります。
<form action="result.php" method="get">

#送るパラメーターをmessageという名前にしておきます。
  <input type="text" name="message">
  <button>SEND</button>
</form>

仮にinput部分に「赤」と入力したとします。
f:id:ryosuke-toyama:20201102200304p:plain

■result.php

<?php

function h ($str)
{
 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}


#GETメソッドで送られたmessageというパラメータが$messageだよ。という記述です。
#trimはもし「赤」の前後に空白があった場合に無視するためにつけています。
$message = trim(filter_input(INPUT_GET, 'message'));

#パラメータが空の場合はNo colorとします。
$message = $message !== '' ? $message : 'No color';

#同階層にhead部分をまとめた_header.phpがあるとします。
include('_header.php');

?>


<p><?= h($message); ?></p>

「赤」の記述がクエリパラメーターでresult.phpに送られ、resut.phpに反映されている事がわかります。
f:id:ryosuke-toyama:20201102201607p:plain

改行のある文章を送信する

次に改行のある文章の送信方法です。
textareaを使いますが、上記のままだと改行を入れてもHTMLでは改行を改行として処理してくれません。
改行をbrタグで表記する必要があります。
nl2br関数を使います。(new lline to br)

■index.php

#head部分などは省略します。

<form action="result.php" method="get">

  <textarea name="message"></textarea>
  <button>SEND</button>
</form>

■result.php

<?php

function h ($str)
{
 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}

$message = trim(filter_input(INPUT_GET, 'message'));
$message = $message !== '' ? $message : 'No color';

include('_header.php');

?>

#nl2brとする事で、textareaに改行があったら改行として出力してくれます。
<p><?= nl2br(h($message)); ?></p>

以上、どなたかの参考になれば幸いです😊