0
我正在「即將推出」的網站上工作,當用戶選擇「與我們聯繫」時,會彈出一個JavaScript模式並附帶電子郵件表單。我使用了與沒有模式的頁面相同的代碼,它在那裏工作,所以我不確定爲什麼這次電子郵件沒有被髮送。與從模態中發送它有什麼關係?PHP不會從模式發送表單
我做模態的方式是,它位於頁面底部,visibility: hidden; opacity: 0;
,直到用戶點擊'聯繫我們',模態將得到一個與visibility: visible; opacity: 1;
相關的類。我想有可能有更好的方法來做到這一點,但我正在學習,這是我現在可以做的。
HTML:
<form class="form" role="form" method="post" action="#contact">
<div class="form__text">
<p>Our <strong>new</strong> website will launch in <strong>Spring 2017</strong>.</p>
<p>In the meantime, contact us for more information.</p>
</div>
<div class="form__inputs">
<div class="form__name">
<label for="name" class="name">Name</label><br>
<input type="text" class="form-control" id="name" name="name" value="" required="">
</div>
<div class="form__email">
<label for="email" class="email">Email</label><br>
<input type="email" class="form-control" id="email" name="email" value="" required="">
</div>
<div class="form__message">
<label for="message" class="message">Message</label><br>
<textarea class="form-control" rows="4" name="message" required=""></textarea>
</div>
<div class="form__submit">
<button id="submit" name="submit" type="submit">Submit</button>
</div>
</div>
</form>
這是PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: xxx';
$to = '[email protected]';
$subject = 'Hello';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<h4 >Thank you for your message!</h4>';
} else {
echo '<h4>Sorry there was an error sending your message. Please try again!</h4>';
}
}
?>
的PHP是相同的文件(的index.php)作爲HTML中,在底部(只是JS腳本前)和標籤。我得到的錯誤是:
無法發佈/
請您指教,爲什麼它沒有被髮送?我不太瞭解PHP,我試圖瞭解發生了什麼,但不是很成功。
在FORM標籤中刪除'action =「#contact」'部分並重試? – Cagy79
另外,你正在檢查'if($ _POST ['submit'])'但你的提交沒有'value'屬性,所以'$ _POST ['submit']'即使在你發送表單時也是一個空字符串。更好地檢查'if(!empty($ _ POST))' –
use <?php echo $ _SERVER ['PHP_SELF']; ?>而不是'#contact'在表單動作 – Gopalakrishnan