Jump to content
  • 0

Подскажите почему не работает?


Glebr
 Share

Question

Подскажите пожалуйста, что не так? Уже мучился-мучмлся- Не работает зараза!

php код:

<?php
$LastName = $_POST['LastName'];
$FirstName = $_POST['FirstName'];
$Gender = $_POST['Gender'];
$Other = $_POST['Other'];

$formsent = mail('glebresh@yandex.ru',"Request from: $LastName $FirstName\r\nYear: gender: $Gender\r\nBook status: characteristics: $Other", "From: $Email\r\nBounce-to: glebresh@yandex.ru");
if ($formsent) {
echo "yhanks";
} else (
echo "ooops";
)
?>

html код:

<FORM METHOD=post ACTION="titlehelp.php">
<P>First name: <input type="text" size=30 name="FirstName">
<P>Last name: <input type="text" size=30 name="LastName">
<P>Your Email Address: <input type="text" size=30 name="Email">


<ul>
<input TYPE="radio" NAME="Gender" VALUE=1>Мужской<br>
<input TYPE="radio" NAME="Gender" VALUE=2>Женский<br>

</ul>

Ваши предложения:
<br><textarea NAME="Other" ROWS=6 COLS=50></textarea>
<P><input type="submit" name="Submit">

Edited by Glebr
Link to comment
Share on other sites

21 answers to this question

Recommended Posts

  • 0

PHP сам должен был написать, в какой строчке ошибка, так что надо было читать внимательнее. Ну и включить отладку на этапе разработки.

А ещё все параметры тэгов взять в кавычки, а то как будто два разных человека писали, часть в кавычках, часть - нет.

По поводу отсылки: под какой операционкой php крутится? Конфиг внимательно читали вообще?

[mail function]

; For Win32 only.

SMTP = localhost

smtp_port = 25

; For Win32 only.

sendmail_from = admin@saransk.ru

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").

;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters

; to the sendmail binary. These parameters will always replace the value of

; the 5th parameter to mail(), even in safe mode.

;mail.force_extra_parameters =

Это из моего конфига на винде. Edited by Int
Link to comment
Share on other sites

  • 0
PHP сам должен был написать, в какой строчке ошибка, так что надо было читать внимательнее. Ну и включить отладку на этапе разработки.

А ещё все параметры тэгов взять в кавычки, а то как будто два разных человека писали, часть в кавычках, часть - нет.

По поводу отсылки: под какой операционкой php крутится? Конфиг внимательно читали вообще?

Это из моего конфига на винде.

На хостинге!

Link to comment
Share on other sites

  • 0

Пинайте хостера чтобы он настроил php.ini, если, конечно, к нему (файлу) нет доступа.

Каким образом непроверенный код попал на хостинг? Сомневаюсь, что на локалхосте работало else (), а там вдруг перестало.

Edited by Int
Link to comment
Share on other sites

  • 0
у меня на денвере тоже работает, а на хостинге не хочет мля... :lol:

то есть он пишет что отправил, а на почту не приходит.. раньше работало!

седня вечерком попробую покумекать, может и помогу чем :)

Link to comment
Share on other sites

  • 0

Вобщем вот сделал, но там есть свои недочеты, которые думаю ты сам поправишь:

обработчик:

<?php
$date = date("d/m/Y");
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$boy = $_POST['boy'];
$girl = $_POST['girl'];
$email = $_POST['email'];
$message = $_POST['message'];

