53 / 28 / 13
Регистрация: 01.03.2013
Сообщений: 330

Отладка кода

20.12.2017, 21:07. Показов 749. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я по большей части верстальщик. Но часто приходится что то делать на php.
В частности вот реализовал отправку почты из формы с помощью php mailer

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
 
//Load composer's autoloader
require 'vendor/autoload.php';
 
$name = '';
$phone = '';
$message = '';
$sub = '';
 
if(isset($_GET['upload'])){
            // upload_max_filesize - максимальный размер загружаемого файла
            // post_max_size - устанавливает максимально допустимый размер данных, передаваемых методом POST
            $uploadDir = "uploads/";
            $types = array("image/png", "image/jpeg", "image/pjpeg", "image/x-png", "application/msword", "application/vnd.ms-excel", "application/pdf", "text/plain", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            $size = 2097152; //1048576
            $file = $_FILES['userfile']['name'];
            $ext = strtolower(preg_replace("#.+\.([a-z]+)$#i", "$1", $file));
            $res = array();
            
            /* ===Обработка данных=== */
            if(!isset($file)){
                $res = "Ошибка! Возможно файл слишком большой";
                exit($res);
            }
            if($_FILES['userfile']['size'] > $size OR $_FILES['userfile']['size'] == 0){
                $res = "Ошибка! Максимальный вес файла - 2Мб";
                exit($res);
            }
            if(!in_array($_FILES['userfile']['type'], $types)){
                $res = "Ошибка! Недопустимое расширение файла";
                exit($res);
            }
            /* ===Обработка данных=== */
 
            $new_img = md5(microtime()) . ".{$ext}";
 
            $uploadfile = $uploadDir.$new_img;
            if(@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){
                $res = 'ok';
                setcookie('file_upload', $uploadfile);
                exit($res);
            }else{
                $res = "error";
                exit($res);
            }
        }
 
if($_POST){
    $name = trim(htmlspecialchars($_POST['name']));
    $phone = trim(htmlspecialchars($_POST['phone']));
    if(isset($_POST['message']))
    $message = trim(htmlspecialchars($_POST['message']));
    $sub = trim(htmlspecialchars($_POST['subject']));
    
            $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
            try {
                //Server settings
                $mail->SMTPDebug = 2;                                 // Enable verbose debug output
                $mail->CharSet = 'UTF-8';
                $mail->isSMTP();                                      // Set mailer to use SMTP
                $mail->Host = 'smtp.yandex.ru';  // Specify main and backup SMTP servers
                $mail->SMTPAuth = true;                               // Enable SMTP authentication
                $mail->Username = 'example@mail.ru';                 // SMTP username
                $mail->Password = 'pass';                           // SMTP password
                $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
                $mail->Port = 465;                                    // TCP port to connect to
 
                //Recipients
                $mail->setFrom('example@mail.ru', 'Заявка');
                $mail->addAddress('touser@mail.ru', 'Joe User');     // Add a recipient
                $mail->addAddress('ellen@example.com');               // Name is optional
                $mail->addReplyTo('info@example.com', 'Information');
                $mail->addCC('cc@example.com');
                $mail->addBCC('bcc@example.com');
 
                //Attachments
                //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
                if(isset($_COOKIE['file_upload']) && !empty($_COOKIE['file_upload']) && $sub == '4')
                $mail->addAttachment($_COOKIE['file_upload']);    // Optional name
 
                //Content
                $message_html = '';
                if(!empty($message)){
                    $message_html = "<tr><td>Сообщение: </td><td>{$message}</td></tr>";
                }
                if(!empty($name)){
                    $name_html = "<tr><td>Имя отправителя: </td><td>{$name}</td></tr>";
                }
                $mail->isHTML(true);                                // Set email format to HTML
                $mail->Subject = 'Заявка на консультацию';
                if($sub == '2' || $sub == '4'){
                    $mail->Subject = 'Приглашение на участие в тендере';
                }
                if($sub == '3'){
                    $mail->Subject = 'Заявка на вызов инженера';
                }
                $mail->Body    = "<table>{$name_html}<tr><td>Телефон: </td><td>{$phone}</td></tr>{$message_html}</table>";
                
                if($mail->send()){
                    $answer = '1';
                }else{
                    $answer = '0';
                };
                if(isset($_COOKIE['file_upload']) && !empty($_COOKIE['file_upload']))
                    setcookie('file_upload', '');
                exit($answer);
            } catch (Exception $e) {
                //echo 'Message could not be sent.';
                //echo 'Mailer Error: ' . $mail->ErrorInfo;
                $answer = '0';
                exit($answer);
            }
        
}
Отправка письма даже без файла стала осуществляться очень долго, после того как реализовал отправку файла из формы аяксом. Как можно оптимизировать сие творение?)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2017, 21:07
Ответы с готовыми решениями:

Отладка PHP кода
Помогите, пожалуйста. Есть php код. Его нужно отладить (ставить точки останова и т.д.) В php я полный 0. Что нужно сделать для отладки?

Отладка кода
Помогите пожалуйста с отладкой программы. Код правильный но вываливаются ошибки,разобраться не получается. Заранее благодарен. ...

Отладка кода
программа для удаления повторяющихся элементов в строке flag::Int-&gt;-&gt;Int flag n=FALSE flag n(x:xs) = if x ==n then TRUE ...

1
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
22.12.2017, 17:33
Цитата Сообщение от Kenny7423 Посмотреть сообщение
после того как реализовал отправку файла из формы аяксом
попробуйте без аякса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2017, 17:33
Помогаю со студенческими работами здесь

Отладка кода
Я на форуме давно... и вот стало мне жутко интересно, кто как код отлаживает... потому 99% начинающих вообще никогда не слышали про...

Отладка Кода
{ Console.WriteLine(&quot;Привет пользователь. Как тебя зовут?&quot;); string name = Console.ReadLine(); ...

Отладка кода
У меня есть готовый код программы. вот только не могу его отладить. первый раз в жизни столкнулся с delphi. напишите кто может отладить код...

Отладка кода
Помогите пожалуйста отладить код. Собрал вот такое #include&lt;iostream&gt; int Check(int a) { int b; for(b = a * a; a &amp;&amp;...

Удобная отладка с++ кода
Чем пользуются линукс-программисты для отладки кода на C++? Хотелось бы иметь такие же удобства отладки как и в MSVC. Например, нужно...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru