PHPのコンタクトフォームで入力した内容を送信した先に$_SESSONで引き継がせたい。
発生している問題・エラーメッセージ
ローカル環境では$_SESSONで引き継がれているのにサーバー
を介すると引き継がれない。
該当のソースコード
PHP
1<meta charset="UTF-8"> 2<?php 3session_start(); 4 5 $mode = "input"; 6 7 $errmessage = array(); 8 9 if( isset($_POST["back"] ) && $_POST["back"] ){ 10 // 何もしない 11 12 13 } else if( isset($_POST["confirm"] ) && $_POST["confirm"] ){ 14 15 16 $_SESSION['your_name']= $_POST['your_name']; 17 $_SESSION['your_email'] = $_POST['your_email']; 18 $_SESSION['your_message'] = $_POST['your_message']; 19 20 $mode = "confirm"; 21 22 } else if( isset($_POST["send"] ) && $_POST["send"] ){ 23 // 送信ボタンを押したとき 24$message = "お問い合わせを受け付けました\r\n" ."名前:" .$_SESSION["your_name"]. "\r\n" ."email:" . $_SESSION['your_email']. "\r\n" ."お問い合わせ内容:\r\n" .preg_replace("/\r\n|\r\n/" , "\r\n" , $_SESSION['your_message']); 25 26 27 mb_send_mail($_SESSION["your_email"], "お問い合わせありがとうございます", $message ); 28 mb_send_mail("info@ichidesign.info", "お問い合わせありがとうございます", $message ); 29 30 31 $_SESSION = array(); 32 33 $mode = "send"; 34 35 36 }else{ 37 $_SESSION = array(); 38 39 40 $_SESSION['your_name'] =""; 41 42 $_SESSION['your_email'] = ""; 43 $_SESSION['your_message'] ="" ; 44 45 } 46?> 47 48 49<!DOCTYPE html> 50 51<html lang="ja"> 52<head> 53 <meta charset="UTF-8"> 54 <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> --> 55 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 56 <title>お問合せフォーム</title> 57 58 <link rel="stylesheet" href="css/sanitize.css"> 59 <link rel="stylesheet" href="css/uno.css"> 60</head> 61 62<body> 63 64<?php if( $mode == 'input' ) { ?> 65 66 <!-- // ⇩入力画面 --> 67 <!-- <form action="./contact_form.php" method="post"> --> 68 <div class="wrapper"> 69 70 71 72 <h1>お問合せ</h1> 73 <form action="./contact_form.php" method="post"> 74 75 76 77 <div> 78 <label for="name">お名前</label> 79 80 <input type="text" id="name" name="your_name" style="display: block;" placeholder="例:孫悟空" value="<?php echo $_SESSION['your_name'] ?>"><br> 81 </div> 82 83 84 85 <div> 86 <label for="email" >メールアドレス</label> 87 88 <input type="email" id="email" name="your_email" style="display: block;" placeholder="例:kaiouken@gmail.com" value="<?php echo $_SESSION['your_email' ]?>"><br> 89 </div> 90 91 92 <div> 93 <label for="message">お問い合わせ内容</label> 94 <textarea style="display: block;" name="your_message" id="message" cols="30" rows="10"><?php echo $_SESSION['your_message' ]?></textarea><br> 95 </div> 96 97 <div> 98 <input type="submit" class="btn" name="confirm" value="確認"/> 99 </div> 100 101 102 </div> 103 </form> 104 105 <?php } else if( $mode == 'confirm') { ?> 106 107 <!-- ⇩確認画面 --> 108 <form action="./contact_form.php" method="post"> 109 110 お名前 <?php echo $_SESSION["your_name"] ?><br> 111 112 メールアドレス <?php echo $_SESSION["your_email"] ?><br> 113 114 お問合せ内容<br> 115 <?php echo nl2br($_SESSION["your_message"]) ;?> 116 117 <input type="submit" name="back" value="戻る" /> 118 <input type="submit" name="send" value="送信" /> 119 </form> 120 121 122 123 <?php } else {?> 124 125 <!-- // 完了画面 --> 126 送信しました。お問合せありがとうございました。<br> 127 128 129 <?php } ?> 130 131 132 133 134</body> 135</html> 136
試したこと
$_SESSIONを$_POSTにしたり、$_SESSION = array();
で消されてしまっているのかもと思いこれを消してアップロードしてみましたがダメでした。
PHP学習始めたばかりで2日間調べていますが原因がわかりません。
エラーも出ませんし、ローカル環境ではセッションが効いているのでコードの間違いではなく、サーバー側の問題だと思うのですが、知識不足で手の打ちようがありません。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー