Простая форма отправки PHP не работает
просто делает простую форму отправки и, похоже, не может заставить ее работать.
Он даже не будет сообщать об ошибках, что странно.
проверил php.и все это тоже кажется прекрасным.
HTML-код:
<form id="submit-form" action="receiving.php" method="POST">
<h3>Submit a Link</h3>
<fieldset>
<table>
<tr>
<td><label for="name">You</label></td>
<td><input id="name" name="name" type="text" placeholder="Your Twitter or Blog ect." /></td>
</tr>
<tr>
<td><label for="submit-links">Link(s)</label></td>
<td><input id="sumbit-links" name="submit-links" type="text" placeholder="" required="" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="SUBMIT" /></td>
</tr>
</table>
</fieldset>
</form>
прием.на PHP:
<?php
error_reporting(-1);
$name = $_POST['name'];
$submit-links = $_POST['submit-links'];
if(isset($_POST['submit'])){
$from_add = "submit@webdesignrepo.com";
$to_add = "ben@webdesignrepo.com";
$subject = "Your Subject Name";
$message = "Name:$name n Sites: $submit-links";
$headers = 'From: submit@webdesignrepo.com' . "rn" .
'Reply-To: ben@webdesignrepo.com' . "rn" .
'X-Mailer: PHP/' . phpversion()
if(mail($to_add,$subject,$message,$headers)){
$msg = "Mail sent";
}
}
print "<p>Thanks $name</p>";
?>
любая помощь была бы очень признательна :)
3 ответов
С твоей формой было что-то не так, что я проверен перед публикацией этого ответа.
As Jeremy Miller
указал в своем ответе (+1
Jeremy btw), использование дефисов в переменной недопустимо, вместо этого используйте подчеркивания.
у вас также отсутствует закрывающая двоеточие после 'X-Mailer: PHP/' . phpversion()
кстати, вы не должны использовать (в целях безопасности), но... если вы абсолютно хотите использовать его, добавьте его следующим образом 'X-Mailer: PHP/' . phpversion();
- Консалт редактировать (суггестивное использование) ниже.
этой $msg = "Mail sent";
не будет печатать сообщение"Mail sent
" после успешной отправки, так как вы только присваиваете переменную тексту; вам нужно echo it
который я добавил ниже; это не ошибка, но зачем ее иметь, если вы не собираетесь ее использовать. (подмигивание.)
HTML-форму
<form id="submit-form" action="receiving.php" method="POST">
<h3>Submit a Link</h3>
<fieldset>
<table>
<tr>
<td><label for="name">You</label></td>
<td><input id="name" name="name" type="text" placeholder="Your Twitter or Blog ect." /></td>
</tr>
<tr>
<td><label for="submit_links">Link(s)</label></td>
<td><input id="sumbit_links" name="submit_links" type="text" placeholder="" required="" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="SUBMIT" /></td>
</tr>
</table>
</fieldset>
</form>
PHP
<?php
error_reporting(-1);
$name = $_POST['name'];
$submit_links = $_POST['submit_links'];
if(isset($_POST['submit']))
{
$from_add = "submit@webdesignrepo.com";
$to_add = "ben@webdesignrepo.com";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit_links";
$headers = 'From: submit@webdesignrepo.com' . "\r\n" .
'Reply-To: ben@webdesignrepo.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to_add,$subject,$message,$headers))
{
$msg = "Mail sent";
echo $msg;
}
}
print "<p>Thanks $name</p>" ;
?>
EDIT (суггестивное использование)
я предлагаю вам используйте следующий PHP, так как ваши настоящие условные операторы выдадут следующие ошибки, если файл PHP доступен напрямую, что может произойти.
плюс, используя 'X-Mailer: PHP/' . phpversion()
позволяет людям знать, какую версию PHP вы используете.
у меня есть хороший авторитет, что использование этого-дыра безопасности. Его имя ускользает от меня прямо сейчас, но я добавлю его, как только вспомню.
краткое описание: имя... на линии 4
удачи в submit_links... в строке 5
я установил ваши переменные внутри вашего if(isset($_POST['submit']))
условный оператор.
<?php
error_reporting(-1);
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$submit_links = $_POST['submit_links'];
$from_add = "submit@webdesignrepo.com";
$to_add = "ben@webdesignrepo.com";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit_links";
$headers = 'From: submit@webdesignrepo.com' . "\r\n" .
'Reply-To: ben@webdesignrepo.com' . "\r\n";
if(mail($to_add,$subject,$message,$headers))
{
$msg = "Mail sent";
echo $msg;
}
print "<p>Thanks $name</p>" ;
}
// else conditional statement for if(isset($_POST['submit']))
else {
echo "Sorry, you cannot do that from here. Please fill in the form first.";
}
?>
действие может быть неправильным.
Например, если ваш htaccess
перенаправляет на https.www
вместо http
, вы не увидите $_POST
в следующем примере :
<?php $formAction = 'http://somedomain.com/receiving.php'; ?>
<form method="post" action="<?php echo $formAction; ?>" >
//$_POST will be empty
но это будет работать, если вы используете
<?php $formAction = 'https://www.somedomain.com/receiving.php'; ?>
<form method="post" action="<?php echo $formAction; ?>" >
//$_POST will contain variables