2013-02-26 45 views
0

這是我的工作代碼,沒有最新的Boynux uggestions。現在,我會嘗試將兩者結合起來,也許會在發生錯誤時獲取紅色的div框。感謝大家的幫助,我想現在我非常接近我正在考慮的結果。PHP doesnt show DIV/Contactform

PHP

<section id="main-content"> 

<div class="text-intro"><h2>KONTAKT</h2></div> 

<?php 
if(isset($_POST['sendMessage'])) { 
$to = "[email protected]"; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$from = 'E-mail: '.$email."\n"; 
$from = 'Message: '.$message; 
$body_message = "Question"; 

echo "<div id=\"submitmessage\">Thank you.</div>"; 
mail($to, $body, $from); 
} else { 
echo "Please check you data."; 
} 
?> 

<div class="columns features"> 
<br /> 
<form action="contact.php" method="post" id="contact-form" class="contact-form"> 
<textarea id='message' maxlength='10000' name='message' placeholder='Hello...'> 
</textarea> 
<div class='crayonico'></div> 
<input class='text-input' id='senderEmail' maxlength='50' name='email' 
placeholder='E-Mail' type='email'> 
<div class='emailico'></div> 
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' 
value='SEND'> 
</form> 
<br /><br /><br /><br /><br /> 
</div> 

HTML

<section id="home-head" class="contact">  
<h1></h1> 
</section> 

<section id="main-content"> 

<div class="text-intro"><h2>CONTACT</h2></div> 

<div class="columns features"> 
<br /> 
<form action="contact.php" method="post" id="contact-form" class="contact-form"> 
<textarea id='message' maxlength='10000' name='message' placeholder='HEllo...'> 
</textarea> 
<div class='crayonico'></div> 
<input class='text-input' id='senderEmail' maxlength='50' name='email' 
placeholder='E-Mail' type='email'> 
<div class='emailico'></div> 
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' 
value='SEND'> 
</form> 
<br /><br /><br /><br /><br /> 
</div> 

</section> 

回答

0

PHP不像ASP.NET或呈三角幀,其中模板工程和代碼是分開的。如果你不考慮其他框架像Symfony的或CakePHP的你需要打印完整的HTML輸出中,以瀏覽器:

<?php 
$field_email = $_POST['email']; 
$field_message = $_POST['message']; 
$mail_to = '[email protected] '; 
$subject = 'Message from a site visitor '.$field_name; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 
$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 
$mail_status = mail($mail_to, $subject, $body_message, $headers); 
?> 
<html> 
    <head> 
     <title>Email result</title> 
    </head> 
    <body> 
     <div> 
<?php 
    if ($mail_status){ 
     echo "Thanks for your mail..."; 
    }else{ 
     echo "Please correct your data."; 
    } 
?> 
     </div> 
    </body> 

而對於表單驗證,你可以使用javasctipt:

<div id="main-content"> 
    <div class="text-intro"><h2>CONTACT</h2></div> 
    <div id="thanks"></div> 
    <div class="columns features"> 
    <br /> 
    <form action="contact.php" method="post" id="contact-form" class="contact-form" onsubmit="return validate()> 
     <textarea id='message' maxlength='10000' name='message' placeholder='Hello...'> </textarea> 
     <div class='crayonico'></div> 
     <input class='text-input' id='senderEmail' maxlength='50' name='email' placeholder='E-Mail' type='email'> 
     <div class='emailico'></div> 
     <input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' value='SEND'"> 
    </form> 
    <br /><br /><br /><br /><br /> 
</div> 
<script language="javascript"> 
function validate() 
{ 
    // for example I check sender email 
    if (document.getElementById ('senderEmail').value.length > 0) 
     return true; 
    else 
     alert ("Sender address required"); 
     return false; 
} 
</script> 

但是請記住,使用javascript進行驗證是不夠的,因爲用戶可以簡單地繞過這個檢查操作系統,因此考慮再次檢查PHP代碼中的所有內容

OK,這裏是一個完整的樣品,但請注意,這不是寫得很好,完整的代碼這僅僅是開始時的樣本:

<html> 
    <head> 
     <title>Email result</title> 
    </head> 
    <body> 
<?php 

// function to compose email 
function sendMail ($sender, $message) { 
    $mail_to = '[email protected] '; 
    $subject = 'Message from a site visitor '.$field_name; 
    $body_message .= 'E-mail: '.$field_email."\n"; 
    $body_message .= 'Message: '.$field_message; 
    $headers = 'From: '.$field_email."\r\n"; 
    $headers .= 'Reply-To: '.$field_email."\r\n"; 
    return mail($mail_to, $subject, $body_message, $headers); 
} 

