/* Google Analytics ▽ */ /* Google Analytics △ */

WEB制作の勉強メモ / 猫脳人間

HTML CSS JavaScript ActionScript jQuery WordPress PHP Illustrator Photoshop Flash … 猫サイズの脳でも覚えるぞ と…

PHPの授業(5日目)

index.php

<?php

require_once dirname(__FILE__).'/func.php';

$name='';
$email='';
$message = '';

$name_error='';
$email_error='';
$message_error='';

if(isset($_SESSION['name'])){
  $name = $_SESSION['name'];
}

if(isset($_SESSION['email'])){
  $email = $_SESSION['email'];
}

if(isset($_SESSION['message'])){
  $message = $_SESSION['message'];
}

if(isset($_SESSION['name_error'])){
  $name_error = $_SESSION['name_error'];
}

if(isset($_SESSION['email_error'])){
  $email_error = $_SESSION['email_error'];
}

if(isset($_SESSION['message_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>

check.php

<?php

require_once dirname(__FILE__).'/func.php';

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['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;

if(!$success){
  header('Location:index.php');
  exit;
}

?>

<!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); ?>
</td>
</tr>

<tr>
<th>Eメール: </th>
<td>
<?php echo h($email); ?>
</td>
</tr>

<tr>
<th>お問合せ内容: </th>
<td>
<?php echo nl2br(h($message)); ?>
</td>
</tr>

</tbody>
</table>


<p><a href="index.php"><strong>【 戻る 】</strong></a></p>

<p><a href="send.php"><strong>【 送信 】</strong></a></p>

</section>

<footer>
<p><small>(c) S.S</small></p>
</footer>

</div><!-- /#container -->


</body>
</html>

send.php

<?php

require_once dirname(__FILE__).'/func.php';
// この一行を記述し func.php を読み込むんで func.php の内容を実行


/*var_dump($_SESSION['success']);
exit; エラーチェックに使うソース*/

if(!$_SESSION['success']){
  header('Location:index.php');
  exit;
}

$name = $_SESSION['name'];
$email = $_SESSION['email'];
$message = $_SESSION['message'];

$_SESSION = array();
// 配列に対して array() をかけると 配列が空になる

mb_send_mail('xxxxxx@gmail.xxxx.com','お問合せメール',$name.$email.$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>

<div id="container">

<h1>メール送信終了</h1>

<p>以下の内容でメールが送信されました。</p>
<p>お問合せありがとうございました。</p>

<table>
<tbody>

<tr>
<th>お名前: </th>
<td>
<?php echo h($name); ?>
</td>
</tr>

<tr>
<th>Eメール: </th>
<td>
<?php echo h($email); ?>
</td>
</tr>

<tr>
<th>お問合せ内容: </th>
<td>
<?php echo nl2br(h($message)); ?>
</td>
</tr>

</tbody>
</table>

<p><a href="index.php">トップに戻る</a></p>

</div><!-- /#container -->

</body>
</html>

func.php

<?php

/* 繰り返し記述が出てくる記述をこのファイルに記述し、
require_once dirname(__FILE__).'/func.php';
の記述でこのファイルを呼び出す */

function h($str){
  return htmlspecialchars($str,ENT_QUOTES,'UTF-8');
} // h() 
//→自作関数、ユーザー定義関数 と言う

session_start();