0 / 0 / 0
Регистрация: 05.12.2009
Сообщений: 103
1

Отправка формы с сайта

28.10.2017, 21:44. Показов 498. Ответов 1
Метки нет (Все метки)

Ребята, всем привет!

Настроили сбор данных с форм сайта и отправку всего этого на почту. На отправку форм настроили передачу событий в Google Analytics и Метрику. При отправке с сайта, все работает хорошо.

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

Скрипты брали из интернета, т.к. не очень хорошо с PHP и разобраться с ними пробовали, но не получилось.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
$mail='kirmur@mail.ru';
$ns=array(
    'name'=>'Имя',
    'phone'=>'Телефон',
    'mark'=>'Марка',
    'model'=>'Модель',
    'year'=>'Год выпуска',
    'price'=>'Желаемая цена',
    'message'=>'Комментарий'
);
if($p=$_POST){
    $time=time();
    $x=scandir('tmp');
    foreach($x as $a){
        if($a!='..' && $a!='.' && is_file($a)){
            if($time-filemtime('tmp/'.$a)>24*3600)unlink('tmp/'.$a);
        }
    }
    
    
    $js['status']='ok';
    $title='Письмо с сайта Express Auto';$msg='';
    foreach($p as $a=>$b){
        if($ns[$a])$msg.="$ns[$a]: <b>$b</b> <br>\n\n";
        
    }
 
    //$js['msg']=$msg;
    $js['mail']=smail($mail,$title,$msg,$p['images'],"Express Auto <no-reply@$_SERVER[HTTP_HOST]>");
    $js['success']=true;
    echo json_encode($js);
}
function mail_h($to,$title,$msg){
    $from="Express Auto <no-reply@$_SERVER[HTTP_HOST]>";
    $headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
    $headers .= "From: " . $from . "\r\n";
    $headers .= "Reply-To: " . $from . "\r\n";
    
    return mail($to,$title,$msg,$headers);
}
 
 
function rf($path){
    $ff=@file_get_contents($path);
    if(!$ff){
        $path=iconv("UTF-8","Windows-1251",$path);
        $ff=file_get_contents($path);
    }
    
    $res['attachment']=chunk_split(base64_encode($ff));
    $res['mime']=mime_content_type($path);
    return $res;
}
function smail($to,$title,$msg,$files='',$from=''){
    $boundary=md5(date('r', time()));
    $headers="MIME-Version: 1.0\r\n";
    $headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    if($from){
        $headers .= "From: " . $from . "\r\n";
        $headers .= "Reply-To: " . $from . "\r\n";
    }
 
    $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"
 
--$boundary
Content-Type: text/html; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit
 
$msg";
    if($files){
        if(!is_array($files))$files=array($files);
        $u=0;
        foreach($files as $a=>$b){
            if(is_file($b)){
                if($u==$a){
                    $tmp=explode('/',$b);
                    $filename=$tmp[count($tmp)-1];
                    
                }else {$filename=$a;}
                $u++;           
                $tmp=rf($b);
                $attachment = $tmp['attachment'];
                $filetype=$tmp['mime'];
                $message.="
 
--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"
 
$attachment";
            }
        }
    }
    $message.="
--$boundary--";
    return mail($to,$title,$message,$headers);
}
?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if($ff=$_FILES['new_image']){
    $mime=array('image/png','image/gif','image/jpeg','image/tiff','image/webp');
    if(in_array($ff['type'],$mime) && $ff['error']==0){
        $name='tmp/'.md5($ff['name'].time()).'.'.substr($ff['type'],6);
        copy($ff['tmp_name'],$name);
        $js['name']=$name;
        $js['normal']='/ajax/'.$name;
        $js['thumb']='/ajax/'.$name;
        echo json_encode($js);      
        
    }else die('false');
}
?>
Заранее спасибо за помощь!
Миниатюры
Отправка формы с сайта   Отправка формы с сайта   Отправка формы с сайта  

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2017, 21:44
Ответы с готовыми решениями:

Отправка email с формы сайта
День добрый, интересует отправка писем с сайта, без использования почтовых клиентов. Я совершенно...

Отправка с формы сайта на почту
есть код html но ни как не получается отправить информацию на почту, на более простом примере...

Отправка формы с сайта на почту
Здравствуйте! Помогите пожалуйста. Очень срочно нужно. Буду очень благодарен. Вот html: ...

Отправка формы с сайта в виде заявки на почту
доброго время суток. Помогите разобраться. Перепробовал много примеров из интернета по поводу...

1
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
29.10.2017, 15:34 2
PHP
1
2
3
4
if (empty($_POST['phone'])) {
echo 'Укажите номер телефона';
exit;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2017, 15:34
Помогаю со студенческими работами здесь

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

Отправка формы на email и данных с формы в БД
В приведенном ниже php-файле производится занесение данных с формы в базу,как изменить код для того...

Отправка сообщений с сайта
Нашел в нете такой код который отправляет сообщения с сайта. Почему на денвере не работает. Вот...

Отправка письма с сайта
Добрый день! Подскажите где допустил ошибку,дело в том что при отправке письма с сайта,на почту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru