LoginSignup
3
0

More than 1 year has passed since last update.

PHP基礎_お問い合わせフォーム

Last updated at Posted at 2023-03-23

phpでお問い合わせフォームを作る

データを『送信する側』

  • actionとmethodを定義する必要がある
    • action 送信先・遷移先
    • method データの送信方法(HTTP GET送信・POST送信)
      • GET送信:URLの末尾に?+パラメーター=値というURLが記載される
        • サイトを閲覧した時や検索する時に使用される
      • post送信:データを登録する時などに使用する
        • サーバでデータを更新する時、個人情報を送る時、データ量が多い時

データを『受け取る側』

  • データを受け取る
    • スーパーグローバル変数にデータが格納され、運ばれてくる。
      • スーパーグローバル変数
        • $_POST POST送信を使った際に使用する
        • $_GET GET送信を使った際に使用する

index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="check.php" method="POST">
        <div>
            nickname<br>
            <input type="text" name="nickname">
        </div>
        <div>
            email<br>
            <input type="text" name="email">
        </div>
        <div>
            お問い合わせ内容<br>
            <textarea id="" cols="30" rows="10" name="content"></textarea>
        </div>
        <input type="submit" value="内容の確認">
    </form>
</body>
</html>

スクリーンショット 2023-03-23 23.06.38.png

chack.php

    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $content = $_POST['content'];

    if($nickname == ''){
        $nickname_result = 'ニックネームが入力されておりません';
    }else{
        $nickname_result = $nickname;
    }
    if($email == ''){
        $email_result = 'メールアドレスが入力されておりません';
    }else{
        $email_result = $email;
    }
    if($content == ''){
        $content_result = 'お問い合わせ内容が入力されておりません';
    }else{
        $content_result = $content;
    }

    ?>

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <h1>!入力内容をご確認ください!</h1>
        <p>nickname:<?php echo $nickname_result ?></p>
        <p>email:<?php echo $email_result ?></p>
        <p>お問い合わせ内容:<?php echo $content_result ?></p>

        <form action="thanks.php" method="POST">
            <input type="hidden" name="nickname" value="<?php echo $nickname; ?>">
            <input type="hidden" name="email" value="<?php  echo $email; ?>">
            <input type="hidden" name="content" value="<?php echo $content; ?>">
            <input type="submit" value="送信OK">
        </form>
    </body>
    </html>

スクリーンショット 2023-03-23 23.07.36.png

thanks.php

<?php 

    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $content = $_POST['content'];

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>お問い合わせありがとうございました!</h1>
    <div>
        <h3>お問い合わせ情報</h3>
        <p>nickname:<?php echo $nickname; ?></p>
        <p>email:<?php echo $email; ?></p>
        <p>お問い合わせ内容:<?php echo $content; ?></p>
    </div>
</body>
</html>

スクリーンショット 2023-03-23 23.09.09.png

ちなみに、入力をされていない時は…

入力されてませんと表示するには、下記を記述する

    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $content = $_POST['content'];

    if($nickname == ''){
        $nickname_result = 'ニックネームが入力されておりません';
    }else{
        $nickname_result = $nickname;
    }
    if($email == ''){
        $email_result = 'メールアドレスが入力されておりません';
    }else{
        $email_result = $email;
    }
    if($content == ''){
        $content_result = 'お問い合わせ内容が入力されておりません';
    }else{
        $content_result = $content;
    }

スクリーンショット 2023-03-23 23.10.11.png
スクリーンショット 2023-03-23 23.10.29.png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0