// check if form submited? 
if (isset ($_POST['sendMessage'])) { 
    $email = trim ($_POST['email']); 
    $message = trim ($_POST['message']); 

    if ($email == null || strlen ($email) == 0) { 
     $alert = "Sender address required."; 
    } else if ($message == null || strlen ($message) == 0) { 
     $alert = "Empty messages is not allowed."; 
    } else if (sendMail ($email, $message)) { 
     $alert = "Thanks for your mail..."; 
    } else { 
      $alert = "Please correct your data."; 
    } 
} 
?> 
<?php if (isset ($alert)): ?> 
     <div style='color: red; font-weight: bold;'><?php echo $alert ?></div> 
<?php endif; ?> 
     <div id="main-content"> 
      <div class="text-intro"><h2>CONTACT</h2></div> 
      <div id="thanks"></div> 
      <div class="columns features"> 
      <br /> 
      <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="contact-form" class="contact-form" onsubmit="return validate()"> 
       <textarea id='message' maxlength='10000' name='message' placeholder='Hello...'></textarea> 
       <div class='crayonico'></div> 
       <input class='text-input' id='senderEmail' maxlength='50' name='email' placeholder='E-Mail' type='email'> 
       <div class='emailico'></div> 
       <input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' value='SEND'> 
      </form> 
      <br /><br /><br /><br /><br /> 
     </div> 
     <script language="javascript"> 
     function validate() 
     { 
      // for example I check sender email 
      if (document.getElementById ('senderEmail').value.length > 0) 
       return true; 
      else 
       alert ("Sender address required"); 
       return false; 
     } 
     </script> 
    </body> 
</html> 
+0

爲了讓JavaScript更容易,您還可以使用jQuery或類似的庫。 – Boynux 2013-02-26 11:55:27

+0

不幸的是,它不工作,我想如果有不多於一封信到電子郵件字段,Java的反應...是不是? – 2013-02-26 13:27:05

+0

哪部分不工作? JavaScript的?其實我沒有測試代碼,只是在飛行中寫下來。我會檢查它併發布更新。 – Boynux 2013-02-26 13:31:32

0
<section id="main-content"> 
<div class="text-intro"><h2>CONTACT</h2></div> 
<div id="thanks"></div> 
<div class="columns features"> 
<br /> 
<form action="contact.php" method="post" id="contact-form" class="contact-form"> 
<textarea id='message' maxlength='10000' name='message' placeholder='Hello...'>  </textarea> 
<div class='crayonico'></div> 
<input class='text-input' id='senderEmail' maxlength='50' name='email' placeholder='E- Mail' type='email'> 
<div class='emailico'></div> 
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' value='SEND'> 
</form> 
<br /><br /><br /><br /><br /> 
</div> 

<script> 

if($("#senderEmail").val()==''){ 
    // alert the message 
    return false; 
} 

</script> 
+0

這僅僅是爲了驗證.... – 2013-02-26 11:41:32

+0

也感謝您的幫助。 – 2013-02-26 13:16:06

0

進行驗證,你可以使用jQuery像

$("#sendMessage").click(function(e){ 
    e.preventDefault(); 
    if($("#senderEmail").val()=="") { 
    alert('Email Blank'); 
    return false; 
    } else { 
    return true; 
    } 
    }); 

消息被使用PHP

在一個div顯示10
if ($mail_status){ 
$message = "Thanks for your mail..."; 
}else{ 
$message = "Please correct your data."; 
} 

現在你可以echo出任何DIV的$message你想

<div class="message_area"><?php echo $message;?></div> 

UPDATE

<section id="main-content"> 

<div class="text-intro"><h2>KONTAKT</h2></div> 

<?php 
if(isset($_POST['sendMessage'])) { 
$to = "[email protected]"; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$from = 'E-mail: '.$email."\n"; 
$from = 'Message: '.$message; 
$body_message = "Question"; 

echo "<div id=\"submitmessage\">Thank you.</div>"; 
mail($to, $body, $from); 
} else { 
$message = "Please check you data."; 
} 
?> 

<div class="columns features"> 
<br /> 
<form action="contact.php" method="post" id="contact-form" class="contact-form"> 
<textarea id='message' maxlength='10000' name='message' placeholder='Hello...'> 
</textarea> 
<div class='crayonico'></div> 
<input class='text-input' id='senderEmail' maxlength='50' name='email' 
placeholder='E-Mail' type='email'> 
<div class='emailico'></div> 
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' 
value='SEND'> 
</form> 
<div class="message_div"> 
    <?php 
     if(isset($_POST['sendMessage'])) { 
      if(isset($message)) { 
       echo $message; 
      } 
     } 
    ?> 
</div> 
<br /><br /><br /><br /><br /> 
</div> 
+0

非常感謝。這是回聲是否正確? <?php echo「

」; ?> – 2013-02-26 12:28:16

+0

是的。這是正確的;但你可以簡單地在html中創建div,並將'$ message'放在該div中。查看更新的答案 – Roger 2013-02-26 12:30:14

+0

感謝您的回覆,但是如果我按發送按鈕,我會得到一個空白頁。但是我知道回顯會顯示在實際頁面的div中,而不是一個新的頁面? – 2013-02-26 13:15:16