Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2016, 21:04   #1
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию Форма обратной связи с капчей

Добрый вечер! Из-да незнания java вынужден обратиться к вам за помощью, прошу уделить мне немного времени. На обычном html сайте есть вот такая форма обратной связи:
Код HTML:
					<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
						<div class="row">
							<div class="col-sm-6>
								<div class="form-group">
									<input type="text" class="form-control" required="required" placeholder="Имя" name="name" id="name">
								</div>
							</div>
							<div class="col-sm-6>
								<div class="form-group">
									<input type="text" class="form-control" required="required" placeholder="Email адрес" name="email" id="email">
								</div>
							</div>
						</div>
						<div class="row">
							<div class="col-sm-12">
								<div class="form-group">
									<textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Сообщение"></textarea>
								</div>
								<div class="form-group>
									<button type="submit" class="btn btn-danger">Отправить сообщение</button>
								</div>
							</div>
						</div>
					</form>
Файл sendemail.php:

PHP код:
<?php
    header
('Content-type: application/json');
    
$status = array(
        
'type'=>'success',
        
'message'=>'Сообщение доставлено!'
    
);

    
$name = @trim(stripslashes($_POST['name'])); 
    
$email = @trim(stripslashes($_POST['email']));  
    
$message = @trim(stripslashes($_POST['message'])); 

    
$email_from $email;
    
$email_to 'почта@yandex.ru';

    
$body 'Имя:' $name "\n" 'Email-адрес: ' $email "\n\n" 'Сообщение: ' $message;

    
$success = @mail($email_to'Сообщение с сайта'$body'От: <'.$email_from.'>');

    echo 
json_encode($status);
    die; 
?>
java код:
PHP код:
    var form = $('.contact-form');
    
form.submit(function () {
        
$this = $(this);
        $.
post($(this).attr('action'), function(data) {
            
$this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
        },
'json');
        return 
false;
    }); 
Во-первых, почему-то письма приходят пустыми, т.е. не написано от кого, что за почта и нет самого текста сообщения.
И вторая проблема заключается в том, что мне надо встроить какую-нибудь капчу. Хотя бы просто вставить какую-нибудь галочку, по нажатию на которую активировалась бы кнопка отправки письма. Ну или можно картинку с буквами.

Помогите, пожалуйста, очень прошу )
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 06.06.2016, 21:28   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Привет. Только не называйте JavaScript JAVA. Этож языки разные. Ато в мея аж клинит кодга пытаюсь вникнуть в проблемц =).

Так а по коду, вот:

