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
を使用してusername
とpassword
の値を取得しています。
取得したデータは、データベースへの挿入や認証などの処理に使っていくことができます。
$_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
を適切に使用することで、ユーザーからの入力データを取得できました。
フォームデータの処理においては、セキュリティ上の懸念にも留意し、適切なバリデーションやサニタイジングを実施するよう心がけましょう。
コメント