LINUX.ORG.RU
ФорумAdmin

Вопрос про web-сервер на openwrt

 ,


0

1

Приветствую всех!

У меня установлен openwrt на роутере mr3020. Я настроил на нём lighttpd, доустановил пакеты lighttpd-mod-cgi php5 php5-cgi php5-mod-session Через cgi включил .php Есть сайт с html страницей и формой обратной связи, которая, как я понимаю, задействует файлы .js, лежащие в папке js (jquery.min.js, scripts.js, validator.js), сайт делал не я.

Когда ввожу данные (телефон и имя) с html переключает на .php страницу, которая должна на почту отправить эти данные. PHP работает, но страница выдаёт ошибку

	//header ('location:'.$_SERVER['HTTP_REFERER']);
  } else { echo '<div style="margin: 100px auto;font-size: 20px;color: red;">Произошла ошибка при отправке письма. Свяжитесь с администратором сайта.</div>';  }

?> 

Вопрос, если я правильно понимаю, как мне включить поддержку .js на lighttpd?



Последнее исправление: sgra1 (всего исправлений: 2)

Вопрос, если я правильно понимаю, как мне включить поддержку .js на lighttpd?

Неправильно понимаете. JavaScript выполняется на клиентском компьютере, соответственно на сервере его невозможно включить / выключить. У вас проблема с этой самой PHP страницей.

ravdinve
()
Ответ на: комментарий от ravdinve

Спасибо за ответ! То есть проблема в самом коде этой страницы? Что-то либо не правильно срабатывает, либо вообще в этом коде (php) не работает. Ей уже получается больше 2 лет, на ней ещё яндекс метрика висела, то есть возможно какие-то изменения произошли за этот период и всё слетело? Только, по моему странно, что тот, кто этот код писал указал «Произошла ошибка при отправке письма. Свяжитесь с администратором сайта.», будто ошибка в серверной части.

sgra1
() автор топика
Ответ на: комментарий от sgra1

Полагаю, что нет каких-то модулей на вашем сервере, которые требуются странице. Как именно она отправляет почту?

ravdinve
()
Ответ на: комментарий от ravdinve
<?php

session_start();

ob_start();



$name =  $_POST['name'];

$telephone =  $_POST['telephone'];

$phone1 =  $_POST['phone1'];

$phone2 =  $_POST['phone2'];

$phone3 =  $_POST['phone3'];

if(isset($telephone))

  {  $tel = $telephone ; }

   else if(isset($phone2) && isset($phone3))

    {  $tel =  $phone1.'-'.$phone2.'-'.$phone3; }

      $mess = '

        Оформление заказа .<br />



   

Имя отправителя : '.$name.'<br />

Контактный телефон : '.$tel.'<br />';



$_headers  = 'MIME-Version: 1.0' . "\r\n";

$_headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

$_headers .= "From: 123@yandex.ru\r\n";



//Тема с которой письмо будет приходить к вам на ящики

$_subject = "=?utf-8?b?" . base64_encode("Поступила заявка с сайта $site") . "?=";



$_to = '123@yandex.ru';



if(mail($_to, $_subject, $mess, $_headers) == TRUE)

	{  

?>	

<!doctype html>

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8" >

<title>Профессиональная уборка помещений в Москве и Московской Области</title>

<link href="favicon.ico" rel="shortcut icon">

<link href='http://fonts.googleapis.com/css?family=PT+Sans:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

<style type="text/css">



body {

	text-align: center;

  margin: 0;

  padding: 0;

}

div#container

{

   width: 1000px;

   position: relative;

   margin-top: 0px;

   margin-left: auto;

   margin-right: auto;

   text-align: left;

}

a,

a:hover,

a:active {

	text-decoration: none;

}

#Layer1

{

   background: url(images/back-gr.jpg) top center no-repeat;

   position: absolute;

   text-align: center;

   left:0px;

   top:0px;

   width:100%;

   height:100%;

}



.popup {

	position: relative;

	z-index: 2;

	display: block;

	top: 25px;

	width: 600px;

	margin: 200px auto;

	text-align: center;

	}

.su a { 

   background:url(img/buttons_right.png) 100% -285px no-repeat; 

   color:#3e3e3e; 

   display:inline-block; 

   padding-right:20px; 

}



.su a span { 

   background:url(img/buttons_left.png) 0 -285px no-repeat; 

   display:block;

   font-weight: 600; 

   font-family:'PT Sans'; 

   font-size:24px;

   width: 450px; 

   height:46px; 

   padding:11px 0 0 20px; 

   text-align:center; 

   text-shadow:0 1px 1px #fff; 

}

.su a:hover { background-position:100% -345px; }

.su a:hover span { background-position:0 -345px; }

.su a:active { background-position:100% -405px; }

.su a:active span { background-position:0 -405px; }



form {

	font-family: 'PT Sans';	

}

form span {

	font-size: 30px;

}

form p {

	font-size: 20px;

	padding-bottom: 40px;

	padding-top: 10px;

	margin: 0;

}

</style>

<!-- Google Analytics -->

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');



  ga('create', 'UA-53380433-3', 'auto');

  ga('send', 'pageview');



</script>

<!-- /Google Analytics -->

</head>

<body>

<!-- Yandex.Metrika counter -->

<script type="text/javascript">

(function (d, w, c) {

    (w[c] = w[c] || []).push(function() {

        try {

            w.yaCounter123456789 = new Ya.Metrika({id:123456789,

                    webvisor:true,

                    clickmap:true,

                    trackLinks:true,

                    accurateTrackBounce:true});

        } catch(e) { }

    });



    var n = d.getElementsByTagName("script")[0],

        s = d.createElement("script"),

        f = function () { n.parentNode.insertBefore(s, n); };

    s.type = "text/javascript";

    s.async = true;

    s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";



    if (w.opera == "[object Opera]") {

        d.addEventListener("DOMContentLoaded", f, false);

    } else { f(); }

})(document, window, "yandex_metrika_callbacks");

</script>

<noscript><div><img src="//mc.yandex.ru/watch/26773080" style="position:absolute; left:-9999px;" alt="" /></div></noscript>

<!-- /Yandex.Metrika counter -->



<div id="Layer1">

<div id="Layer1_Container" style="width:1000px;position:relative;margin-left:auto;margin-right:auto;text-align:left;"></div>

</div>



<div id="Layer3" style="position:absolute;text-align:center;top:9px;left:0;height:116px;z-index:71;width:100%;">

<div id="Layer3_Container" style="width:987px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">

<div id="wb_Text20" style="position:absolute;left:0px;top:43px;width:178px;height:38px;z-index:14;text-align:center;">

<span style="color:#525252;font-family:'PT Sans Narrow';font-size:15px;letter-spacing:1px;"><strong>КЛИНИНГОВАЯ КОМПАНИЯ</strong></span></div>

<div id="wb_Text19" style="position:absolute;left:724px;top:45px;width:251px;height:38px;text-align:right;z-index:15;">

<span style="color:#525252;font-family:'PT Sans Narrow';font-size:15px;letter-spacing:1px;"><strong>ЗВОНИТЕ! Мы работаем ежедневно с 10 до 20</strong></span></div>

<div id="wb_Text2" style="position:absolute;left:574px;top:5px;width:398px;height:38px;text-align:right;z-index:16;">

<span style="color:rgba(79, 228, 247, 1);font-family:'PT Sans';font-size:32px;"><strong>8-916</strong></span><span style="color:#DEEA33;font-family:'PT Sans';font-size:32px;"><strong>-123-45-67</strong></span></div>

<div id="wb_Text26" style="position:absolute;left:0px;top:5px;width:374px;height:38px;z-index:17;text-align:left;">

<span style="color:rgba(79, 228, 247, 1);font-family:'PT Sans';font-size:32px;"><strong>Клининговая-Компания</strong></span></div>

</div>

</div>



<div class="popup">

<form method="post" name="su" action="index.html" enctype="multipart/form-data" accept-charset="UTF-8">

<span>СПАСИБО ЗА ОСТАВЛЕННУЮ ЗАЯВКУ</span>

<p>Наш менеджер свяжется с вами в ближайшее время</p>

<div class="su" style="display: block;text-align: center;">

			<a href="#" class="call" onclick="javascript:document.su.submit(); return false;"><span>Вернуться на сайт</span></a>

			</div>

</form>

</div>



</body>

</html>	

<?php	

	//header ('location:'.$_SERVER['HTTP_REFERER']);

  } else { echo '<div style="margin: 100px auto;font-size: 20px;color: red;">Произошла ошибка при отправке письма. Свяжитесь с администратором сайта.</div>';  }



?>
sgra1
() автор топика
Ответ на: комментарий от sgra1

Я не специалист в PHP, но наличие функции mail() в коде предполагает наличие почтового сервера sendmail или что то вроде этого. Пусть специалисты меня подправят, если я ошибаюсь. Ну а вы, уважаемый ТС, копайте пока в сторону установки sendmail на openwrt.

ravdinve
()
Ответ на: комментарий от ravdinve

Спасибо! Я в php ничего не понимаю к сожалению, насчёт текста ошибки тоже не знаю как настроить, чтобы он отобразился

sgra1
() автор топика
Ответ на: комментарий от sgra1

sgra1

Спасибо! Я в php ничего не понимаю к сожалению, насчёт текста ошибки тоже не знаю как настроить, чтобы он отобразился

Я же вам ссылку скинул, там написано, как все сделать. Если хотите запустить сайт, то, похоже, придется разобраться. Как вариант, можно установить на компьютер Ubuntu Server и сразу же, в процессе установки выбрать LAMP и почтовый сервер.

ravdinve
()
Ответ на: комментарий от ravdinve

Array ( [type] => 8 [message] => Undefined variable: site [file] => /www1/thankyou.php [line] => 26 )

sgra1
() автор топика
Ответ на: комментарий от ravdinve

Кстати мне нужен не почтовый сервер, а почтовый клиент, который удалось настроить и который работает msmtp.

echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail -f 123@yandex.ru 123@yandex.ru
Один знающий человек мне подсказал, что можно через exec() вместо mail() настроить отправку писем, он протестировал, вроде заработало, осталось только переменные ввести в код и ошибку убрать, по его словам

sgra1
() автор топика
Ответ на: комментарий от sgra1

Ошибку убрать просто:

Строчку:

$_subject = "=?utf-8?b?" . base64_encode("Поступила заявка с сайта $site") . "?=";
Замените на строчку:
$_subject = "=?utf-8?b?" . base64_encode("Поступила заявка с сайта") . "?=";

ravdinve
()
Ответ на: комментарий от ravdinve

В общем, спасибо огромное за наводку с mail()

Когда я убираю $site появляется ошибка

Array ( [type] => 8 [message] => Undefined index: phone3 [file] => /www1/thankyou.php [line] => 9 )

И вместо команды:

if(mail($_to, $_subject, $mess, $_headers) == TRUE)

Мне посоветовали использовать:

if(exec(‘echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail -f 123@yandex.ru 123@yandex.ru’) == TRUE)
это для проверки работоспособности. Только как включить переменные данные с формы заявки? И что это за ошибка в 9 строке?

sgra1
() автор топика
Ответ на: комментарий от ravdinve

Всё заработало как надо)) Оказывается нужно было: 1) opkg install mstpd 2) В /etc/php.ini дописать для включения в php функии mail()

; Miscellaneous
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t"
expose_php = On

3) заполнить vi /etc/msmtprc данными своей почты

account yandex
host smtp.yandex.ru
port 587
protocol smtp
auth on
from 123456@yandex.ru
user 123456
password 123456
tls on
tls_starttls on
tls_certcheck off
account default : yandex
logfile /tmp/msmtp.log

4) Обязательно присвоить права пользователя назначенного для сервера: chown http /usr/bin/msmtp chown http /etc/msmtprc

sgra1
() автор топика
Ответ на: комментарий от sgra1

vi /etc/msmtprc нужно закомментировать #account default и #maildomain oursite.example иначе тоже ошибка будет при отправке

sgra1
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.