За последние 24 часа нас посетили 17557 программистов и 1627 роботов. Сейчас ищут 2023 программиста ...

Обратная связь

Тема в разделе "Вопросы от блондинок", создана пользователем Ky6, 14 ноя 2007.

  1. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    <?
    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;
    ?>

    есть такой скрипт обратной связи. не пойму почему не работает. мне нужно что бы было четыре поля, имя и сообщение обязательно и хотя бы мали или телефон. как енто сделать!?
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  3. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Что то не понял...может переместить в впросы от блондинок и там решить :)
     
  4. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    PHP:
    1.  
    2. $trofimov = $_GET["trofimov"];
    3. $Name = $_POST["Name"];
    4. $Email =  $_POST["Email"];
    5. $Phone =  $_POST["Phone"];
    6. $Message = $_POST["Message"];
    7.  
    Это перед switch($trofimov) :
     
  5. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Без изменений, на почту так же ничего не приходит....
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    $Email и $email — разные переменные
     
  7. Mavir

    Mavir Guest

    default ставится в конце конструкции switch. Иначе всегда будет отрабатывать ветка default, а до остальных не дойдет
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    На практике default пофиг где ставить, главное break не забыть.
     
  9. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    ломаем голову дальше. не работает все еще. на почту так же ничего не приходит...
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    это вы ломаете голову, а мы тут так, посмеяться :)

    если просто послать с помощью mail(), то письмо доходит?
     
  11. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    с помощью mail() доходит. вот блин я за помощью а вы посмеяться....:)
     
  12. Mavir

    Mavir Guest

  13. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    + error_reporting(E_ALL);
     
  14. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    может есть у кого форма. что бы было обязательным имя и сообщение. а из контактов либо телефон либо мыло, но можно вместе. но чтобы одно из этого точно было...
     
  15. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    не поможет никто значит :(
     
  16. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Здесь лучше выйти из 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. Помогают и так тебе сейчас - посмотри сколько народу выше ответило. А вот ты под помощью на самом деле просишь сделать за тебя, чего никто делать не будет.
     
  17. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Kreker
    нет бы взять, да помочь ))
    index.php
    PHP:
    1. <?php
    2. if(!isset($_SESSION['lastSend']))
    3.     $_SESSION['lastSend'] = 0;
    4. if(!isset($_SESSION['sent']))
    5.     $_SESSION['sent'] = 0;
    6. else if($_SESSION['sent']){
    7. ?>
    8. сообщние послано. Следующее сообщение можно будет послать через две минуты.
    9. <?
    10. $_SESSION['sent'] = 0;
    11. }
    12.  
    13.  
    14. if(isset($_SESSION['error'])){
    15. ?>
    16. Ошибка!<br />
    17. <?
    18.     foreach($_SESSION['error'] as $key => $val)
    19.         echo $val.'<br />';
    20.     unset($_SESSION['error']);
    21. }
    22. ?>
    23. <form name="fast_contact" action="send.php?cmd=check" method="POST">
    24. Name:<br />
    25. <input name="fc_name" value="<?=@$_SESSION['message']['name']?>" /><br />
    26. E-mail:<br />
    27. <input name="fc_mail" value="<?=@$_SESSION['message']['mail']?>" /><br />
    28. Phone:<br />
    29. <input name="fc_phone" value="<?=@$_SESSION['message']['phone']?>" /><br />
    30. Message:<br />
    31. <textarea name="fc_message"><?=@$_SESSION['message']['message']?></textarea><br />
    32. <input type="submit" name="Send" value="Send" />
    33. </form>
    send.php
    PHP:
    1. <?php
    2. $cmd = isset($_GET['cmd'])?trim($_GET['cmd']):'check';
    3.  
    4.     foreach ($_POST as $var=>$val)
    5.         $_POST[$var]=stripslashes($val);
    6. }
    7.  
    8. if($cmd == 'check'){
    9.     if(time() - $_SESSION['lastSend'] < 120)
    10.         $_SESSION['error'][] = 'Часто посылать сообщения низя';
    11.  
    12.     if(count($_POST)){
    13.         if(!isset($_POST['fc_name']) || !isset($_POST['fc_phone']) || !isset($_POST['fc_mail']) || !isset($_POST['fc_message']) || !isset($_POST['Send'])){
    14.             header('Refresh: 3; url=index.php');
    15.             die('Чё за фигня?');
    16.         }
    17.  
    18.     if(empty($_POST['fc_name'])) $_SESSION['error'][] = 'Введите имя';
    19.     if(empty($_POST['fc_phone'])) $_SESSION['error'][] = 'Введите телефон';
    20.     if(empty($_POST['fc_mail'])) $_SESSION['error'][] = 'Введите e-mail';
    21.     if(empty($_POST['fc_message'])) $_SESSION['error'][] = 'Введите сообщение';
    22.  
    23.     $_SESSION['message']['name'] = $_POST['fc_name'];
    24.     $_SESSION['message']['phone'] = $_POST['fc_phone'];
    25.     $_SESSION['message']['mail'] = $_POST['fc_mail'];
    26.     $_SESSION['message']['message'] = $_POST['fc_message'];
    27.  
    28.         if(!isset($_SESSION['error'])){
    29.             header('Location: send.php?cmd=send');
    30.             die;
    31.         }
    32.         else{
    33.         foreach ($_SESSION['message'] as $var=>$val)
    34.                 $_SESSION['message'][$var]=htmlspecialchars($val);
    35.  
    36.             header('Location: index.php');
    37.             die;
    38.         }
    39.  
    40.   }
    41. }
    42. else if(($cmd == 'send') && isset($_SESSION['message'])){
    43.     $to      = [email='nobody@example.com]'nobody@example.com[/email]';
    44.    $subject = 'the subject';
    45.    $message = $_SESSION['message']['message']."\r\n".$_SESSION['message']['name'].'  '.$_SESSION['message']['phone'].' '.$_SESSION['message']['mail'];
    46.    $headers = 'From: '.$_SESSION['message']['mail']."\r\n".
    47.        'Reply-To: '.$_SESSION['message']['mail']. "\r\n" .
    48.        'X-Mailer: PHP/' . phpversion();
    49.  
    50.    if(!@mail($to, $subject, $message, $headers))
    51.        $_SESSION['error'][] = 'упс… не послалось';
    52.    else
    53.        $_SESSION['sent'] = 1;
    54.  
    55.    $_SESSION['lastSend'] = time();
    56.    unset($_SESSION['message']);
    57.  
    58.    header('Location: index.php');
    59.    die;
    60. } else{
    61.        header('Location: index.php');
    62.        die;
    63. }    
    64. ?>
    P.S. вот вставляю, а сам думаю: «а нафига? всё равно же разбираться не будет…»
     
  18. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    ну и зря так думаешь.....
     
  19. Ky6

    Ky6 Активный пользователь

    С нами с:
    14 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    а где здесь mail()!? которая посылает. или я того совсем....вобще и это не работает...
     
  20. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    52 строчка
    вы того совсем... ))
     
  21. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Ky6
    не работает как именно? Что при этом выдаёт?