Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Подскажите пожалуйста по PHP

Модерирует : Cheery

articlebot (13-11-2018 09:07): Простенький вопрос по PHP  Версия для печати • ПодписатьсяДобавить в закладки

   

roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Подскажите пожалуйста кто разбирается в PHP.  
 
Мне скинули 2 файла для отправки на эмейл данных с формы заказа на лендинге. И сказали так, заливаешь эти файлы на хостинг (там 2 файла send.php и success) создаешь форму post на лендинге и ставишь ссылку на send.php
Я не очень разбираюсь в PHP кто может посказать как создать POST форму на лендинге? Человек кто скинул сильно занят, поэтому я его этими вопросами не донимаю. Пожалуйста ребята подскажите как post форму создать на лендинге?

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 23:39 07-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma255

Цитата:
Я не очень разбираюсь в PHP кто может посказать как создать POST форму на лендинге?  

это не php, а обычная html форма, отправляющая данные на php скрипт
к примреу, http://ab-w.net/HTML/html_forms.php

Код:
<form action="http://сайт/ваш_скрипт.php" method="post">
а тут уже элементы формы для ввода той информации, что вам нужна (и которую получит php скрипт)
<input type="submit" value="Отправить">
</form>

ну и, конечно же, эта форма должны быть внутри html страницы.

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 23:46 07-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот сама форма в html странице
 
<form class="order_form" action="call.php" method="post">
<input class="field" type="text" name="name" placeholder="Введите Ваше имя" required>
<input class="field" type="tel" name="phone" placeholder="Введите Ваш телефон" required>
<button class="button">Заказать сейчас</button>
 
 
именно там как мне скали нужно пост формой подсключить файл send.php  
 
 
будьте добры пожалуйста , покажите где эту пост втыкать в форме ...
 
Добавлено:
я пробовал заменятьв форме call.php на send.php но после оформления заявки меня перекидывает на страницу call.html ..есть такая страница в файлах лендинга ....то есть send.php не срабатывает ... из за чего такое может быть ?

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 16:12 08-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma255

Цитата:
но после оформления заявки меня перекидывает на страницу call.html ..есть такая страница в файлах лендинга ....то есть send.php не срабатывает

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

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 21:20 08-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот содержимое файла send.php
 
<?php
if($_POST['subject'] == 'Обратный звонок') {
    $param = 'Телефон: '.$_POST['phone'].'
    Имя: '.$_POST['name'].'';
    mail('pochta@gmail.com', 'Рюкзаки для мам лид', $param);
    header("Location: success.php?name=".$_POST['name']."&phone=".$_POST['phone']."");
} else {
    $param = 'Телефон: '.$_POST['phone'].'
Имя: '.$_POST['name'].'
Цвет: '.$_POST['color'].'
Адрес: '.$_POST['address'].'
Комментарий: '.$_POST['comment'].'';
    mail('pochta@gmail.com', 'Рюкзаки для мам лид', $param);
    header("Location: success.php?name=".$_POST['name']."&phone=".$_POST['phone']."");
}
?>

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 08:41 09-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma255
обратите внимание какие поля из формы ожидаются и какие есть у вас.
после выполнения кода (отправки email) идет переадресация на success.php скрипт.
код явно написан не профессионалом.

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 08:44 09-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
удалил эту часть кода с лендинга  
 
