2016-09-22 3 views
1

私は本当にここで苦労しています!私はjqueryプラグインを使用し、PHPをバックアップとして使用する連絡フォームを用意しています。このフォームはカスタマイズされたものではありませんが、今は数日間問題があります。私がMAMPを使用して提出をクリックすると、検証は完全に機能します! phpとjqueryの両方でその後私はGoogleに転送されます(最終的には他のいくつかのウェブサイト)。 私は会社のサイトにTESTフォルダの下にアップロードします。それをテストするために、私は検証とすべてが完璧に動作するようにします。 jqueryでエラーを修正した後に提出すると、それは想定されているようにGoogleにプッシュされます。私はPHPをテストするためにjqueryを取り除くと、検証は、私が同じindex.phpページのすぐそこにとどまる投稿をヒットしたときに機能します!私は非常に多くの異なる連絡先の検証フォームを試して私の髪を引っ張ってきており、これは一番うまくいくようです。私はPHPで問題を起こすのに十分なWebエクスペリエンスを持ったグラフィックデザイナーです:)誰か助けてもらえますか?ここで 私のPHP検証フォームを別のページにリダイレクトする方法

は、ここで私はそれが働いて得るためにPHPをテストするために、今のjqueryのを取り出した

<?php 

session_start(); 
    // define variables and set to empty values 
    $nameErr = $emailErr = $phoneErr = $describeErr = $humanErr = ""; 
    $Name = $Email = $Phone = $Describe = $Human = ""; 

    $hasError = false; 
    $sent = false; 

    if(isset($_POST['submit'])) { 
     $Name   = trim(htmlspecialchars($_POST['Name'], ENT_QUOTES)); 
     $Email   = trim($_POST['Email']); 
     $Describe  = trim(htmlspecialchars($_POST['Describe'], ENT_QUOTES)); 
     $Phone   = trim($_POST['Phone']); 
     $Email   = trim($_POST['Email']); 
     $webdesign  = trim($_POST['webdesign']); 
     $webhosting  = trim($_POST['webhosting']); 
     $wordpressdesign = trim($_POST['wordpressdesign']); 
     $Human   = trim($_POST['Human']); 
     $Number   = 8; 

     $fieldsArray = array(
      'Name' => $Name, 
      'Email' => $Email, 
      'Describe' => $Describe, 
      'Phone' => $Phone, 
      'Human' => $Human 
     ); 

     $errorArray = array(); 

     foreach($fieldsArray as $key => $val) { 
      switch ($key) { 
       case 'Name': 
        if(empty($val)) { 
         $hasError = true; 
         $nameErr = "Please enter your name."; 
        } 
       case 'Name': 
        if (!preg_match("/^[a-zA-Z ]*$/", ($val))) { 
         $hasError = true; 
         $nameErr = "The value must be alphanumeric."; 
        } 
        break; 
       case 'Phone': 
        if (!preg_match("/^[0-9]+$/", ($val))) { 
         $hasError = true; 
         $phoneErr = "Only numbers and white space allowed."; 
        } 
       case 'Phone': 
        if(empty($val)) { 
         $hasError = true; 
         $phoneErr = "Phone is required."; 
        } 
        break; 
       case 'Email': 
        if(!filter_var($Email, FILTER_VALIDATE_EMAIL)) { 
         $hasError = true; 
         $emailErr = "Email is required."; 
        } else { 
         $Email = filter_var($Email, FILTER_SANITIZE_EMAIL); 
        } 
        break; 
       case 'Describe' : 
        if (strlen($val) < 25) { 
         $hasError = true; 
         $describeErr = "Please enter at least 25 characters. This way I know more specifically what you need!"; 
        } 
       case 'Describe' : 
        if(empty($val)) { 
         $hasError = true; 
         $describeErr = "Message is required. This way I know what you need!"; 
        } 
        break; 
       case 'Human': 
        if (!preg_match("/[^\d]?8[^\d]?/", ($val))) { 
         $hasError = true; 
         $humanErr = "Not the right answer"; 
        } 
       case 'Human': 
        if (!preg_match("/^[0-9]+$/", ($val))) { 
         $hasError = true; 
         $humanErr = "Must be a number"; 
        } 
       case 'Human': 
        if(empty($val)) { 
         $hasError = true; 
         $humanErr = "Are you human?"; 
        } 
        break; 
      } 
     } 

     //CHECK BOX WRITE UP 
     if (isset($_POST['webdesign'])) { 
      $checkBoxValue = "yes"; 
      //is checked 
     } else { 
      $checkBoxValue = "no"; 
      //is unchecked 
     } 

     if (isset($_POST['webhosting'])) { 
     $checkBoxValue = "yes"; 
      //is checked 
     } else { 
      $checkBoxValue = "no"; 
      //is unchecked 
     } 

     if (isset($_POST['wordpressdesign'])) { 
     $checkBoxValue = "yes"; 
      //is checked 
     } else { 
      $checkBoxValue = "no"; 
      //is unchecked 
     } 

     //Validation Success! 
     //Do form processing like email, database etc here 
     if($hasError !== true) { 
      $priority = $_POST['priority']; 
      $type = $_POST['type']; 
      $message = $_POST['message']; 
      $formcontent=" From: $Name \n Company: $Company \n Email: $Email \n Phone: $Phone \n Describe: $Describe \n Web Design: $webdesign \n Web Hosting: $webhosting \n Wordpress Design: $wordpressdesign "; 
      $recipient = "[email protected]"; 
      $subject = "Contact form test with Jquery and PHP"; 
      $mailheader = "From: $Email \r\n"; 
      mail($recipient, $subject, $formcontent, $mailheader); 
      header("Location:http://www.google.com"); 
      exit();  
     } 
    } 

?><!--END PHP--> 

私testval.phpがある私のindex.php

<?php include('header_contact.php') ?> 


<?php include('testval.php');?> 




<div id="section1"> 

CONTACT FORM 

<div id="contact-form"> 




<!--<form id="contactform" name="contactform" action="<!--?php echo $_SERVER['PHP_SELF']; ?>" method="post" >--> 
<form id="contactform" name="contactform" action="index.php" method="post" > 



    <!--?php 
    if($sent === true) { 
     echo "<h2 class='success'>Thanks, your message has been sent successfully</h2>"; 
    } elseif($hasError === true) { 
     echo '<ul class="errorlist">'; 
     foreach($errorArray as $key => $val) { 
      echo "<li>" . ucfirst($key) . " field error - $val</li>"; 
     } 
     echo '</ul>'; 
    } 
    ?> 
    --> 

    <input name="Name" type="text" id="Name" placeholder="NAME" value="<?php echo (isset($Name) ? $Name : ""); ?>"><span class='text_error'><?php echo $nameErr;?></span> 

    <input name="Company" type="text" id="Company" placeholder="COMPANY" value=''> 

    <input name="Phone" type="tel" id="Phone" placeholder="PHONE" value='<?php echo htmlentities($Phone);?>'> 
    <span class='text_error'><?php echo $phoneErr;?></span> 

    <input name="Email" type="Email" placeholder="EMAIL" value="<?php echo (isset($Email) ? $Email : ""); ?>"> 
    <span class='text_error'><?php echo $emailErr;?></span> 

    <input name="webdesign" type="checkbox" value="Yes" /><label>Web Design: </label><br /> 

    <input name="webhosting" type="checkbox" value="Yes" /><label>Web Hosting: </label><br /> 

    <input name="wordpressdesign" type="checkbox" value="Wordpress Design" /><labeel>Wordpress Design: </labeel><br /> 

    <textarea id="Describe" class="mess" name="Describe" type="text" placeholder="DESCRIBE WHAT YOU NEED"><?php echo isset($_POST['Describe'])? $_POST['Describe'] : ''; ?></textarea> 
    <span class='text_error'><?php echo $describeErr;?></span> 

    <!--?php if(in_array('Describe', $validation)): ?><span class="error"><!--?php echo $error_messages['Describe']; ?></span><!--?php endif; ?> 
    <span class='text_error'> 
    --> 

    <input class="input-upload" type="file" name="Upload File"> 

    <input name="Human" placeholder="5 + 3 = ?" value="<?php echo isset($_POST['Human'])? 
    $_POST['Human'] : ''; ?>"> 
    <span class='text_error'><?php echo $humanErr;?></span> 

    <!-- 
    <!--?php if(in_array('Human', $validation)): ?><span class="error"><--?php echo $error_messages['Human']; ?></span><--?php endif; ?> 
    --> 

    <input id="submit" name="submit" type="submit" value="submit"> 




</form> 






</div><!--END CONTACT FORM--> 

</div><!--END SECTION1-->  







<?php include('footer.php') ?> 

ですが、それはあるとき、 index.phpページでは、それはすぐ下にあります

ここにそのコードです。

<script type="text/javascript"> 
jQuery(document).ready(function($) { 
    $("#contactform").validate({ 
     rules: { 
      Name: { 
       required: true, 
       minlength: 4 
      }, 
      Email: { 
       required: true, 
       email: true 
      }, 
      Describe: { 
       required: true, 
       minlength: 25 
      }, 
      Phone: { 
       required: true, 
       number: true, 
       minlength: 7, 
       maxlength: 15 
      }, 
      Human: { 
       required: true, 
       number: true, 
       maxlength: 1, 
       range: [8,8] 
      } 
     }, 
     messages: { 
      Name: { 
       required: "Please enter your name", 
       minlength: "Your name seems a bit short doesn't it?" 
      }, 
      Email: { 
       required: "We need your email address to contact you", 
       email: "Please enter a valid email address" 
      }, 
      Describe: { 
       required: "Please enter your message", 
       minlength: "Please enter at least 25 characters. This way I know more specifically what you need!" 
      }, 
      Phone: { 
       required: "Please enter your phone number", 
       number: "Phone has to be numbers", 
       minlength: "Your phone number should be longer", 
       maxlength: "Number must be less!" 
      }, 
      Human: { 
       required: "Are you human?", 
       number: "has to be a number", 
       maxlength: "That's to long!", 
       range: "Please enter the correct number" 
      } 
     }, 
     errorElement: "div", //TAKE CONTROL OF ERROR MESSAGE IN CSS 

     //IF I CHOOSE TO ADD CSS AND WRAP ERROR WITH BOX 

     wrapper: "div", //WRAPPER AROUND THE ERROR MESSAGE 
     errorPlacement: function(error, element) { 
      error.insertAfter(element); 
      error.addClass('message'); //ADD A CLASS TO THE WRAPPER 
      /* 
      error.css('position', 'absolute'); 
      error.css('left', offset.left + element.outerWidth()); 
      error.css('top', offset.top); 
      */ 
    } 
    }); 
}); 
</script> 

ご協力いただきありがとうございます。

+0

テスト基本。あなたはメールを受け取りますか?リダイレクトを 'if(isset($ _ POST ['submit']))'と一緒に最初の位置に置き、リダイレクトが動作しているかどうか確認してください。 – Daniel

+0

はい、それをリダイレクトします。最後にそれを戻すと、コンテンツがページをまったくリダイレ​​クトしないというメールが私に送られます。 –

+0

ブラウザに送信されるエラーによってリダイレクトが中断されたようです。あなたのPHPスクリプトの冒頭にエラー報告を設定してください。 'error_reporting(-1);'そしてphpが何かをブラウザに吐き出しているかどうか確認してください。 – Daniel

答えて

0

あなたheader_contact.phpでHTMLを解析しているように見えます。リダイレクトの前にHTMLコンテンツを解析することはできません。付属のphpファイルを切り替えてみてください。

<?php include('testval.php');?> 

<?php include('header_contact.php') ?> 
+0

他のどこにもセッションがありません。あなたが上記の6行目の代わりに同じエラーを送信したときに、その行目を表示します。 session_start()を1つ下に移動させるために –

+0

これを引き起こしている 'header_contact.php'のなかで何かが起こります。投稿できますか? – Daniel

+0

ちょうどそれを掲示しました... タグが30行目の最後にあるように見えます。私は37に下がります。空白です –

-2

はこのようなものにあなたのtest.phpの一番最後に、あなたのheaderビットを変更しよう:

header("Refresh:0; url=index.php"); 
+0

それを試してみました...それは私に同じ問題を与える –

0
<!DOCTYPE HTML> 
<html> 


<head> 
    <meta charset="UTF-8 BOM"> 

      <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
      <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 

    <title>Contact Form TEST</title> 


    <link rel="stylesheet" type="text/css" href="./css/style.css"> 
    <script type="text/javascript" src="./js/contact.js"></script> 
    <script type="text/javascript" src="./js/validation.js"></script> 
    <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script> 
    <script type="text/javascript" src="./js/jquery.validate.min.js"></script> 

    <!--MOO Script--> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script> 





</head> 


<body> 
関連する問題