联系表格不起作用

时间:2014-01-02 02:19:54

标签: php html forms email

我不能让这个联系表格工作,不确定它是什么,非常感谢你的帮助。这是代码:

<?php
//Process Contact
if (isset ($_POST['send'])) {
//Variables
$name=$_POST['name'];
$email=$_POST['email'];
$message=$_POST['message'];

//Check all the inputs
if ($name!='' && $email!='' && $message!='') {
// then Html
$contenido = '<html><body>';
$contenido .= '<h2>Contact from</h2>';
$contenido .= '<p>Sent: '.  date("D M Y").'</p>';
$contenido .= '<p>Name: <strong>'.$name.'</strong>';
$contenido .= '<p>Email: <strong>'.$email.'</strong>';
$contenido .= '<p>Message: <strong>'.$message.'</strong>';
$contenido .= '<hr />';
$contenido .= '</body></html>';

// If the forms are full, it shows the message
mail ("mj@marijoing.com", "Mother-Well", $contenido, "From: $email\nContent-Type:text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit"); 
$flag='MessageSuccess';
$mensaje='<div class="MessageSuccess">Your message has been sent, we will contact you shortly .<br/><strong>Thank you!</strong> </div>';

} else {
//If there's a from to fill...  
$flag='err';
$mensaje='<div class="MessageError">All the information in the entry form are required.     Please, try again</div>';
}
}
?>

And the HTML:

<? echo $mensaje; /*Status form */ ?>
<? if ($flag!='MessageSuccess') { ?>
<form action="contact.php" method="post"> 
<input <? if (isset ($flag) && $_POST['name']=='') { echo 'class="MessageError"';}?> type="text" value="<? echo $_POST['name'];?>" maxlength="40" /><br />
<input <? if (isset ($flag) && $_POST['email']=='') { echo 'class="MessageError"';} ?>     type="text" value="<? echo $_POST['email'];?>" maxlength="40" /><br />               
<textarea <? if (isset ($flag) && $_POST['message']=='') { echo 'class="MessageError"';}     ?> name="message" rows="4"><? echo $_POST['message'];?></textarea><br />
<input type="submit" value="CONTACT US" name="send" />
</form>

<? } ?>

Hope somebody can help me, thanks in advance :)

1 个答案:

答案 0 :(得分:0)

这绝不是唯一可能的错误,但你做了

<? if ($flag!='MessageSuccess') { ?>
<form action="contact.php" method="post"> 
<input <? if (isset ($flag) 

换句话说,你假设外部循环中存在$flag变量,然后测试它在内循环中的存在。这毫无意义。

此外我建议使用

<?php

而不是

<?

始终。不确定这是否有所作为,但它肯定更传统。有关短标签的说明以及何时可以使用(您是否在构建中启用了它们),请参阅https://softwareengineering.stackexchange.com/a/151694