2016-11-23 4 views
0

私はtextboxselect optionおよびtextareaの値を、reCAPTCHAボックスをクリックせずに送信フォームに保存しています。 textboxselect optiontextareaのようにしておきます。テキストエリアに改行があると、テキストエリアにテキストは表示されません。改行でセッションに保存されたテキストエリアにテキストを戻す方法。

PHP

<?php 
session_start(); 
if(isset($_POST['submit'])){ 
    if(isset($_POST['g-recaptcha-response'])){ 
     //your site secret key 
     $secret = 'site secret key'; 
     //get verify response data 
     $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']); 
     $responseData = json_decode($verifyResponse); 
     //contact form submission code    
     $name  = $_POST['username']; 
     $replyto = $_POST['emailadd']; 
     $subject = $_POST['selectOption']; 
     $message = nl2br($_POST['message']); 

     $_SESSION['username'] = $name;    
     $_SESSION['replyto'] = $replyto;    
     $_SESSION['subject'] = $subject; 
     $_SESSION['message'] = $message; 

     if($responseData->success){ 
      $email  = "[email protected]"; 
      $to   = "[email protected]"; 
      $headers = 'From:'.$name.' <'.$email.'>'."\r\n".'Reply-To:'.$replyto. "\r\n".'X-Mailer: PHP/' . phpversion(); 
      mail($to,$subject,$message,$headers); 
      $succMsg = 'Your contact request have submitted successfully.'; 
      session_destroy(); 
      echo "<script type='text/javascript'>alert('$succMsg'); window.location = '/'; </script>";  
     } 
     else{ 
      $flag = 1; 
      echo "<script type='text/javascript'>window.location = '#contactus';</script>"; 
     } 
    } 
    else{ 
     $flag = 1; 
     echo "<script type='text/javascript'>window.location = '#contactDiv';</script>"; 
    } 
}?> 
< script type = "text/javascript" > 
    $(document).ready(function() { 
    $("#errorcaptcha").hide(); 
    var flag = '<?php echo $flag; ?>'; 
    var usernmae = "<?php if(isset($_SESSION['username'])){echo $_SESSION['username'];} ?>";//working fine 
    var email = "<?php if(isset($_SESSION['replyto'])){echo $_SESSION['replyto'];} ?>";//working fine 
    var subject = "<?php if(isset($_SESSION['subject'])){echo $_SESSION['subject'];} ?>";//working fine 
    var message = "<?php if(isset($_SESSION['message'])){echo $_SESSION['message'];} ?>"; //error here, works when without line breaks text 

    if (flag == 1) { 
     $("#errorcaptcha").show(); 
     $('#username').val(usernmae); 
     $('#emailadd').val(email); 
     $('#selectOption').val(subject); 
     $('#message').val(message); 
    } 
    }); < /script> 
<!DOCTYPE html> 
    <html lang="en"> 
    <body id="page-top"> 
    <form id="contactfrom" method="post"> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <input class="form-control" name="username" id="username" maxlength="40" required="required" type="text" placeholder="Your name" value="" />   </div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <input class="form-control" id="emailadd" name="emailadd" required="required" type="email" maxlength="50" placeholder="Your email" /> 
     </div> 
     </div> 
     <label for="username" class="uname" data-icon="u">Inquiry about</label> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <select name="selectOption" id="selectOption" class="form-control"> 
      <option value="1" selected="">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      </select> 
     </div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <textarea maxlength="500" id="message" name="message" placeholder="Massage" class="form-control" rows="5" required="required"></textarea> 
     </div> 
     </div> 
     <div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <label id="errorcaptcha" for="">Please click on the reCAPTCHA box.</label> 
     </div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-12" id="recaptcha"> 
      <div class="g-recaptcha" data-theme="dark" data-sitekey="sitekey"></div> 
     </div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-12"> 
      <button type="submit" name="submit" class="btn btn-default">Submit</button> 
     </div> 
     </div> 
    </form> 
    </body> 

答えて

1

セッションに保管して、あなたのオリジナル$_POST['message']

0123で

$message = nl2br($_POST['message']); 

を交換してください

$message = $_POST['message']; 

はその後nl2brと電子メールのフォーマット後:

mail($to,$subject,nl2br($message),$headers); 
+0

ここにメール機能は改行で動作しています。しかし、私がtextareaにメッセージを入れると(captchaが失敗すると)それは現れません。 –

0

最後に私は自分の道を見つけました。 textareaに値がありません。便利なlinkここに

<textarea maxlength="500" id="message" type="text" name="message" placeholder="Massage" class="form-control" rows="5" required="required"><?php echo isset($_POST['message']) ? htmlspecialchars($_POST['message']):'' ?></textarea> 
関連する問題