EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

GET запрос путем XMLHttpRequest
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> JavaScript, AJAX
GET запрос путем XMLHttpRequest
Автор Сообщение
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Чт, 12 Мар, 2009 18:57    Заголовок сообщения: GET запрос путем XMLHttpRequest Ответить с цитатой

Добрые сутки!
Код:

   var url = "/libs/mail.php?sender="+escape(senderEmail)+"&name="+escape(senderName)      +"&message="+escape(messageBody);
   request.open("GET", url, true);

дан код. естественно request = new XMLHttpRequest. Он передает данные PHP. Вот как выглядит скрипт.
Код:

$text = "Доброе время суток!\n С формы обратной связи сайта ****** было написано следующее сообщение. \n"
      .urldecode ($_GET["message"])."\n Адрес отправителя: ".urldecode($_GET["sender"]).". Имя: ".urldecode($_GET["name"]).".\n Всего доброго";
$isSend = mail($address, $subject, $text, "Content-type=text/plain; charset=windows-1251");

реализация работает. вот только в теле письма постоянно вместо данных одна хрень в виде url данных, типа %u0444%u043E%u043C%u043A%u0430. Так тока с киррилицей, латиница все в порядке.
Что делать? что не так?
простите но тока учусь JavaScript и AJAX так что не пинайте сильно, а просто подскажите.
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5123

44732 Монеты

СообщениеДобавлено: Чт, 12 Мар, 2009 22:57    Заголовок сообщения: Ответить с цитатой

Roma-i-alena
а накой там urldecode?.. 0o
_________________

А ведь еще не поздно смотаться на Азовское море, согреться на солнышке...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 08:08    Заголовок сообщения: Ответить с цитатой

Да эт я пробовал и так и так уже. не работает и с urldecode и без него.
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 08:28    Заголовок сообщения: Ответить с цитатой

Roma-i-alena,
encodeURIComponent в JS попробуй! Wink

urldecode впринципе ненужен. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 10:28    Заголовок сообщения: Ответить с цитатой

encodeURIComponent
Чет я не пойму, как JS код использовать в php скрипте? это просто скрипт, без html и т.д., он даже в браузер не попадает, просто отправляет почту с заданными параметрами.
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 10:56    Заголовок сообщения: Ответить с цитатой

Roma-i-alena,
да уж...
Код:
var url = "/libs/mail.php?sender="+encodeURIComponent(senderEmail)+"&name="+encodeURIComponent(senderName)      +"&message="+encodeURIComponent(messageBody);


При чем тут пхп? encodeURIComponent -- JavaScript функция.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 11:58    Заголовок сообщения: Ответить с цитатой

так функция то, раскодирует и в GET пойдет обычный текст с пробелами и кирилицей. сами вы, да уж...
Цитата:
encodeURIComponent -- JavaScript функция.

это я и спрашивал, в том то и вопрос был, если вы не поняли, что декодировать нужно после того, как данные попадут в скрипт отправки писем.
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 13:58    Заголовок сообщения: Ответить с цитатой

Roma-i-alena,
Нужно перед отправкой данные заэнкодить этой функцией,
как я выше написал, а в пхп ничего ненадо разенкодивать, пхп
сам все автоматически подгатавливает... Wink

Вот пример:
backend.php
Код:
<?php
echo "Hello, {$_REQUEST['name']}!";
?>


fronted.js
Код:
var xmlhttpreq = new XMLHttpRequest();
xmlhttpreq.open('GET', 'backend.php?name='+encodeURIComponent("some_name"), true);
xmlhttpreq.onreadystatechange = function() {
  if (this.readyState == 4) {
     if(this.status == 200) {
       alert(this.responseText);
     }
  }
};
xmlhttpreq.send(null);

http://test.systemnik.net.ru/ajax/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 15:15    Заголовок сообщения: Ответить с цитатой

ага =)
улыбнуло. Латиница и так передаеться, без всяких кодов и декодов, а вы вот попробуйте подсунуть туда кирилицу.
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 15:31    Заголовок сообщения: Ответить с цитатой

И кирилица прекрастно... Cool http://test.systemnik.net.ru/ajax/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 15:52    Заголовок сообщения: Ответить с цитатой

простите.
Тогда, ткните носом. Чет я не пойму!!!
Код:
function sendMess () {
   var senderName = document.getElementById("name").value;
   var senderEmail = document.getElementById("mail").value;
   var messageBody = document.getElementById("message").value;
   var url = "/libs/mail.php?sender="+encodeURIComponent(senderEmail)
                           +"&name="+encodeURIComponent(senderName)
                           +"&message="+encodeURIComponent(messageBody);
   request.open("GET", url, true);
   request.onreadystatechange = isSend;
   request.send(null);
}

Форма в html файле

Код:

                <form>
                   <p><input type="text" size="25" id="name"/> Как вас зовут?</p>
                    <p><input type="text" size="25" id="mail"/> Ваш email</p>
                    <textarea rows="4"  cols="40" id="message"></textarea>
                    <p><input type="button" value="Отправить" onclick="sendMess();"/></p>
                </form>

спасибо
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5123

44732 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 15:57    Заголовок сообщения: Ответить с цитатой

Roma-i-alena
в PHP?
_________________

А ведь еще не поздно смотаться на Азовское море, согреться на солнышке...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 16:26    Заголовок сообщения: Ответить с цитатой

Цитата:
простите.

нестоит... ничего страшного Wink
Цитата:
request.onreadystatechange = isSend;

Код функции isSend? Wink

PHP код покажите Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Roma-i-alena
11 1110 1000
11 1110 1000


Зарегистрирован: 03.05.2007
Сообщения: 1169
Откуда: vladimir
8115 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 17:06    Заголовок сообщения: Ответить с цитатой

Код:
function isSend () {
   if (request.readyState == 4) {
      if (request.status == 200) {
         var answer = request.responseText;
         if (answer == 1) {
                document.forms[0].reset();
            alert ("Спасибо большое. Ваше сообщение отправлено");
         } else {
            alert ("К сожалению ваше сообщение не отправлено. Попробуйте еще раз");
         }
      } else
           alert ("Error! Request status is " + request.status);
   }
}


Код:
<?php
//Файл для отправки сообщений с формы обратной связи
$address = "****@******.***";
$subject = "Сообщение с сайта ******";
$text = "Доброе время суток!\n С формы обратной связи сайта ****** было написано следующее сообщение. \n"
      .$_GET["message"]."\n Адрес отправителя: ".$_GET["sender"].". Имя: ".$_GET["name"].".\n Всего доброго";
$isSend = mail($address, $subject, $text, "Content-type=text/plain; charset=windows-1251");
echo $isSend;
?>



только после замены escape на encodeURIComponent - вместо предидущих знаков в теле письма пошли вот такие кракозябры Просто тест, может Михалицын Рё прав?
_________________
Жизнь никогда не заканчивается!!!
На то, собственно говоря, она и ЖИЗНЬ...
____________________________________
http://www.coderun.ru - Блог человека
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 924

23430 Монеты

СообщениеДобавлено: Пт, 13 Мар, 2009 17:29    Заголовок сообщения: Ответить с цитатой

Roma-i-alena,
уберите явное указание кодировки письма или замените её на utf-8. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> JavaScript, AJAX Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3

 


Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group