[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: кому не трудно-помогите
graverman
Здравствуйте.
Только начинаю, испытываю сложности с усвоением синтаксиса ....

Сделал форму для отправки со страницы сообщения

PHP
<form action="mail.phpmethod="post" name="mail" id="mail">
  <
table width="550" border="0" cellspacing="0" cellpadding="0">
    <
tr>
      <
td width="167" height="56" class="email_form"><p>Имя: </p></td
      <
td width="383"
      <
input type="text" name="name" size="40" />      </td>
    </
tr>
    <
tr>
      <
td width="167" height="59" align="left" class="email_form"><p>Ваш Email : </p></td
      <
td width="383"
      <
input name="email" type="text" size="40" maxlength="25" /></td>
    </
tr>
    <
tr>
      <
td width="167" height="62" align="left" class="email_form"><p>Тема: </p></td
      <
td width="383"
      <
input name="subject" type="text" size="40" maxlength="60" />      </td>
    </
tr>
    <
tr>
      <
td width="167" align="left" class="email_form"><p>Ваше сообщение: </p></td>
      <
td width="383"
      <
textarea name="message" cols="50" rows="5"></textarea>      </td>
    </
tr>
    <
tr>
      <
td width="167" class="email_form"></td>
      <
td>
        <
p>&nbsp;          </p>
        <
p>
          <
input type="submit" name="submit" value="отправить" />      
        </
p></td>
    </
tr>
  </
table>
    </
form>



и соответственно файл mail.php (в котором накосячил со всем чем только можно)

PHP
<?
$to "support@tune-pc.ru";

if (
$subject == "")

 print (
"<script language=JavaScript>window.alert('Введите тему !');</script>");
 
if (
$message == ""

print (
"<script language=JavaScript>window.alert('Введите текст сообщения!');</script>") ;

if (
$email == ""

print (
"<script language=JavaScript>window.alert('Введите e-mail!');</script>") ;


$extra "From: $email\r\nReply-To: $email\r\n";
$mess "сообщение от : ".$name."(".$REMOTE_ADDR.")\n\n".$message;

$send=mail ($to$subject$mess$extra);

if(
$send == 1)
 print (
"<script language=JavaScript>window.alert('Отправлено $date');</script>");
header("location:contacts.php?ok=send");
if (
$send == 0)
  print (
"<script language=JavaScript>window.alert('Ошибка');</script>");
header("location:contacts.php?error=notsend");


mail.php отсылает на почту сообщения практически всегда (даже когда незаполненны поля)
не работает проверка .. после отсылки (не отсылки) я пытаюсь вернуться на страницу с формой включив на ней условую область (письмо отправлено или не отправленно)

пожалуйста проверьте код! если можно прокомментируйте







Спустя 1 час, 3 минуты, 45 секунд (28.02.2009 - 12:38) twin написал(а):
По такой схеме функция mail() отработает в любом случае. Нужно тогда хотя бы останавливать скрипт. А вообще все очень плохо, проверки толком нет, форма вернется пустая, вернее совсем не вернется. Нужно делать это в одном файле и включать отправку только когда проверки пройдены. Иначе возвращать заполненную форму. Вот тут почитай для начала.

Спустя 1 час, 56 минут, 46 секунд (28.02.2009 - 14:35) graverman написал(а):
будем пытаться...

Спустя 3 часа, 49 минут, 44 секунды (28.02.2009 - 18:25) graverman написал(а):
Спасибо за ссылку! очень помогла. написал на её основе скрипт отправки с проверками заполненности полей в один файл.

Доволен, черт побери! biggrin.gif

получилось так ...

<?php
/* проверка переменных*/
$name = isset($_POST['name'])?$_POST['name']:null;
$email = isset($_POST['email'])?$_POST['email']:null;
$subject = isset($_POST['subject'])?$_POST['subject']:null;
$message = isset($_POST['message'])?$_POST['message']:null;


?>
<form action="?" method="post" name="mail" id="mail">
<table width="550" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="167" height="56" class="email_form"><p>Имя: </p></td>
<td width="383">
<input type="text" name="name" size="40" value="<?php echo htmlspecialchars($name) ?>" /> </td>
</tr>
<tr>
<td width="167" height="59" align="left" class="email_form"><p>Ваш Email : </p></td>
<td width="383">
<input name="email" type="text" size="40" maxlength="25" value="<?php echo htmlspecialchars($email) ?>" /></td>
</tr>
<tr>
<td width="167" height="62" align="left" class="email_form"><p>Тема: </p></td>
<td width="383">
<input name="subject" type="text" size="40" maxlength="60" value="<?php echo htmlspecialchars($subject) ?>"/> </td>
</tr>
<tr>
<td width="167" align="left" class="email_form"><p>Ваше сообщение: </p></td>
<td width="383">
<textarea name="message" cols="50" rows="5" value="<?php echo htmlspecialchars($message) ?>"></textarea> </td>
</tr>
<tr>
<td width="167" class="email_form"></td>
<td>
<p>

<?

$extra = "From: $email\r\nReply-To: $email\r\n";
$mess = "сообщение от : ".$name."(".$REMOTE_ADDR.")\n\n".$message;
$to = "test@tune-pc.ru";

/*нажата ли кнопка. условие проверки заполнения всех полей.вывод соотв. сообщений.
Отправка письма*/

if (isset($_POST['submit']))
{
if((empty($_POST['name']))||(empty($_POST['email']))|| (empty($_POST['subject']))||(empty($_POST['message'])))
print "<p>заполните все поля!</p>" ;
elseif (($_POST['name']) || ($_POST['email']) || ($_POST['subject']) || ($_POST['message']) )
{
print "<p> Сообщение отправленно. Спасибо!</p>";
mail ($to, $subject, $mess, $extra);
}

?>

больших ошибок надеюсь нет.

Спустя 15 минут, 33 секунды (28.02.2009 - 18:40) twin написал(а):
Если почитаешь дальше, вот тут к примеру, найдешь, как проверить на правильность ввода E-mail.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.