Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Не работает отправка заявки с сайта... (http://www.flasher.ru/forum/showthread.php?t=124492)

dmitry_kiv 01.05.2009 01:12

Не работает отправка заявки с сайта...
 
Остался от программиста код заявки, переделал его под себя. Но не работает. Подскажите в чем проблема.

PHP код:

<?
if (isset($_REQUEST[zayavka])){
    
$z="";
    
$z.="1. ФИО:\t\t".$_REQUEST["zakazchik"]."\r\n";
    
$z.="2. Телефон: ".$_REQUEST["tel_zakazchika"]."\r\n";
    
$z.="3. E-mail: ".$_REQUEST["mail_zakazchika"]."\r\n";
    
$z.="4. Номера проектов: ".$_REQUEST["projects"]."\r\n";
    
$z.="5. Доп. информация: ".$_REQUEST["dop_info"]."\r\n";
    
$z.=date("Y/m/d  H:i:s",time());
    
    
mail("dima_kiv@inbox.ru","Заявка",$z,"Content-type: text/plain; charset=windows-1251");
    
header("Location: ".$_SERVER['SCRIPT_NAME']."?otpr=1");
}

?>

Код:

        <form method="POST" onsubmit="return checksubmit();" onreset="setreset();">
        <input onkeyup="checkp(3,value);" type="text" size="50" name="zakazchik">
          <input onkeyup="checkp(4,value);" type="text" size="50" name="tel_zakazchika"></td>
        <input onkeyup="checkp(5,value);" type="text" size="50" name="mail_zakazchika">
          <input onkeyup="checkp(6,value);" type="text" size="50" name="projects">
          <TEXTAREA type="text" name="dop_info" rows=5 cols=223></TEXTAREA>
          <input class="button" type="reset">
        <input class="button" type="submit" name="zayavka" value="Отправить">
       
</form> 
       
<script type="text/javascript" charset="windows-1251">

PHP код:

    <?if (isset($_REQUEST['otpr'])){?>
        alert("Ваша заявка отправлена.");
    <? ?>

Код:

var p=[];
for (var i=1;i<4;i++) p[i]=0;

function checkp(n,t){
        if ((n!=1)&&(n!=19)) {
                        if (t!=""){
                        p[n]=1;
                        document.getElementById("p"+n).innerHTML='<span style="color:#ffc600;">+</span>';
                }else{
                        p[n]=0;
                        document.getElementById("p"+n).innerHTML='<span style="color:#ffc600;">-</span>';
                }
        }
}

function checksubmit(){
        var t=1;
        for (var i=1;i<22;i++)        t=t*p[i];
        if (t==0){
                alert("Ошибка! Проверьте правильность заполнения формы.");
                return false;
        }
        if (t==1){
                return true;
        }
}
function setreset(){
        for (var i=1;i<22;i++){
                document.getElementById("p"+i).innerHTML='<span style="color:#ffc600;">-</span>';
                document.getElementById("tr20").setAttribute("style","visibility: hidden;");
        }
       
}
</script>


код в нижней части отвечает за провеку на сколько я понял. он тоже не работает, но это уже второй момент. главное тоб на почту приходило. спасибо.

duhowka 01.05.2009 02:00

попробуйте добавить вот сюда
Код:

<form action=имя скрипта method="POST" onsubmit="return checksubmit();" onreset="setreset();">
как я понял, скорее всего, имя скрипта и есть имя этого же файла.
а еще лучше выложите файлик полностью, а не по частям.
код который вы выложили в последней части включает в себя функции: "подсветки" поля при вводе данных, проверку на наличие данных в форме и функцию сброса или обнуления полей

dmitry_kiv 01.05.2009 02:05

насколько я понял вы имеете ввиду имя скрипта "zayavka"? если да то все равно не работает. вот весь код целиком:
Код:

<?php
require("header.php");
?>       
<?
if (isset($_REQUEST[zayavka])){
        $z="";
        $z.="1. ФИО:\t\t".$_REQUEST["zakazchik"]."\r\n";
        $z.="2. Телефон: ".$_REQUEST["tel_zakazchika"]."\r\n";
        $z.="3. E-mail: ".$_REQUEST["mail_zakazchika"]."\r\n";
        $z.="4. Номера проектов: ".$_REQUEST["projects"]."\r\n";
        $z.="5. Доп. информация: ".$_REQUEST["dop_info"]."\r\n";
        $z.=date("Y/m/d  H:i:s",time());
       
        mail("dima_kiv@inbox.ru","Заявка",$z,"Content-type: text/plain; charset=windows-1251");
        header("Location: ".$_SERVER['SCRIPT_NAME']."?otpr=1");
}

?>       
                <form action="zayavka"  method="POST" onsubmit="return checksubmit();" onreset="setreset();">
        <table cellpadding=0 cellspacing=0 border=0>
                <tr height=30>
                        <td width=320>ФИО&nbsp*</td>
                        <td width=15 id="p3" align=center><span style="color:#ffc600;">-</span></td>               
                        <td><input onkeyup="checkp(3,value);" type="text" size="50" name="zakazchik"></td>
                </tr>
                <tr height=30>
                        <td>Телефон&nbsp*</td>
                        <td id="p4" align=center><span style="color:#ffc600;">-</span></td>
                        <td><input onkeyup="checkp(4,value);" type="text" size="50" name="tel_zakazchika"></td>
                </tr>
                <tr height=30>
                        <td>E-mail&nbsp*</td>
                        <td id="p5" align=center><span style="color:#ffc600;">-</span></td>
                        <td><input onkeyup="checkp(5,value);" type="text" size="50" name="mail_zakazchika"></td>
                </tr>
                <tr height=30>
                        <td>Номера проектов&nbsp*</td>
                        <td id="p6" align=center><span style="color:#ffc600;">-</span></td>
                        <td><input onkeyup="checkp(6,value);" type="text" size="50" name="projects"></td>
                </tr>
                <tr height=3><td colspan=3></td></tr>
                <tr height=60>
                        <td>Дополнительная информация</td>
                        <td id=""></td>
                        <td align=right><TEXTAREA type="text" name="dop_info" rows=5 cols=223></TEXTAREA></td>
                </tr>
                <tr height=10><td colspan=3></td></tr>
                <tr align=right>
                        <td colspan=3>
                                <input class="button" type="reset"> &nbsp
        <input class="button" type="submit" name="zayavka" value="Отправить">
                        </td>
                </tr>
        </table>
</form> 

<script type="text/javascript" charset="windows-1251">
        <?if (isset($_REQUEST['otpr'])){?>
                alert("Ваша заявка отправлена.");
        <? } ?>
var p=[];
for (var i=1;i<4;i++) p[i]=0;

function checkp(n,t){
        if ((n!=1)&&(n!=19)) {
                        if (t!=""){
                        p[n]=1;
                        document.getElementById("p"+n).innerHTML='<span style="color:#ffc600;">+</span>';
                }else{
                        p[n]=0;
                        document.getElementById("p"+n).innerHTML='<span style="color:#ffc600;">-</span>';
                }
        }
}

function checksubmit(){
        var t=1;
        for (var i=1;i<22;i++)        t=t*p[i];
        if (t==0){
                alert("Ошибка! Проверьте правильность заполнения формы.");
                return false;
        }
        if (t==1){
                return true;
        }
}
function setreset(){
        for (var i=1;i<22;i++){
                document.getElementById("p"+i).innerHTML='<span style="color:#ffc600;">-</span>';
                document.getElementById("tr20").setAttribute("style","visibility: hidden;");
        }
       
}
</script>

</body>
</html>


duhowka 01.05.2009 02:27

c разрешением файла надо писать

кстати. заметил 2 ошибочки:
1. php код лучше начинать <?php
2. надо в кавычках
Код:

if (isset($_REQUEST["zayavka"]))
p.s это конечно решение задачи, какое-то оно кривое. очень много не грамотностей чтоли. в итоге можно получить уязвимость для хакеров и не довольство для заказчика или посетителя.

dmitry_kiv 01.05.2009 06:31

duhowka может посоветуешь что нибудь более стандартное?... просто программист у нас появился, код написал и пропал. я вот разгребаю :)

кстати указав zayavka.php тоже не работает...(

duhowka 01.05.2009 15:26

реализаций много разных. я так понимаю, что вам особых изысков не надо, поэтому предлагаю взять готовый, например, тут

ffffff 02.05.2009 00:51

А еще лучше взять Zend_Mail из Zend FrameWork. Строить письма путем объединения строк - плохая практика. Лучше создать шаблон.

файл tmpl.tpl.php
PHP код:

E-Mail:    <?php echo $user['username']  ?> 
Имя:    <?php echo $profile['first_name'] . ' ' $profile['middle_name'] . ' ' $profile['last_name'?> 
Адрес:    <?php echo $profile['postal_code'] . ', ' .$profile['country'] . ', ' .$profile['city'] . ', ' $profile['address']  ?> 
Тел.:    <?php echo $profile['phone']   ?> 
------------------------------------------
Курс у.е. <?php echo $ue ?> рублей
Фиксированный платеж: <?php echo ($tax $ue?>рублей

<?php $i=0 ?>
<?php 
foreach ($this->goods as $item): ?>
<?php 
    $i
++;
?>
----- <?php echo $i ?> -----

Название: <?php echo $item['name'?>  Кол-во: <?php echo $item['qty'?> 
Цена: <?php echo ($item['price'] * $ue); ?>р Сумма: <?php echo ($item['price'] * $item['qty'] * $ue); ?>р 

<?php endforeach; ?>

Итого: <?php echo $this->summ ?> рублей

в исполняемом файле делаем так:
PHP код:

ob_start();
include 
'tmpl.tpl.php';
$message ob_get_contents();
ob_end_clean(); 



Часовой пояс GMT +4, время: 12:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.