В разметке было пропущено парочку ковычек. ( " );

Код:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <input type="text" class="form-control" required="required" placeholder="Имя" name="name" id="name">
            </div>
        </div>
        <div class="col-sm-6">
            <div class="form-group">
                <input type="text" class="form-control" required="required" placeholder="Email адрес" name="email" id="email">
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-12">
            <div class="form-group">
                <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Сообщение"></textarea>
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-danger">Отправить сообщение</button>
            </div>
        </div>
    </div>
</form>

Попробуйте выполнить вот такой PHP и посмотрите что вам там пришло ПОСТОМ.


PHP код:
 <?php

    
echo '<pre>';

    
print_r($_POST);

    echo 
'</pre>';

    exit();


    
header('Content-type: application/json');
    
$status = array(
        
'type'=>'success',
        
'message'=>'Сообщение доставлено!'
    
);

    
$name = @trim(stripslashes($_POST['name'])); 
    
$email = @trim(stripslashes($_POST['email']));  
    
$message = @trim(stripslashes($_POST['message'])); 

    
$email_from $email;
    
$email_to 'почта@yandex.ru';

    
$body 'Имя:' $name "\n" 'Email-адрес: ' $email "\n\n" 'Сообщение: ' $message;

    
$success = @mail($email_to'Сообщение с сайта'$body'От: <'.$email_from.'>');

    echo 
json_encode($status);
    die; 
?>

А на счет JavaScript. Дак он у вас вообще не прикручен. Просто в стороне лежить себе. Нет никакого вызова.

Но это пока что и не страшно. Главное что-бы все правильно отправлялось. А прикрутить JS мы всегда успеем.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 06.06.2016 в 21:31.
pompiduskus вне форума Ответить с цитированием
Старый 07.06.2016, 07:01   #3
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Каптчу можно например от гугла встроить: https://www.google.com/recaptcha/intro/index.html
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 07.06.2016, 10:24   #4
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

pompiduskus, кавычки забыл, потому что удалял от туда лишние css, чтобы не мозолили глаза, так то все ок там.
Цитата:
Попробуйте выполнить вот такой PHP
Попробую, отпишусь.
Цитата:
А на счет JavaScript. Дак он у вас вообще не прикручен. Просто в стороне лежить себе. Нет никакого вызова.
Да прикручен. Код лежит в отдельном файле вместе с остальными скриптами, файл прописан в html.

Цитата:
Каптчу можно например от гугла встроить: https://www.google.com/recaptcha/intro/index.html
Спасибо, надо будет попробовать, но сперва надо разобраться почему письма пустые приходят...
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 07.06.2016, 18:37   #5
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Блин а как капчу то подключить от гугла? Зарегил сайт, вставил в html <script src='https://www.google.com/recaptcha/api.js'></script> и саму капчу со своим кодом:
<div class="g-recaptcha" data-sitekey="...."></div>
Что дальше делать? Капча то не работает? Я спокойно отправляю письма без её участия.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 07.06.2016, 18:44   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Автор давай колись, Где ты спрятал свою машину времени ???


http://programmersforum.ru/showthread.php?t=279488


Вы сами же и решили эту пролему ровно год назад. А теперь опять теже файлы подняли,и опять ищите ошибку!

Цитата:
Сообщение от Polotenchik Посмотреть сообщение
Вопрос решен. Проблема была в js
Заменил на
PHP код:
$('.contact-form').submit(function () {'use strict',
    
$this = $(this);
    $.
post("sendemail.php", $(".contact-form").serialize(),function(result){
        if(
result.type == 'success'){
            
$this.prev().text(result.message).fadeIn().delay(3000).fadeOut();
        }
    });
    return 
false;
}); 
и все ок.

Не, ну а если серъезно ! Ты где машину времени паркуешь ? Яб посмотрел на не.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 07.06.2016 в 18:48.
pompiduskus вне форума Ответить с цитированием
Старый 07.06.2016, 19:00   #7
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

))) Дело в том, что я переделал от и до сайт (как раз тот, что делал год назад) и этот код, который удачно работал весь год, почему-то перестал работать. Начал опять искать ошибку. А сейчас опять попробовал его и он заработал! Не знаю, может что-то не так сделал, но сейчас все заработало. Теперь вот понять бы, как капчу прикрутить.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 07.06.2016, 22:57   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Ну так сервер ваш спрашивает у гугла ввёл ли капчу конкретный юзер? Там же вроде довольно хорошо описан метод работы капчи...
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 08.06.2016, 13:58   #9
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Ну так сервер ваш спрашивает у гугла ввёл ли капчу конкретный юзер? Там же вроде довольно хорошо описан метод работы капчи...
А как узнать спрашивает или нет? ) Можно для тупых разжевать? )
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 09.06.2016, 06:10   #10
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Ну вот же https://developers.google.com/recaptcha/docs/verify
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма обратной связи IuliiaN PHP 0 08.01.2016 20:44
Форма обратной связи Василий1985 PHP 3 20.03.2014 11:03
форма обратной связи Ol'ga PHP 3 01.03.2013 12:40
Форма обратной связи margo_31 Помощь студентам 6 20.09.2009 20:38
Форма обратной связи belvision PHP 5 10.11.2008 16:57