Проблема с формой обратной связи.

Тема в разделе "PHP программирование", создана пользователем passwd, 7 июн 2010.

  1. passwd

    passwd Гость

    Прошу прощения за столь нелепый вопрос, но проблема вот в чем...
    Имеется такой код обратной связи:

    Код (PHP):
    $myemail="wwwmail@gmx.com"; // Ваш электронный адрес
    $refreshpage="index-3.php"; // Страница, куда возвращается человек после отправки сообщения
    $antispam="0"; // 1/0 - вкл/выкл АНТИСПАМ
    $maxkey=3; // Колличество символов в коде ЦИФРОЗАЩИТЫ (от 1 до 9)
    $maxname="30";  // Максимальное кол-во символов в имени
    $maxtema="50"; // максимум символов в теме
    $maxmsg="2000"; // Максимальное количество символов в сообщении

    // Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
    // Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
    $bdcolor="#79BBEF"; $fcolor="#00293E"; // Светлоголубой
    //$bdcolor="#FF9A00"; $fcolor="#833C07";  // Оранжевый
    //$bdcolor="#FFE51A"; $fcolor="#FF8000";  // Жёлто-оранжевый
    //$bdcolor="#00E900"; $fcolor="#005300";  // Светло-зеленый
    //$bdcolor="#FB5037"; $fcolor="#620000";  // Красный
    //$bdcolor="#800080"; $fcolor="#350035";  // Сиреневенький
    //$bdcolor="#007800"; $fcolor="#000000";  // Темно зеленый
    //$bdcolor="#D2A500"; $fcolor="#4A3406";  // Золотой
    //$bdcolor="#BCC0C0"; $fcolor="#646464";  // Серый
    //$bdcolor="#FFA8FF"; $fcolor="#800080";  // Розовый

    $date=date("d.m.y"); // число.месяц.год
    $time=date("H:i"); // часы:минуты:секунды

    // ТАБЛИЦА стилей зарыта ЗДЕСЬ !!!
    $shapka="<html>
    <head>
    <META http-equiv=Content-Type content='text/html; charset=windows-1251'>
    <style>
    BODY,TD {FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;}
    .pismo {BORDER-BOTTOM:$bdcolor 1px solid;}
    .pismo2 {BORDER-LEFT:$bdcolor 1px solid; BORDER-BOTTOM:$bdcolor 1px solid;}
    .remtop {font-weight: bold; color: $fcolor; font-size:1.1em; padding:5px; border-top: 1px solid $fcolor; border-bottom: 1px solid $fcolor; background-color: $bdcolor;}
    .remdata {font-weight: bold; margin:0; display:inline; font-size:0.9em; color: $fcolor;}
    input,textarea {font-family: Verdana; font-size: 12px; text-decoration: none; color: #000000; cursor: default; background-color: #FFFFFF; border-style: solid; border-width: 1px; border-color: $bdcolor;}
    </style>
    </head>
    <BODY leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginheight=0 marginwidth=0>"
    ;

    $back="<center>return <a href='java script:history.back(1)'><B>back</B></a>"; // Удобная строка

    function replacer ($text) { // ФУНКЦИЯ очистки кода
    $text=str_replace(" ",' ',$text);
    $text=str_replace(">",'&gt;',$text);
    $text=str_replace("<",'&lt;',$text);
    $text=str_replace("\"",'&quot;',$text);
    $text=preg_replace("/\n\n/",'<p>',$text);
    $text=preg_replace("/\n/",'<br>',$text);
    $text=preg_replace("/\\\$/",'$',$text);
    $text=preg_replace("/\r/",'',$text);
    $text=preg_replace("/\\\/",'\',$text);
    $text=str_replace("\r\n","<br> ",$text);
    $text=str_replace("\n\n",'
    <p>',$text);
    $text=str_replace("\n",'
    <br> ',$text);
    $text=str_replace("\t",'
    ',$text);
    $text=str_replace("\r",'
    ',$text);
    $text=str_replace('
     ',' ',$text);
    do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
    do {$text=str_replace("  "," ",$text);} while (preg_match("/  /i",$text));
    $text=str_replace("\t",'
    ',$text);
    $text=str_replace("\r",'
    ',$text);
    $text=str_replace('
     ',' ',$text);
    $text=rtrim($text);
    return $text; }


    // Для цифрозащиты антиспам:
    $absrand="82321";// Случайное число. Используется для цифрозащиты.
    if (isset($_GET['
    image'])) { // Функция с цифрами защиты
    $st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
    function imgwr($st,$num){
    if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
    if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
    if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
    if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
    if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
    if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
    if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
    if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
    if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
    if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
    header("Content-type: image/gif");
    header("Content-length: $len");
    echo base64_decode($number); }
    // Âûâîä èçîáðàæåíèé íà ýêðàí (âñå êîäèðîâàíû - ðîáîò íå ïðîéä¸ò)
    if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
    for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
    exit;}

    // Вывод изображений на экран (все кодированы - робот не пройдёт)
    if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
    for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
    exit;}

    //******************* Ниже лучше ничего не трогать ************************//

    // Событие ОТПРАВКИ СООБЩЕНИЯ администратору
    if (isset($_GET['
    event'])) {

    //sleep(1); // мелкая защита от БОТОВ
    if ($antispam==TRUE) {
    $bada="$shapka $back <font color=red>You are enter incorrect Security code</font>!";
    if (isset($_POST['
    usernum'])) {$usernum=$_POST['usernum'];} else {exit("$bada");}
    if (isset($_POST['
    xkey'])) {$xkey=$_POST['xkey'];} else {exit("$bada");}
    $userkey=md5("$usernum+$absrand");
    if ($userkey!=$xkey) {exit("$bada");}}

    // обрабатываем REPLACER'
    ом все данные
    if (!isset($_POST['name'])) {exit("$shapka $back You have not entered name!");} else {$name=replacer($_POST['name']);}
    if (!isset($_POST['email'])) {exit("$shapka $back You have not entered the mail!");} else {$email=replacer($_POST['email']);}
    if (!isset($_POST['tema'])) {exit("$shapka $back You have not entered the icq!");} else {$tema=replacer($_POST['tema']);}
    if (!isset($_POST['msg'])) {exit("$shapka $back You have not entered What I want!");} else {$msg=replacer($_POST['msg']);}

    // Если тема обязательна, разкоментируйте строчку ниже
    if ($tema=="" || strlen($tema)>$maxtema) {exit("$shapka $back You have not entered the icq!</B></center>");}

    if ($name=="" || strlen($name)>$maxname) {exit("$shapka $back You have not entered or have entered is too long name!</B></center>");}
    if ($msg=="" || strlen($msg)>$maxmsg) {exit("$shapka $back Your What I want is empty or more than $maxmsg characters..</B></center>");}
    if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {exit("$shapka $back and enter correct E-mail adress!</B></center>");}

    $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

    // Настройки для отправки писем
    $headers=null;
    $headers.="Content-Type: text/html; charset=windows-1251\r\n";
    $headers.="From: ".$name." <".$email.">\r\n";
    $headers.="X-Mailer: PHP/".phpversion()."\r\n";

    // Собираем всю информацию в теле письма
    $allmsg="$shapka
    <center>
    <table cellpadding=5 cellspacing=0>
    <TR><TD colspan=2><div class=remtop align=center>Message from site \"<a href='$smailurl'>$smailurl</a>\"</div></TD></TR>
    <TR><TD class=pismo><P class=remdata>Name</P></TD><TD class=pismo2><B>$name<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>E-mail</P></TD><TD class=pismo2><a href='mailto:$email'>$email</a></td></tr>
    <TR><TD class=pismo><P class=remdata>icq</P></TD><TD class=pismo2><B>$tema<B></td></tr>
    <TR><TD class=pismo><P class=remdata>Date of sending:</P></TD><TD class=pismo2>$date ã. â $time</td></tr>
    <TR><TD class=pismo><P class=remdata>What I want</P></TD><TD class=pismo2>$msg</td></tr>
    </table>"
    ;

    $printmsg="$allmsg
    <center><BR>Your message <B><font color=navy>successfully sent</font></B><BR><BR>
    <a href='$refreshpage'>Âåðíóòüñÿ <B>back</B></a>

    </body></html>"
    ;
    $allmsg.="<BR><BR><BR>* From site! Yahoo! You will have money =).</body></html>";

    // Отправляем письмо майлеру на съедение;-)
    mail("$myemail", "Yahoo! You will have money from $name", $allmsg, $headers);

    // Пишем пользователю "Спасибо" и обновляем страницу через JavaScript
    print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>$printmsg"; exit;


    } else {  // Типо главной страницы



    print "$shapka
    <center>
    <form action=order.php?event=add method=post name=REPLIER><table>
    <TR><TD colspan=2><div class=remtop align=center>123123</div></TD></TR>
    <TR><TD><P class=remdata>Name</P></TD><TD><input type=text value='Bill Gates' maxlength=$maxname name=name size=57></TD></TR>
    <TR><TD><P class=remdata>E-mail</P></TD><TD><input type=text value='your@mail.com' maxlength=$maxname name=email size=57></td></tr>
    <TR><TD><P class=remdata>icq:(or other messenger)</P></TD><TD><input type=text value='icq:123456789; skype:your-skype; etc... or (only mail)' maxlength=$maxtema name=tema size=57></td></tr>
    <TR><TD><P class=remdata>What I want</P></TD><TD>
    <textarea cols=57 rows=10 size=250 name=msg></textarea>"
    ;

    if ($antispam==TRUE) { // если АНТИСПАМ АКТИВИРОВАН
    if (array_key_exists("image", $_REQUEST)) { $num=replacer($_REQUEST["image"]);
    for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
    $xkey=""; mt_srand(time()+(double)microtime()*1000000);
    print"<TR><TD><P class=remdata>Security code</P></TD><TD>";
    for ($i=0; $i<$maxkey; $i++) {
    $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
    $phpself=$_SERVER["PHP_SELF"];
    echo "<img src=$ self?image=$psnum border='0' alt=''>\n";
    $xkey=$xkey.$snum[$i]; }
    $xkey=md5("$xkey+$absrand");
    print"<input name='usernum' type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'> <P class=remdata><small>(enter the number, on picture)</small></P></TD></TR>";
    }

    print"<TR><TD colspan=2 align=center><br><input type=submit value='Send'></td></tr></table></form>";
    }

    ?>

    <BR><center><small>We will answer you within a day</a><br></small></body></html>
    Так вот... в этом виде скрипт работает отлично, НО как только я пытаюсь добавить новую строчку в форму, заполненная в той строчке информация автоматически становиться темой письма, а в самом письме в этой строчке пусто, хоть она и заполнялась.

    К примеру: " Я добавил поле под названием (Телефон), вписываю номер телефона, отсылаю, и когда на меил приходит письмо от этой формы- поле (телефон) пустое, а сам номер вписан в теме сообщения."

    Как я добавлял новое поле: "Просто добавил такие строчки здесь..."
    Код (PHP):
    // обрабатываем REPLACER'ом все данные
    if (!isset($_POST['name'])) {exit("$shapka $back You have not entered name!");} else {$name=replacer($_POST['name']);}
    if (!isset($_POST['phone'])) {exit("$shapka $back You have not entered Telephone!");} else {$name=replacer($_POST['phone']);}
    if (!isset($_POST['email'])) {exit("$shapka $back You have not entered the mail!");} else {$email=replacer($_POST['email']);}
    if (!isset($_POST['tema'])) {exit("$shapka $back You have not entered the icq!");} else {$tema=replacer($_POST['tema']);}
    if (!isset($_POST['msg'])) {exit("$shapka $back You have not entered What I want!");} else {$msg=replacer($_POST['msg']);}
    здесь...

    Код (PHP):
    // Собираем всю информацию в теле письма
    $allmsg="$shapka
    <center>
    <table cellpadding=5 cellspacing=0>
    <TR><TD colspan=2><div class=remtop align=center>Message from site \"<a href='$smailurl'>$smailurl</a>\"</div></TD></TR>
    <TR><TD class=pismo><P class=remdata>Name</P></TD><TD class=pismo2><B>$name<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>Telephone</P></TD><TD class=pismo2><B>$phone<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>E-mail</P></TD><TD class=pismo2><a href='mailto:$email'>$email</a></td></tr>
    <TR><TD class=pismo><P class=remdata>icq</P></TD><TD class=pismo2><B>$tema<B></td></tr>
    <TR><TD class=pismo><P class=remdata>Date of sending:</P></TD><TD class=pismo2>$date ã. â $time</td></tr>
    <TR><TD class=pismo><P class=remdata>What I want</P></TD><TD class=pismo2>$msg</td></tr>
    </table>"
    ;
    и здесь...

    Код (PHP):
    print "$shapka
    <center>
    <form action=order.php?event=add method=post name=REPLIER><table>
    <TR><TD colspan=2><div class=remtop align=center>Booking Request:</div></TD></TR>
    <TR><TD><P class=remdata>Name</P></TD><TD><input type=text value='Bill Gates' maxlength=$maxname name=name size=57></TD></TR>
    <TR><TD><P class=remdata>Telephone</P></TD><TD><input type=text value='8033322211' maxlength=$maxname name=phone size=57></TD></TR>
    <TR><TD><P class=remdata>E-mail</P></TD><TD><input type=text value='your@mail.com' maxlength=$maxname name=email size=57></td></tr>
    <TR><TD><P class=remdata>icq:(or other messenger)</P></TD><TD><input type=text value='icq:123456789; skype:your-skype; etc... or (only mail)' maxlength=$maxtema name=tema size=57></td></tr>
    <TR><TD><P class=remdata>What I want</P></TD><TD>
    <textarea cols=57 rows=10 size=250 name=msg></textarea>"
    ;
    Подскажите пожалуйста, как добавить в эту форму несколько новых строчек. Спасибо! =)
     
  2. passwd

    passwd Гость

    В смысле??
    Та тут ничего сложного нет. Я уверен! Просто, что-то никак не дойдет до меня... ;)
     
  3. passwd

    passwd Гость

    Та ладно)) Тем более там разными цветами выделяет ;)
     
  4. passwd

    passwd Гость

    Итак...
    Имеется форма.
    Код (PHP):
    print "$shapka
    <center>
    <form action=order.php?event=add method=post name=REPLIER><table>
    <TR><TD colspan=2><div class=remtop align=center>Booking Request:</div></TD></TR>
    <TR><TD><P class=remdata>Name</P></TD><TD><input type=text value='Bill Gates' maxlength=$maxname name=name size=57></TD></TR>
    <TR><TD><P class=remdata>E-mail</P></TD><TD><input type=text value='your@mail.com' maxlength=$maxname name=email size=57></td></tr>
    <TR><TD><P class=remdata>Booking Date:</P></TD><TD><input type=text maxlength=$maxtema name=tema size=57></td></tr>
    <TR><TD><P class=remdata>Comment</P></TD><TD>
    <textarea cols=57 rows=10 size=250 name=msg></textarea>"
    ;
    В неё хочу добавить еще одну строку. Чтобы пользователи могли оставлять телефон...

    Но как я понял эту строку нужно добавлять в двух местах. Так как после отправки запроса, пользователю показывает результат. Вот этот скрипт в действии: http://lee-lida.zxq.net/mail/order.php
    Правда на том сервере покажет ошибку, но всё же ответит... Слать можно сколько угодно, всё равно емейл несуществующий вписал...

    Что я изменил? А именно вот эти фрагменты:
    Код (PHP):
    print "$shapka
    <center>
    <form action=order.php?event=add method=post name=REPLIER><table>
    <TR><TD colspan=2><div class=remtop align=center>Booking Request:</div></TD></TR>
    <TR><TD><P class=remdata>Name</P></TD><TD><input type=text value='Bill Gates' maxlength=$maxname name=name size=57></TD></TR>
    <TR><TD><P class=remdata>E-mail</P></TD><TD><input type=text value='your@mail.com' maxlength=$maxname name=email size=57></td></tr>
    <TR><TD><P class=remdata>Booking Date:</P></TD><TD><input type=text maxlength=$maxtema name=tema size=57></td></tr>
    <TR><TD><P class=remdata>Name1</P></TD><TD><input type=text value='Bill Gates1' maxlength=$maxname name=name1 size=57></TD></TR>
    <TR><TD><P class=remdata>Name2</P></TD><TD><input type=text value='Bill Gates2' maxlength=$maxname name=name2 size=57></TD></TR>
    <TR><TD><P class=remdata>Comment</P></TD><TD>
    <textarea cols=57 rows=10 size=250 name=msg></textarea>"
    ;
    и второй кусок:
    Код (PHP):
    <center>
    <table cellpadding=5 cellspacing=0>
    <TR><TD colspan=2><div class=remtop align=center>Message from site \"<a href='$smailurl'>$smailurl</a>\"</div></TD></TR>
    <TR><TD class=pismo><P class=remdata>Name</P></TD><TD class=pismo2><B>$name<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>E-mail</P></TD><TD class=pismo2><a href='mailto:$email'>$email</a></td></tr>
    <TR><TD class=pismo><P class=remdata>Booking Date:</P></TD><TD class=pismo2><B>$tema<B></td></tr>
    <TR><TD class=pismo><P class=remdata>Date of sending:</P></TD><TD class=pismo2>$date ã. â $time</td></tr>
    <TR><TD class=pismo><P class=remdata>Name1</P></TD><TD class=pismo2><B>$name1<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>Name2</P></TD><TD class=pismo2><B>$name2<B></TD></TR>
    <TR><TD class=pismo><P class=remdata>What I want</P></TD><TD class=pismo2>$msg</td></tr>
    </table>"
    ;
    Соответственно Name1 и Name2 это те добавленные строки.
     
  5. passwd

    passwd Гость

    УУУУРРРРАААААААААА!!!!!!!!!!!!!!!!!!!!!!!! РЕШШШИИИЛЛЛЛЛЛ!!!!!!!!!!
    Ну наконецто))

    sax_ol СПАСИБО большое, что хотел помочь, но я сам нашел где затупил))

    Просто в третьем фрагменте в котором нужно было добавлять строчки я не заметил параметра...
    Код (PHP):
    // обрабатываем REPLACER'ом все данные
    if (!isset($_POST['name'])) {exit("$shapka $back You have not entered name!");} else {$name=replacer($_POST['name']);}
    if (!isset($_POST['email'])) {exit("$shapka $back You have not entered the mail!");} else {$email=replacer($_POST['email']);}
    if (!isset($_POST['tema'])) {exit("$shapka $back You have not entered the Booking Date:");} else {$tema=replacer($_POST['tema']);}
    if (!isset($_POST['name1'])) {exit("$shapka $back You have not entered name1!");} else {$name1=replacer($_POST['name1']);}
    if (!isset($_POST['name2'])) {exit("$shapka $back You have not entered name2!");} else {$name2=replacer($_POST['name2']);}
    if (!isset($_POST['msg'])) {exit("$shapka $back You have not entered What I want!");} else {$msg=replacer($_POST['msg']);}
    $name2=replacer и $name1=replacer!!!!!!! Здесь не узрел...

    Всё! Темя закрыта! sax_ol спасибо!
     
Загрузка...
Похожие Темы - Проблема формой обратной
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    48
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    27
  3. c0de3r
    Ответов:
    5
    Просмотров:
    151
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    157
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    143

Поделиться этой страницей