<? print" <FORM method=\"POST\" action=\"send.php?trofimov=send\"> <P>Ф.И.О.:<br> <INPUT type=\"text\" name=\"Name\" size=30> </p> <P>Ваш e-mail:<br> <INPUT type=\"text\" name=\"Email\" size=30> </p> <P>Ваш телефон:<br> <INPUT type=\"text\" name=\"Phone\" size=30> </p> <P>Сообщение:<br> <textarea name=\"Message\" cols=30 rows=5></textarea> </p> <INPUT type=\"submit\" value=\"Отправить\"> </FORM>"; switch($trofimov) : default : print "<table width= cellpadding=0 cellspacing=0 border=0 align=center>"; break; case("send") : if ($Name == "") {print "<script language=JavaScript>window.alert('Введите имя!');</script>"; exit;} if (($Email == "") and ($Phone == "")) {print "<script language=JavaScript>window.alert('Введите e-mail или телефон!');</script>"; exit;} if ($Message == "") {print "<script language=JavaScript>window.alert('Введите текст!');</script>"; exit;} if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $Email) and $Email != "") {print "<script language=JavaScript>window.alert('Не правельный E-mail');</script>"; exit;} $er = 1; $ip = $REMOTE_ADDR; $date = date("d.m.Y"); $info = "Ф.И.О.:\t$Name\n"; $info .= "<br>E-Mail:\t$Email\n"; $info .= "<br>Телефон:\t$Phone\n"; $info .= "<br>Сообщение:\t$Message\n\n"; $send_to = "fcloko@mail.ru"; $subject = "Заказ $date"; $headers = "Content-Type: text/html; charset=\"windows-1251\" \r\n"; $headers .= "From: Ip адрес: $ip: \n"; $headers .= "Reply-To: $email\n\n"; $send = mail($send_to, $subject, $info, $headers); if($send == 1) { mail($send_to, $subject, $info, $headers); print ("<script language=JavaScript>window.alert('Отправлено $date');</script>"); } else print ("<script language=JavaScript>window.alert('Ошибка');</script>"); break; endswitch; ?> есть такой скрипт обратной связи. не пойму почему не работает. мне нужно что бы было четыре поля, имя и сообщение обязательно и хотя бы мали или телефон. как енто сделать!?
PHP: $trofimov = $_GET["trofimov"]; $Name = $_POST["Name"]; $Email = $_POST["Email"]; $Phone = $_POST["Phone"]; $Message = $_POST["Message"]; Это перед switch($trofimov) :
default ставится в конце конструкции switch. Иначе всегда будет отрабатывать ветка default, а до остальных не дойдет
это вы ломаете голову, а мы тут так, посмеяться если просто послать с помощью mail(), то письмо доходит?
может есть у кого форма. что бы было обязательным имя и сообщение. а из контактов либо телефон либо мыло, но можно вместе. но чтобы одно из этого точно было...
Здесь лучше выйти из php. Быстрее по работе и удобнее по виду. Все html-теги пишутся малыми буквами, а параметры заключаются в кавычки. size="30". http://ru2.php.net/manual/en/reserved.variables.php Здесь, ИМХО, следует выходить из строки. Потому как php после каждой буквы сверяет имя переменной с переменными, объявленными ранее. То есть: $info = "Ф.И.О.:\t".$Name."\n"; А еще вернее - $info = "Ф.И.О.:\t".$_POST["Name"]."\n"; И все-таки, включи просмотр всех сообщений. Если не отсылается, значит должна отобразиться ошибка. P.S. Помогают и так тебе сейчас - посмотри сколько народу выше ответило. А вот ты под помощью на самом деле просишь сделать за тебя, чего никто делать не будет.
Kreker нет бы взять, да помочь )) index.php PHP: <?php error_reporting(E_ALL); session_start(); if(!isset($_SESSION['lastSend'])) $_SESSION['lastSend'] = 0; if(!isset($_SESSION['sent'])) $_SESSION['sent'] = 0; else if($_SESSION['sent']){ ?> сообщние послано. Следующее сообщение можно будет послать через две минуты. <? $_SESSION['sent'] = 0; } if(isset($_SESSION['error'])){ ?> Ошибка!<br /> <? foreach($_SESSION['error'] as $key => $val) echo $val.'<br />'; unset($_SESSION['error']); } ?> <form name="fast_contact" action="send.php?cmd=check" method="POST"> Name:<br /> <input name="fc_name" value="<?=@$_SESSION['message']['name']?>" /><br /> E-mail:<br /> <input name="fc_mail" value="<?=@$_SESSION['message']['mail']?>" /><br /> Phone:<br /> <input name="fc_phone" value="<?=@$_SESSION['message']['phone']?>" /><br /> Message:<br /> <textarea name="fc_message"><?=@$_SESSION['message']['message']?></textarea><br /> <input type="submit" name="Send" value="Send" /> </form> send.php PHP: <?php session_start(); $cmd = isset($_GET['cmd'])?trim($_GET['cmd']):'check'; if (get_magic_quotes_gpc()) { foreach ($_POST as $var=>$val) $_POST[$var]=stripslashes($val); } if($cmd == 'check'){ if(time() - $_SESSION['lastSend'] < 120) $_SESSION['error'][] = 'Часто посылать сообщения низя'; if(count($_POST)){ if(!isset($_POST['fc_name']) || !isset($_POST['fc_phone']) || !isset($_POST['fc_mail']) || !isset($_POST['fc_message']) || !isset($_POST['Send'])){ header('Refresh: 3; url=index.php'); die('Чё за фигня?'); } if(empty($_POST['fc_name'])) $_SESSION['error'][] = 'Введите имя'; if(empty($_POST['fc_phone'])) $_SESSION['error'][] = 'Введите телефон'; if(empty($_POST['fc_mail'])) $_SESSION['error'][] = 'Введите e-mail'; if(empty($_POST['fc_message'])) $_SESSION['error'][] = 'Введите сообщение'; $_SESSION['message']['name'] = $_POST['fc_name']; $_SESSION['message']['phone'] = $_POST['fc_phone']; $_SESSION['message']['mail'] = $_POST['fc_mail']; $_SESSION['message']['message'] = $_POST['fc_message']; if(!isset($_SESSION['error'])){ header('Location: send.php?cmd=send'); die; } else{ foreach ($_SESSION['message'] as $var=>$val) $_SESSION['message'][$var]=htmlspecialchars($val); header('Location: index.php'); die; } } } else if(($cmd == 'send') && isset($_SESSION['message'])){ $to = [email='nobody@example.com]'nobody@example.com[/email]'; $subject = 'the subject'; $message = $_SESSION['message']['message']."\r\n".$_SESSION['message']['name'].' '.$_SESSION['message']['phone'].' '.$_SESSION['message']['mail']; $headers = 'From: '.$_SESSION['message']['mail']."\r\n". 'Reply-To: '.$_SESSION['message']['mail']. "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(!@mail($to, $subject, $message, $headers)) $_SESSION['error'][] = 'упс… не послалось'; else $_SESSION['sent'] = 1; $_SESSION['lastSend'] = time(); unset($_SESSION['message']); header('Location: index.php'); die; } else{ header('Location: index.php'); die; } ?> P.S. вот вставляю, а сам думаю: «а нафига? всё равно же разбираться не будет…»