<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPフォーム | Seek Rise</title>
	<atom:link href="https://seek-rise.com/tag/php%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0/feed/" rel="self" type="application/rss+xml" />
	<link>https://seek-rise.com</link>
	<description></description>
	<lastBuildDate>Sat, 03 Jan 2026 14:22:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://seek-rise.com/wp-content/uploads/2019/10/cropped-favicon-32x32.png</url>
	<title>PHPフォーム | Seek Rise</title>
	<link>https://seek-rise.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/><site xmlns="com-wordpress:feed-additions:1">167377966</site>	<item>
		<title>6-8 PHPでフォームデータを受け取って表示する</title>
		<link>https://seek-rise.com/web-development/php-basic/post-428/</link>
					<comments>https://seek-rise.com/web-development/php-basic/post-428/#respond</comments>
		
		<dc:creator><![CDATA[NOA（ノア）]]></dc:creator>
		<pubDate>Mon, 22 Dec 2025 13:39:31 +0000</pubDate>
				<category><![CDATA[Web開発学習ロードマップ]]></category>
		<category><![CDATA[6.PHP基礎]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[初心者]]></category>
		<category><![CDATA[PHP基礎]]></category>
		<category><![CDATA[PHPフォーム]]></category>
		<guid isPermaLink="false">https://seek-rise.com/?p=428</guid>

					<description><![CDATA[ここまでで、 ・変数・条件分岐・繰り返し・配列 といった、PHPの基礎的な部品がすべて揃いました。 ここからは、それらを組み合わせてWebアプリケーションらしい処理 を書いていきます。 その第一歩が、フォームデータをPH [&#8230;]]]></description>
										<content:encoded><![CDATA[<p data-start="255" data-end="261">ここまでで、</p>
<p data-start="263" data-end="290">・変数<br data-start="266" data-end="269" />・条件分岐<br data-start="274" data-end="277" />・繰り返し<br data-start="282" data-end="285" />・配列</p>
<p data-start="292" data-end="317">といった、PHPの基礎的な部品がすべて揃いました。</p>
<p data-start="319" data-end="368">ここからは、それらを組み合わせて<br data-start="335" data-end="338" /><strong data-start="338" data-end="358">Webアプリケーションらしい処理</strong> を書いていきます。</p>
<p data-start="370" data-end="406">その第一歩が、<br data-start="377" data-end="380" /><strong data-start="380" data-end="402">フォームデータをPHPで受け取る処理</strong> です。</p>
<p data-start="408" data-end="415">この記事では、</p>
<p data-start="417" data-end="460">・HTMLフォームの送信<br data-start="429" data-end="432" />・PHPでの受け取り方<br data-start="443" data-end="446" />・表示するまでの最小構成</p>
<p data-start="462" data-end="479">を、実際に動くコードで解説します。</p>
<hr data-start="481" data-end="484" />

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">この記事で学べること</a></li><li><a href="#toc2" tabindex="0">フォーム送信の基本的な流れ</a></li><li><a href="#toc3" tabindex="0">HTMLフォームを作成する</a><ol><li><a href="#toc4" tabindex="0">サンプルコード①：HTMLフォーム</a></li><li><a href="#toc5" tabindex="0">ポイント</a></li></ol></li><li><a href="#toc6" tabindex="0">PHPでフォームデータを受け取る</a><ol><li><a href="#toc7" tabindex="0">サンプルコード②：フォームデータの受け取り</a></li><li><a href="#toc8" tabindex="0">コードの読み解き</a></li></ol></li><li><a href="#toc9" tabindex="0">$_POST は配列である</a></li><li><a href="#toc10" tabindex="0">未定義エラーを防ぐ書き方</a><ol><li><a href="#toc11" tabindex="0">サンプルコード③：安全な受け取り方</a></li><li><a href="#toc12" tabindex="0">ポイント</a></li></ol></li><li><a href="#toc13" tabindex="0">GET送信との違い</a><ol><li><a href="#toc14" tabindex="0">サンプルコード④：GET送信フォーム</a></li><li><a href="#toc15" tabindex="0">PHP側の受け取り</a></li><li><a href="#toc16" tabindex="0">POSTとGETの使い分け</a></li></ol></li><li><a href="#toc17" tabindex="0">フォーム処理で必ず意識すべきこと</a></li><li><a href="#toc18" tabindex="0">初心者がよくやるミス</a></li><li><a href="#toc19" tabindex="0">学習初期のおすすめ練習</a></li><li><a href="#toc20" tabindex="0">まとめ</a></li><li><a href="#toc21" tabindex="0">次に読むべき記事</a></li></ol>
    </div>
  </div>

<h2 data-start="486" data-end="499"><span id="toc1">この記事で学べること</span></h2>
<p data-start="501" data-end="575">・HTMLフォームとPHPの関係<br data-start="517" data-end="520" />・$_POST / $_GET の役割<br data-start="539" data-end="542" />・フォームデータの受け取り方<br data-start="556" data-end="559" />・受け取った値を表示する方法</p>
<hr data-start="577" data-end="580" />
<h2 data-start="582" data-end="598"><span id="toc2">フォーム送信の基本的な流れ</span></h2>
<p data-start="600" data-end="623">フォーム処理は、<br data-start="608" data-end="611" />次の流れで動いています。</p>
<ol data-start="625" data-end="691">
<li data-start="625" data-end="642">
<p data-start="628" data-end="642">HTMLでフォームを表示</p>
</li>
<li data-start="643" data-end="659">
<p data-start="646" data-end="659">ユーザーが入力して送信</p>
</li>
<li data-start="660" data-end="677">
<p data-start="663" data-end="677">PHPがデータを受け取る</p>
</li>
<li data-start="678" data-end="691">
<p data-start="681" data-end="691">処理・表示を行う</p>
</li>
</ol>
<p data-start="693" data-end="724">この流れを<br data-start="698" data-end="701" /><strong data-start="701" data-end="717">一度しっかり体験すること</strong> が重要です。</p>
<hr data-start="726" data-end="729" />
<h2 data-start="731" data-end="747"><span id="toc3">HTMLフォームを作成する</span></h2>
<p data-start="749" data-end="776">まずは、<br data-start="753" data-end="756" /><strong data-start="756" data-end="769">最小構成のフォーム</strong> を作ります。</p>
<h3 data-start="778" data-end="799"><span id="toc4">サンプルコード①：HTMLフォーム</span></h3>
<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary">
<pre class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-html"><span class="hljs-tag">&lt;<span class="hljs-name">form</span></span> <span class="hljs-attr">method</span>=<span class="hljs-string">"post"</span> <span class="hljs-attr">action</span>=<span class="hljs-string">"result.php"</span>&gt;
  <span class="hljs-tag">&lt;<span class="hljs-name">label</span></span>&gt;
    名前：
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span></span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"username"</span>&gt;
  <span class="hljs-tag">&lt;/<span class="hljs-name">label</span></span>&gt;
  <span class="hljs-tag">&lt;<span class="hljs-name">br</span></span>&gt;
  <span class="hljs-tag">&lt;<span class="hljs-name">button</span></span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;送信<span class="hljs-tag">&lt;/<span class="hljs-name">button</span></span>&gt;
<span class="hljs-tag">&lt;/<span class="hljs-name">form</span></span>&gt;
</code></pre>
</div>
<hr data-start="975" data-end="978" />
<h3 data-start="980" data-end="988"><span id="toc5">ポイント</span></h3>
<p data-start="990" data-end="1075">・method=&#8221;post&#8221;<br data-start="1004" data-end="1007" />　→ POST送信を行う<br data-start="1019" data-end="1022" />・action<br data-start="1029" data-end="1032" />　→ 送信先のPHPファイル<br data-start="1046" data-end="1049" />・name 属性<br data-start="1057" data-end="1060" />　→ PHP側で使うキー名</p>
<p data-start="1077" data-end="1107">name 属性がないと、<br data-start="1089" data-end="1092" />PHPでは値を受け取れません。</p>
<hr data-start="1109" data-end="1112" />
<h2 data-start="1114" data-end="1133"><span id="toc6">PHPでフォームデータを受け取る</span></h2>
<p data-start="1135" data-end="1161">次に、<br data-start="1138" data-end="1141" />送信先の PHP ファイルを作成します。</p>
<h3 data-start="1163" data-end="1188"><span id="toc7">サンプルコード②：フォームデータの受け取り</span></h3>
<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary">
<pre class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-php"><span class="hljs-meta">&lt;?php</span>
<span class="hljs-variable">$username</span> = <span class="hljs-variable">$_POST</span>[<span class="hljs-string">'username'</span>];

<span class="hljs-keyword">echo</span> <span class="hljs-variable">$username</span>;
</code></pre>
</div>
<hr data-start="1257" data-end="1260" />
<h3 data-start="1262" data-end="1274"><span id="toc8">コードの読み解き</span></h3>
<p data-start="1276" data-end="1366">・$_POST<br data-start="1283" data-end="1286" />　→ POST送信されたデータをまとめた配列<br data-start="1308" data-end="1311" />・[&#8216;username&#8217;]<br data-start="1324" data-end="1327" />　→ フォームの name 属性と対応<br data-start="1346" data-end="1349" />・echo<br data-start="1354" data-end="1357" />　→ 値を表示</p>
<p data-start="1368" data-end="1400">これで、<br data-start="1372" data-end="1375" />フォームに入力した内容が<br data-start="1387" data-end="1390" />画面に表示されます。</p>
<hr data-start="1402" data-end="1405" />
<h2 data-start="1407" data-end="1423"><span id="toc9">$_POST は配列である</span></h2>
<p data-start="1425" data-end="1436">ここは非常に重要です。</p>
<p data-start="1438" data-end="1462">$_POST は、<br data-start="1447" data-end="1450" /><strong data-start="1450" data-end="1458">連想配列</strong> です。</p>
<p data-start="1464" data-end="1468">つまり、</p>
<p data-start="1470" data-end="1500">・キー → name 属性<br data-start="1483" data-end="1486" />・値 → 入力された内容</p>
<p data-start="1502" data-end="1515">という構造になっています。</p>
<hr data-start="1517" data-end="1520" />
<h2 data-start="1522" data-end="1537"><span id="toc10">未定義エラーを防ぐ書き方</span></h2>
<p data-start="1539" data-end="1581">フォーム未送信時に<br data-start="1548" data-end="1551" />エラーが出るのを防ぐため、<br data-start="1564" data-end="1567" />次の書き方がよく使われます。</p>
<h3 data-start="1583" data-end="1604"><span id="toc11">サンプルコード③：安全な受け取り方</span></h3>
<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary">
<pre class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-php"><span class="hljs-meta">&lt;?php</span>
<span class="hljs-variable">$username</span> = <span class="hljs-variable">$_POST</span>[<span class="hljs-string">'username'</span>] ?? <span class="hljs-string">''</span>;

<span class="hljs-keyword">echo</span> <span class="hljs-variable">$username</span>;
</code></pre>
</div>
<hr data-start="1679" data-end="1682" />
<h3 data-start="1684" data-end="1692"><span id="toc12">ポイント</span></h3>
<p data-start="1694" data-end="1728">・??（null合体演算子）<br data-start="1708" data-end="1711" />　→ 値がなければ空文字にする</p>
<p data-start="1730" data-end="1753">この書き方は、<br data-start="1737" data-end="1740" />実務でも頻繁に使われます。</p>
<hr data-start="1755" data-end="1758" />
<h2 data-start="1760" data-end="1772"><span id="toc13">GET送信との違い</span></h2>
<p data-start="1774" data-end="1798">フォームは、<br data-start="1780" data-end="1783" />GET送信することもできます。</p>
<h3 data-start="1800" data-end="1822"><span id="toc14">サンプルコード④：GET送信フォーム</span></h3>
<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary">
<pre class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-html"><span class="hljs-tag">&lt;<span class="hljs-name">form</span></span> <span class="hljs-attr">method</span>=<span class="hljs-string">"get"</span> <span class="hljs-attr">action</span>=<span class="hljs-string">"result.php"</span>&gt;
  <span class="hljs-tag">&lt;<span class="hljs-name">input</span></span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"keyword"</span>&gt;
  <span class="hljs-tag">&lt;<span class="hljs-name">button</span></span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;検索<span class="hljs-tag">&lt;/<span class="hljs-name">button</span></span>&gt;
<span class="hljs-tag">&lt;/<span class="hljs-name">form</span></span>&gt;
</code></pre>
</div>
<hr data-start="1958" data-end="1961" />
<h3 data-start="1963" data-end="1976"><span id="toc15">PHP側の受け取り</span></h3>
<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary">
<pre class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-php"><span class="hljs-meta">&lt;?php</span>
<span class="hljs-variable">$keyword</span> = <span class="hljs-variable">$_GET</span>[<span class="hljs-string">'keyword'</span>] ?? <span class="hljs-string">''</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-variable">$keyword</span>;
</code></pre>
</div>
<hr data-start="2046" data-end="2049" />
<h3 data-start="2051" data-end="2068"><span id="toc16">POSTとGETの使い分け</span></h3>
<p data-start="2070" data-end="2080">目安は次の通りです。</p>
<p data-start="2082" data-end="2100">・登録・更新<br data-start="2088" data-end="2091" />　→ POST</p>
<p data-start="2102" data-end="2122">・検索・ページ移動<br data-start="2111" data-end="2114" />　→ GET</p>
<hr data-start="2124" data-end="2127" />
<h2 data-start="2129" data-end="2148"><span id="toc17">フォーム処理で必ず意識すべきこと</span></h2>
<p data-start="2150" data-end="2198">ここでは<br data-start="2154" data-end="2157" /><strong data-start="2157" data-end="2168">あえて表示だけ</strong> を行っていますが、<br data-start="2178" data-end="2181" />実務では次の処理が必須になります。</p>
<p data-start="2200" data-end="2238">・未入力チェック（バリデーション）<br data-start="2217" data-end="2220" />・XSS対策<br data-start="2226" data-end="2229" />・CSRF対策</p>
<p data-start="2240" data-end="2263">これらは、<br data-start="2245" data-end="2248" />次の記事以降で順番に扱います。</p>
<hr data-start="2265" data-end="2268" />
<h2 data-start="2270" data-end="2283"><span id="toc18">初心者がよくやるミス</span></h2>
<p data-start="2285" data-end="2299">フォーム処理で多いミスです。</p>
<p data-start="2301" data-end="2358">・name 属性を書き忘れる<br data-start="2315" data-end="2318" />・$_POST と $_GET を混同する<br data-start="2339" data-end="2342" />・未送信時のエラーを放置する</p>
<p data-start="2360" data-end="2390">「送信 → 受け取り」<br data-start="2371" data-end="2374" />の対応関係を必ず確認しましょう。</p>
<hr data-start="2392" data-end="2395" />
<h2 data-start="2397" data-end="2411"><span id="toc19">学習初期のおすすめ練習</span></h2>
<p data-start="2413" data-end="2425">次の練習がおすすめです。</p>
<p data-start="2427" data-end="2487">・入力欄を増やして受け取る<br data-start="2440" data-end="2443" />・複数項目を echo で表示する<br data-start="2460" data-end="2463" />・GET と POST を切り替えて確認する</p>
<hr data-start="2489" data-end="2492" />
<h2 data-start="2494" data-end="2500"><span id="toc20">まとめ</span></h2>
<p data-start="2502" data-end="2543">この記事では、<br data-start="2509" data-end="2512" />PHPでフォームデータを受け取るための<br data-start="2531" data-end="2534" />基本を学びました。</p>
<p data-start="2545" data-end="2599">・HTMLフォームと name 属性<br data-start="2563" data-end="2566" />・$_POST / $_GET の役割<br data-start="2585" data-end="2588" />・安全な受け取り方</p>
<p data-start="2601" data-end="2642">ここまで理解できれば、<br data-start="2612" data-end="2615" />PHPで <strong data-start="2620" data-end="2635">ユーザー入力を扱う土台</strong> が完成です。</p>
<hr data-start="2644" data-end="2647" />
<h2 data-start="2649" data-end="2660"><span id="toc21">次に読むべき記事</span></h2>
<p data-start="2662" data-end="2692">▶ 次の記事<br data-start="2668" data-end="2671" /><a href="https://seek-rise.com/web-development/php-basic/post-434/">6-9 PHPのバリデーションとは何か</a></p>
<p data-start="2694" data-end="2720">▶ 関連記事<br data-start="2700" data-end="2703" /><a href="https://seek-rise.com/web-development/php-basic/post-423/">6-7 PHPで配列を扱う基本</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://seek-rise.com/web-development/php-basic/post-428/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">428</post-id>	</item>
	</channel>
</rss>
