PHPでフォームを使ったデータ送信(POST/GET)

PHP

PHPでHTMLのフォーム(form)から送信されたデータを処理する方法について書いています。

Web開発では、ユーザーが使用するブラウザとのやり取りの一環としてフォームが頻繁に使用されます。
PHPでは、主に$_GET$_POSTのスーパーグローバル変数を使用して、フォームから送信されたデータを取得します。

この記事では、基本的なPHPフォーム処理に焦点を当て、$_GETおよび$_POSTの使用方法を解説します。

フォームの基本構造

HTMLでフォームを作成するには、<form>要素を使用します。
以下は、基本的なフォームの構造です。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sample Form</title>
</head>
<body>
    <form action="process.php" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required>

        <label for="password">Password:</label>
        <input type="password" id="password" name="password" required>

        <button type="submit">送信する</button>
    </form>
</body>
</html>

この例では、ユーザー名(username)とパスワード(password)の2つのフィールドを持つ簡単なフォームを作成しています。
<form>要素のaction属性には、フォームが送信されたときにデータを処理するPHPファイルのパス(process.php)を指定しています。

また、method属性にはデータの送信方法を指定しています。ここではpostメソッドを使用しています。

$_POSTを使用したデータの取得

postメソッドを指定すると、$_POST変数で値を受け取ることができます。
action属性で指定した、process.phpファイルに送信されます。

PHPスクリプト内で$_POSTを使用してフォームデータを取得するには、次のように行います。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // $_POSTからデータを取得
    $username = $_POST["username"];
    $password = $_POST["password"];

    // ここでデータの処理を行う
    // 例: データベースへの挿入、認証などなど
}
?>

この例では、$_POSTを使用してusernamepasswordの値を取得しています。
取得したデータは、データベースへの挿入や認証などの処理に使っていくことができます。

$_GETを使用したデータの取得

$_GETを使用してフォームデータを取得するには、フォームのmethod属性をgetに設定します。

<form action="process.php" method="get">
    <!-- フォームの中身 -->
</form>

そして、PHPスクリプト内で$_GETを使用してデータを取得します。

<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    // $_GETからデータを取得
    $username = $_GET["username"];
    $password = $_GET["password"];

    // ここでデータの処理を行う
    // 例: データベースへの挿入、認証など
}
?>

「送信する」ボタンを押すと、process.phpに対して、GETメソッドでデータが送信されます。

$_GETを使用すると、データがURLに含まれるため、ブラウザの履歴やブックマークとして保存されることに留意してください。
実際にブラウザで実行すると、urlに「?username=test&password=password」といった形で、送信したデータが表示されることが確認できます。

$_GETは画面遷移・検索結果の表示などで使用し、パスワードなどの機密性の高い情報は$_POSTを使用することが一般的です。

まとめ

この記事では、PHPでフォームデータを処理するための基本的な手順を解説しました。
$_GET$_POSTを適切に使用することで、ユーザーからの入力データを取得できました。

フォームデータの処理においては、セキュリティ上の懸念にも留意し、適切なバリデーションやサニタイジングを実施するよう心がけましょう。

コメント

タイトルとURLをコピーしました