ФорумПрограммированиеPHP для идиотов → html-форма обратной связи + исполняющий php-скрипт

html-форма обратной связи + исполняющий php-скрипт

  • Alex

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz Апрель 10, 2009, 12:06 п.п.

    Ребята, помогите. Я вообще в php баран, пытаюсь что-то сделать, кое-что получается, а что-то не соображаю… Вобщем, вопрос такой: есть html форма обратной связи и исполняющий php скрипт. Он работает нормально. Только не знаю, где и что в нём нужно написать, чтобы после уведомления "Ваше сообщение успешно отправлено" браузер через несколько секунд переходил по указанному URL? Ну или наоборот, если сообщение не заполнено должным образом, чтобы после уведомления об ошибке ("Не заполнено поле имени", "…мейла"…) браузер возвращался к страничке с формой?
    Вот собственно php-скрипт:

    <?php
    function show_form()
    {
    ?>

    <?
    }

    function complete_mail() {

    $_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
    $_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
    $_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
    $_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
    $_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
    // если не заполнено поле "Имя" - показываем ошибку 0
    if (empty($_POST['name']))
    output_err(0);
    // если неправильно заполнено поле email - показываем ошибку 1
    if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
    output_err(1);
    // если не заполнено поле "Сообщение" - показываем ошибку 2
    if(empty($_POST['mess']))
    output_err(2);
    // создаем наше сообщение
    $mess = '
    Имя отправителя:'.$_POST['name'].'
    Контактный телефон:'.$_POST['tel'].'
    Контактный e-mail:'.$_POST['email'].'
    '.$_POST['mess'];
    // $to - кому отправляем
    $to = '[email protected]';
    mail($to, $_POST['title'], $mess);
    echo 'Thank you! Your message is successfully sent!';
    }

    function output_err($num)
    {
    $err[0] = 'ERROR! The name is not entered.';
    $err[1] = 'ERROR! E-mail is unright entered.';
    $err[2] = 'ERROR! A message is not entered.';
    echo '<p>'.$err[$num].'</p>';
    show_form();
    exit();
    }

    if (!empty($_POST['submit'])) complete_mail();
    else show_form();
    ?>

    Вот собственно такой вопросик. Если кто может, подскажите, плиз.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Апрель 10, 2009, 12:17 п.п., спустя 10 минут 25 секунд

    бля, ели нашел
    все умрут, а я изумруд
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Апрель 10, 2009, 12:17 п.п., спустя 16 секунд

    http://pyha.ru/forum/topic/1312.0
    все умрут, а я изумруд
  • Alex

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz Апрель 10, 2009, 12:49 п.п., спустя 31 минуту 56 секунд

    Спасибки. Тока я ж говорил, шо баран в php. Прошу прощения за наглость, а популярней нельзя объяснить? На моём скрипте куда и чего нада дописать, шоб после отправки сообщения переходило на заданный адрес… Ну, типа этого:


    echo "<html><head>
    <META HTTP-EQUIV='Refresh' CONTENT='2; URL=http://www.site.com/index.html'>
    </head>
    <p>Ваше сообщение отправлено";
    }
    else
    {
    echo "<html><head>
    <META HTTP-EQUIV='Refresh' CONTENT='2; URL=http://www.site.com/mail.html'>
    </head>
    <p>Сообщение не отправлено. Заполните все поля.";
    }
    ?>


    Вот такую фигню я пробовал вставить вот сюда:

    echo 'Thank you! Your message is successfully sent!';
    }

    и сюда:

    function output_err($num)
    {
    $err[0] = 'ERROR! The name is not entered.';
    $err[1] = 'ERROR! E-mail is unright entered.';
    $err[2] = 'ERROR! A message is not entered.';

    но нифига не вышло….
  • Magnum79

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июнь 17, 2009, 3:18 п.п., спустя 68 дней 2 часа 29 минут

    Рефреш - это иногда неплохо, но когда в форме не 2 поля, а 20 и юзер старательно их заполнял, капая слюной в поисках мыслей для комментов, вылил туда весь свой творческий потенциал, а потом как последний придурок ошибся в капче, или еще где, и ему после этого показать ШИШ и знакомую страницу с 20-ю идеально чистыми полями….
    Щас я использую <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'> но это некрасиво, лишнюю страницу с оформлением писать надо…
    Оправдано ли тут проверять интерактивно с пом. JsHTTPRequest ? И если да, то как это ПРАВИЛЬНО замутить - есть ли где у вас статейка ?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июнь 17, 2009, 3:25 п.п., спустя 7 минут 6 секунд

    Magnum79, я думаю тогда уж ты можешь и $_POST запоминать, а потом и в value вставлять и не будет пустых полей
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz Июнь 17, 2009, 4:23 п.п., спустя 57 минут 42 секунды

    adw0rd, я так всегда делаю )
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июнь 17, 2009, 4:26 п.п., спустя 2 минуты 35 секунд

    Mr.Pihto, ну это как вариант :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Magnum79

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июнь 17, 2009, 9:22 п.п., спустя 4 часа 56 минут 20 секунд

    Так в том-то и смысл - не хочу лишнюю страницу, да еще и оформление для неё придумывать…я тут недавно этот реквест осваивал, всётки на нем попробую…
  • Magnum79

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июнь 17, 2009, 9:29 п.п., спустя 7 минут 29 секунд

    Кстати, есть вопрос (давно мучает) не знаю в какой топик его постить…
    Есть в таблице хрень, разбитая на 5 категорий. Нужно вывести 5 столбцов с заголовками - соответственно.
    Как это делают профи :) ? Серьезно…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июнь 17, 2009, 9:48 п.п., спустя 18 минут 42 секунды


    Кстати, есть вопрос (давно мучает) не знаю в какой топик его постить…
    Есть в таблице хрень, разбитая на 5 категорий. Нужно вывести 5 столбцов с заголовками - соответственно.
    Как это делают профи :) ? Серьезно…
    покажи структуру и данные
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июнь 17, 2009, 9:48 п.п., спустя 25 секунд


    Так в том-то и смысл - не хочу лишнюю страницу, да еще и оформление для неё придумывать…я тут недавно этот реквест осваивал, всётки на нем попробую…
    тогда пробуй JQuery, не теряй время
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Magnum79

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июнь 17, 2009, 11:39 п.п., спустя 1 час 50 минут 31 секунду

    По таблице - всё просто…
    Есть таблица "сотрудники", в ней категории - это отделы.
    1- бухгалтерия, 2- технари и т.д. Таких 5 (на самом деле больше, но пусть например 5).
    Нужно вывести из таблицы сотрудников колонками. Каждая колонка - это отдел.
    Вот как бы ты это сделал ? На пхп…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Июнь 17, 2009, 11:50 п.п., спустя 10 минут 46 секунд

    Magnum79, покажи мне дамп! А не описывай абстрактно, такое описание сложно поддается восприятию
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Magnum79

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июнь 18, 2009, 12:02 д.п., спустя 11 минут 46 секунд

    CREATE TABLE `sotr` (
    `id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
    `cat` TINYINT( 1 ) DEFAULT '0' NOT NULL ,
    `name` VARCHAR( 100 ) NOT NULL ,
    PRIMARY KEY ( `id` )
    );

Пожалуйста, авторизуйтесь, чтобы написать комментарий!