PHPの授業(4日目) (ソースのみ説明無し)
※PHP初学者の記述です。
教えてもらっている途中の記述ですので、まだまだ実際には使える記述にはなっていません。
<?php function h($str){ return htmlspecialchars($str,ENT_QUOTES,'UTF-8'); } // h() →自作関数、ユーザー定義関数 と言う session_start(); $name=''; $email=''; $message = ''; $name_error=''; $email_error=''; $message_error=''; $name = @$_SESSION['name']; $email = @$_SESSION['email']; $message = @$_SESSION['message']; $name_error = @$_SESSION['name_error']; $email_error = @$_SESSION['email_error']; $message_error = @$_SESSION['message_error']; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>お問合せフォーム|初めてのPHP</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <div id="container"> <header> <h1>お問合せフォーム</h1> </header> <section> <form action="check.php" method="post"> <table> <tbody> <tr> <th><label for="name">お名前: <br> <span>(20文字以内)</span></label></th> <td><input type="text" name="name" id="name" value="<?php echo h($name); ?>"> <?php if(!empty($name_error)){ echo "<span> {$name_error} </span>"; } ?> </td> </tr> <tr> <th><label for="email">Eメール: <br> <span>(25文字以内)</span></label></th> <td><input type="text" name="email" id="email" value="<?php echo h($email); ?>"> <?php if(!empty($email_error)){ echo "<span> {$email_error} </span>"; } ?> </td> </tr> <tr> <th><label for="message">お問合せ内容: <br> <span>(150文字以内)</span></label></th> <td><textarea name="message" id="message" row="5"> <?php echo h($message); ?></textarea> <?php if(!empty($message_error)){ echo "<span> {$message_error} </span>"; } ?> </td> </tr> </tbody> </table> <input type="submit" value=" 確認 "> </form> </section> <footer> <p><small>(c) Silent Cait</small></p> </footer> </div><!-- /#container --> </body> </html>
<?php function h($str){ return htmlspecialchars($str,ENT_QUOTES,'UTF-8'); } // 自作関数、ユーザー定義関数 と言う if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message'])) { header('Location:index.php'); exit; } // 値が無い場合に、index.php に飛ばす // var_dump($_POST); $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $success = true; $name_error=''; $email_error=''; $message_error=''; // 空文字を代入した if(strpos($email,'@') ===false){ $email_error = 'Eメールアドレスに 「@マーク」 が含まれていません'; $success = false; } if(strlen($email)!=mb_strlen($email,'UTF-8')){ $email_error = 'Eメールアドレスに全角文字が含まれています'; $success = false; } if(mb_strlen($name,'UTF-8')>20){ $name_error = 'お名前が長すぎます'; $success = false; } if(mb_strlen($email,'UTF-8')>25){ $email_error = 'Eメールアドレスが長すぎます'; $success = false; } if(mb_strlen($message,'UTF-8')>150){ $message_error = '本文が長すぎます'; $success = false; } if(empty($name)){ $name_error= '名前が入力されていません'; $success = false; $email_error= 'Eメールアドレスは必須項目です'; $success = false; $message_error='お問い合わせ内容は必須項目です'; $success = false; } session_start(); $_SESSION['name']=$_POST['name']; $_SESSION['email']=$_POST['email']; $_SESSION['message']=$_POST['message']; $_SESSION['success'] = $success; $_SESSION['name_error'] = $name_error; $_SESSION['email_error'] = $email_error; $_SESSION['message_error'] = $message_error; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>お問合せ内容確認画面|PHP2日目</title> </head> <link rel="stylesheet" type="text/css" href="css/style.css"> <body> <div id="container"> <header> <h1>お問合せフォーム</h1> </header> <section> <table> <tbody> <tr> <th>お名前: </th> <td> <?php echo h($name); echo h($name_error); ?> </td> </tr> <tr> <th>Eメール: </th> <td> <?php echo h($email); echo h($email_error); ?> </td> </tr> <tr> <th>お問合せ内容: </th> <td> <?php echo nl2br(h($message)); echo nl2br(h($message_error)); ?> </td> </tr> </tbody> </table> <p><a href="index.php"><strong>【 戻る 】</strong></a></p> <?php if($success){ echo '<p><a href="send.php"><strong>【 送信 】</strong></a></p>'; } ?> </section> <footer> <p><small>(c) S.S</small></p> </footer> </div><!-- /#container --> </body> </html>
<?php session_start(); if(!$_SESSION['success']){ header('Location:index.php'); exit; } $name = $_SESSION['name']; $email = $_SESSION['email']; $message = $_SESSION['message']; mb_send_mail('メール@アドレス','お問合せメール',$name.$mail.$message); ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>確認画面から情報を受け取る|send.php</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <p>確認画面( check.php ) から情報を受け取って、 それを出力表示。</p> <p>お問合せありがとうございました。</p> </body> </html>