function sendData(client_name, client_phone) { $.ajax({ type: 'POST', data: { ref: webmaster_id, api_key: webmaster_api, product_id: product_id, phone: client_phone, name: client_name, ip: client_ip, s: client_s, w: client_w, t: client_t, p: client_p, m: client_m, referer: document.referrer, }, url: 'https://m1-shop.ru/send_order/'success: function(data) { //console.log(data); data = JSON.parse(data); if (data.result == "ok") { //alert('Заказ создан, ID:' + data.id); window.location.replace("call.html?order_id=" + data.id + "&s=" + client_s + "&w=" + client_w + "&t=" + client_t + "&p=" + client_p + "&m=" + client_m); } else { //alert('Заказ НЕ создан, ответ: ' + data); window.location.replace("call.html?s=" + client_s + "&w=" + client_w + "&t=" + client_t + "&p=" + client_p + "&m=" + client_m); } }, error: function(xhr, status, error) { // if error occured console.log(xhr.statusText, xhr.responseText, status, error); respjs = JSON.parse(xhr.responseText); //alert('Заказ НЕ создан, ответ: ' + respjs.message); window.location.replace("call.html?s=" + client_s + "&w=" + client_w + "&t=" + client_t + "&p=" + client_p + "&m=" + client_m); //$(placeholder).append(xhr.statusText + xhr.responseText); //$(placeholder).removeClass('loading'); } }); return false; };  
 
запахало на половину , то есть при заполнении заявки , все норм , но вот беда , на эмейл ничего не приходит  
 
вот сам тестовый сайт  
 
http://moredsa.tk
 
Добавлено:
сначала я все call.html заменил на send.php заработало но криво , данные введенные в форму не отображались , потом вообще удалил этот кусок кода и данные стали отображатся на странице благодарности, но пиьсмо сейчас на почту не приходит (

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 08:47 09-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma255

Цитата:
удалил эту часть кода с лендинга  

эта часть для ajax отправки данных без обновления страницы.
 

Цитата:
на эмейл ничего не приходит

проверьте, что адрес получателя указан правильно. ну и зависит от хостинга - почтовая функция может быть отключена, если он бесплатный, к примеру.
 
а может нужно указывать больше полей, смотрите примеры в Perl, PHP: отправка формы на e-mail
 

Цитата:
вот сам тестовый сайт  

там много "лишнего" кода имеющего отношение к оригинальной форме. + загрузка посторонних скриптов с других сайтов

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 09:03 09-11-2018 | Исправлено: Mavrikii, 09:06 09-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как теперь быть ?  
 
кстати у меня проблемма у с другим скриптом была , я их уже столько перепробовал ...вот что мне написали в тех поддержки хостинга  
 
 
 
Журнал нашего почтового сервера свидетельствует о том, что письмо успешно
> отправляется, однако отклоняется принимающей стороной:
>
> 2018-11-08 01:27:40 [10660] 1gKWIN-0002Ot-52 ** koresd@gmail.com
> F=<a0016542@skygga.from.sh> R=lookuphost_w_self T=remote_smtp
> H=gmail-smtp-in.l.google.com [173.194.73.27]
> X=TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128 CV=yes: SMTP error from remote
> mail server after pipelined end of data: 550-5.7.1 [141.8.195.45      19]
> Our system has detected that this message is\n550-5.7.1 likely suspicious
> due to the very low reputation of the sending\n550-5.7.1 domain. To best
> protect our users from spam, the message has been\n550-5.7.1 blocked. Please
> visit\n550 5.7.1  https://support.google.com/mail/answer/188131 for more
> information. t27si1765258lfi.77 - gsmtp
 
Добавлено:
в поддержки сказали что почтовый сервер гугл отклоняетп письма ..но я потом сменил на майл ру и все равно  письма не приходили

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 10:09 09-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma255

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

Потому что они видят, что отправляются не через официальный почтовый сервер и с ограниченным количеством заголовком - считают это спамом.
Хотите чтобы такого не было - нужно отправлять через нормальные почтовые сервера. Это сложнее, чем просто mail() функция, так как потребует авторизации на сервере. Можно воспользоваться готовыми классами, например https://github.com/PHPMailer/PHPMailer
https://medium.com/@alfakrai/вменяемая-инструкция-к-phpmailer-51bf4530e2e4
Куски насчёт прикрепления файлов можно пропустить.

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 12:57 09-11-2018 | Исправлено: Mavrikii, 13:02 09-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В пхп не разбираюсь но решил попробовать , вроде по инструкции все легко ...но все равно ничнго не приходит (((( Посмотрите пожалуйста  
 
содержимое файла send.php
 
 
<?php
// Файлы phpmailer
require 'class.phpmailer.php';
require 'class.smtp.php';
 
$name = $_POST['name'];
$number = $_POST['number'];
$email = $_POST['email'];
 
// Настройки
$mail = new PHPMailer;
 
$mail->isSMTP();  
$mail->Host = 'smtp.mail.ru';  
$mail->SMTPAuth = true;                      
$mail->Username = 'vaseev.2018'; // Ваш логин в Яндексе. Именно логин, без @yandex.ru
$mail->Password = 'мой пароль от ящика'; // Ваш пароль
$mail->SMTPSecure = 'ssl';                            
$mail->Port = 465;
$mail->setFrom('vaseev.2018@mail.ru'); // Ваш Email
$mail->addAddress('romeokofeev@gmail.com'); // Email получателя
$mail->addAddress('example@gmail.com'); // Еще один email, если нужно.
 
// Прикрепление файлов
  for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
        $filename = $_FILES['userfile']['name'][$ct];
        if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
            $mail->addAttachment($uploadfile, $filename);
        } else {
            $msg .= 'Failed to move file to ' . $uploadfile;
        }
    }    
                                 
// Письмо
$mail->isHTML(true);  
$mail->Subject = "Входящее!"; // Заголовок письма
$mail->Body    = "Имя $name . Телефон $number . Почта $email"; // Текст письма
 
// Результат
if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'ok';
}
?>
 
 
как и написанно записал строку до закрытия тега хед вписываю
 
<script src=”//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js”></script>
 
в конце до закрытия тега body пишу код  
 
<script>
$(function(){
 ‘use strict’;
$(‘#form’).on(‘submit’, function(e){
 e.preventDefault();
 var fd = new FormData( this );
 $.ajax({
 url: ‘send.php’,
 type: ‘POST’,
 contentType: false,  
 processData: false,  
 data: fd,
 success: function(msg){
if(msg == ‘ok’) {
 $(“.button”).val(“Отправлено”);  
} else {
 $(“.button”).val(“Ошибка”);
 setTimeout(function() {$(“.button”).val(“Отправить”);}, 3000);
}
 }
 });
 });
});
</script>
 
Все равно не уходят письма ...подскажите пожалуйста ...что может быть не так ?

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 13:59 09-11-2018
Antolik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня! Подскажите, пжл, есть скрипт:
 
$arr = array("CDEGZ","23ABCDXYZ","2345HNPRZ","23ADEFUYZ","239BPSTXZ","239AMWY","23DETWXZ","239ARSYZ","234CSTWXZ","23789ASUVWXY","23CEUVWZ","23ABCRTW","23CDEFXY","23DEXYZ","23DFUVX");
 
c("label1")->text = $arr[rand(0,4)];
 
Нужно на выходе чтобы был 15-ый сгенерированный из указанных интервалов ключ. Поправьте, пжл, не работает скрипт.

Всего записей: 13 | Зарегистр. 29-06-2010 | Отправлено: 15:55 09-11-2018 | Исправлено: Antolik, 15:59 09-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Все равно не уходят письма

Antolik
ну и зачем вы влезли в чужую тему?
есть же общая - Простенький вопрос по PHP
 

Цитата:
не работает скрипт.


Код:
$arr[rand(0, count($arr) - 1)]

либо

Код:
array_rand($arr)

 
 
roma255
я не знаю зачем вы воротите микс js и php, если все, что вам требовалось, просто заменить функцию mail() на отправку почты (без файлов аттачментов) вашей формы.
 
то есть вместо
Цитата:
mail('pochta@gmail.com', 'Рюкзаки для мам лид', $param);  

пишете (не подключить файл класса PHPMailer и заменив выделенное на нужное вам)

Код:
$mail = new PHPMailer;  
$mail->isSMTP();  
$mail->Host = 'smtp.mail.ru';    
$mail->SMTPAuth = true;                        
$mail->Username = 'логин';
$mail->Password = 'пароль';
$mail->SMTPSecure = 'ssl';                              
$mail->Port = 465;  
$mail->setFrom('от_кого@mail.ru');
$mail->addAddress('pochta@gmail.com');
$mail->Body = $param;
$mail->Subject = 'Рюкзаки для мам лид';
$mail->send();

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 20:31 09-11-2018 | Исправлено: Mavrikii, 21:13 09-11-2018
roma255

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! на фрилансе уже сделали мне ..я вам очень благодарен за помощь!

Всего записей: 67 | Зарегистр. 28-10-2008 | Отправлено: 10:45 12-11-2018
vs6262



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
существует ли PHP Microservices как в Java ?
если да, можно яркий пример
 
спасибо

Всего записей: 1669 | Зарегистр. 25-02-2013 | Отправлено: 20:07 12-11-2018 | Исправлено: vs6262, 20:08 12-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
https://lumen.laravel.com/
https://www.slimframework.com/
https://silex.symfony.com/
https://phalconphp.com/ru/
https://github.com/wave-framework/wave

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 22:40 12-11-2018
vs6262



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
PHP Microservices

в нём же можно запустить Websocket Server ?
 
Добавлено:
я понял принцип работы фреймворк стартует с PHP
 
Добавлено:
Mavrikii
спасибо
в Java с Microservices проще - можно создать собственно запускаемый

Всего записей: 1669 | Зарегистр. 25-02-2013 | Отправлено: 22:48 12-11-2018 | Исправлено: vs6262, 23:00 12-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
в Java с Microservices проще - можно создать собственно запускаемый

в php тоже, нет проблем создать код, который запускается отдельно и не требует http сервера.
 

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 23:10 12-11-2018
vs6262



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 в php тоже, нет проблем создать код, который запускается отдельно и не требует http сервера.  

вы имеете ввиду c cmd ?

Всего записей: 1669 | Зарегистр. 25-02-2013 | Отправлено: 23:39 12-11-2018 | Исправлено: vs6262, 23:43 12-11-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
вы имеете ввиду c cmd ?

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

Всего записей: 6965 | Зарегистр. 20-09-2014 | Отправлено: 23:47 12-11-2018
   

Компьютерный форум Ru.Board » Интернет » Web-программирование » Подскажите пожалуйста по PHP
articlebot (13-11-2018 09:07): Простенький вопрос по PHP



Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru