Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
53 / 28 / 13
Регистрация: 01.03.2013
Сообщений: 330

Отладка кода

20.12.2017, 21:07. Показов 739. Ответов 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
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru