Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не приходит письмо на почиу. (https://javascript.ru/forum/misc/43955-ne-prikhodit-pismo-na-pochiu.html)

Batyabest 27.12.2013 22:31

Не приходит письмо на почиу.
 
Привет.
Написал код для отправки письма на почту. но письмо на почту не приходит, где ошибка?

<form id="first_form" onsubmit="sendForm(); return false;">
<input type="text" name="telephone">
<input type="submit" name="submit" value="Отправить форму">
</form>


function sendForm() {
$.post('send.php', $('#first_form').serialize());
}


И код файла обработчика.
if($_POST['telephone']) { 
 
        $phone = substr(htmlspecialchars(trim($_POST['telephone'])), 0, 20); 
 
        // $to - кому отправляем 
        $to = 'info@test.ru'; 
        // $from - от кого 
        $from='test2@test.ru'; 
        // функция, которая отправляет наше письмо. 
        mail($to, $phone, 'From:'.$from); 
        echo 'Спасибо! Ваше письмо отправлено.'; 
}

Rise 27.12.2013 22:54

Пропущены обязательные параметры: mail

Batyabest 27.12.2013 22:59

Переписал код так. Все равно тишина на почте. В строке адресной появляется POST запрос. И все.

$subject = "Письмо";


if($_POST['telephone']) { 
 
        $phone = substr(htmlspecialchars(trim($_POST['telephone'])), 0, 20); 
 
        // $to - кому отправляем 
        $to = 'info@test.ru'; 
        // $from - от кого 
        $from='test2@test.ru'; 
        // функция, которая отправляет наше письмо. 
        mail($to, $subject, $phone); 
        echo 'Спасибо! Ваше письмо отправлено.'; 
}

Rise 27.12.2013 23:12

А что за почта? На локальном хосте поди сайт то, так он и не отправит на почту там заглушка...

Batyabest 27.12.2013 23:15

batyamail@yandex.ru

Batyabest 27.12.2013 23:30

Мог бы и повежливее быть. Подключено у меня все. Консоль так говорит.

Rise 27.12.2013 23:37

На локальной хосте проверяешь?

Batyabest 27.12.2013 23:38

нет, в инете. Сейчас все перенес на отдельный файл - все работает. А подключаю в страницу - не отправляется. У меня Joomla, там может быть заморочка с mootools? Как разрулить это?

Batyabest 27.12.2013 23:56

Так. Сейчас напишу что у меня тут происходит.
По нажатию на кнопку отправить в адресной строке добавляется ?telephone=4521&submit=Отправить+форм у

В консоли Chrome я ввел скрипт для проверки подключения jQuery:

var msg;
if (window.jQuery) {
msg = 'You are running jQuery version: ' + jQuery.fn.jquery;
} else {
msg = 'jQuery is not installed';
}
alert(msg);

Написала что все подключено - версия 1.9.0.


Но письмо на почту не приходит. Все дело я думаю в jquery. Кто что подскажет?

danik.js 28.12.2013 00:06

Ну сколько можно же! mootools использует тоже знак доллара.
Так что доллар в глобале ссылается на функцию мутулза.
Прокидывай в анонимную функцию глобальный объект jQuery:

(function($){
    alert($.fn.jquery);
})(jQuery);


А вобще, тебе и мутулза хватит запостить форму. Используй new Request() вроде-бы, смотри документацию по мутулзу.
Сериализации в мутулзе может не быть (ходя должна быть наверное), но тебе и сериалзиовать то нефиг - одно поле. Можешь вручную это сделать. Для расширения кругозора, чтоб не клинило на jQuery, полезно будет!

Batyabest 30.12.2013 13:45

Спасибо за совет. Все сделал на mootools. Все работает хорошо. Только вот не знаю, как сделать валидацию на mootools.

danik.js 30.12.2013 14:33

Ну попытайся чтоли. Показывай что есть.

Batyabest 30.12.2013 20:38

пока только вот что смог сделать:
$_POST['phone'] = preg_replace('/[^0-9]/u', '', $_POST['phone']);
$phone = substr(htmlspecialchars(trim($_POST['phone'])), 0, 20);

echo '<script>$(\'phone\').set(\'value\', '.($_POST['phone']).');</script>';


А как сделать валидацию "на лету"?

danik.js 30.12.2013 21:31

Это не валидация, а нормализация что-ли.
phone = phone.replace(/[^0-9]/g, '').substring(0, 20);


Часовой пояс GMT +3, время: 02:44.