if (empty($_POST['firstname']) or strlen($firstname) < 5)
{
echo
'<p>Вы не указали имя!</p>';
}
if (empty($_POST['lastname']) or strlen($firstname) < 5)
{
echo
'<p>Вы не указали фамилию!</p>';
}
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
{
echo
'<p>Email не был указан, или указан некорректный email!</p>
<a href="java script:history.back(1)">Вернуться назад</a>';
}
else
{
$text = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>'. $from . '</title>
<style media="screen" type="text/css">
table {
padding:5px;
margin:5px;
border:#E2E2E2 solid 2px;
width:600px;
text-align: center;
}
td {
border:#E2E2E2 solid 1px;
width:100px;
padding:5px;
margin:5px;
text-align: center;
color:#3E73C8;
}
body {
margin: 0;
padding: 6px;
border: 0;
background: #fff;
text-align: center;
}
</style>
</head>
<body>
<table>
<tr>
<td>Имя отправителя:</td>
<td> ' . $firstname = str_replace("\n", "<br />", $firstname) . '</td>
</tr>
<tr>
<td>Фамилия отправителя:</td>
<td> ' . $lastname = str_replace("\n", "<br />", $lastname) . '</td>
</tr>
<tr>
<td>E-mail отправителя:</td>
<td> ' . $email = str_replace("\n", "<br />", $email) . '</td>
</tr>
<tr>
<td>Пол отправителя1:</td>
<td> ' . $boy = str_replace("\n", "<br />", $boy) . '</td>
</tr>
<tr>
<td>Пол отправителя2:</td>
<td> ' . $girl = str_replace("\n", "<br />", $girl) . '</td>
</tr>
<tr>
<td>Пол отправителя:</td>
<td> ' . $message = str_replace("\n", "<br />", $message) . '</td>
</tr>
<tr>
<td>Дата отправки заказа:</td>
<td><div style="line-height: 30px;"> (' . $date . ')</div></td>
</tr>
</table>
</body>
</html>';

$toMail = "test@test.ru";
$subject= "письмо с сайта ".$_SERVER['SERVER_NAME'];
$from="Администратор";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=windows-1251 \r\n";
$headers.= "From: $from<test@".$_SERVER['SERVER_NAME'].">\r\n";
mail ($toMail, $subject, $text, $headers);

echo
'<p>Сообщение успешно отправлено.</p>
<a href="java script:history.back(1)">Вернуться назад</a>';
}
?>

Форма:

<form action="mail.php" method="post">
<p>First name*: <input type="text" size=30 name="firstname"></p>
<p>Last name*: <input type="text" size=30 name="lastname"></p>
<p>Your Email Address*: <input type="text" size=30 name="email"></p>
<div>
<input type="radio" name="boy" value="Мужчина">Мужской<br>
<input type="radio" name="girl" value="2">Женский<br>
</div>
<p>Ваши предложения:</p>
<p><textarea name="message" rows="6" cols="50"></textarea></p>
<p><input type="submit" name="Отправить"></p>

Link to comment
Share on other sites

  • 0

Спасибо огромное!

А у тебя код работал? :lol:

Да, тут на одном серве такая ошибка- Warning: mail() [function.mail]: Safety Restriction in effect. The mail() command is not allowed, contact the admin. in /www/110mb.com/t/r/a/n/c/e/m/i/trancemission/htdocs/mail.php on line 97

Но пишет что отправил!

Edited by Glebr
Link to comment
Share on other sites

  • 0

Раз пишет, значит просто подобная ошибка не обрабатывается. Админы правильно сделали, что закрыли эту функцию. Но если с ними поговорить и доказать необходимость её использования, могут разрешить. Если только хостинг не бесплатный.

Link to comment
Share on other sites

  • 0
Раз пишет, значит просто подобная ошибка не обрабатывается. Админы правильно сделали, что закрыли эту функцию. Но если с ними поговорить и доказать необходимость её использования, могут разрешить. Если только хостинг не бесплатный.

а если бесплатный?

Link to comment
Share on other sites

  • 0
Спасибо огромное!

А у тебя код работал? :lol:

Да, тут на одном серве такая ошибка- Warning: mail() [function.mail]: Safety Restriction in effect. The mail() command is not allowed, contact the admin. in /www/110mb.com/t/r/a/n/c/e/m/i/trancemission/htdocs/mail.php on line 97

Но пишет что отправил!

Код то рабочий - 100%, только вот как и сказал есть маленькие недочеты, но с этим думай сам как справляться. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy