Здравствуйте, вот я написал небольшой сайт работающий без перезагрузки страниц, с использованием jquery, Но есть проблемы: 1. с кодировкой, я на всех страницах ставил кодировку на windows-1251, и когда заходишь на сайт в браузере, сначала нормально отображается, но когда переходишь к другим ссылкам отображает квадратики или вопросики, 2. с формой обратной связи, оно по идее конечно должен отправить данные на указанную почту, (почта на мейл.ру), приходит письмо, но без никаких данных, который указывал пользователь, вот оно: Ваше имя: = (Здесь пусто!) Ваш-mail: = Контактный телефон: = Описание = Host: 195.38.174.108 Time: 10:07:16 on 8/01/12 как решить проблемы помогите пожалуйста,,, (((, Заранееблагодарен
По поводу кодировки: попробуй в самом-самом начале скриптов, которые отдают браузеру ответы на jQuery-запросы добавить отправку заголовка с явным указанием кодировки: header('Content-type: text/html; charset=Windows-1251'); Если не прокатит, то, видимо, придётся в этих скриптах перед отправкой данных преобразовывать их в UTF-8 и ставить соответствующий заголовок. По поводу пустого письма: мы тут понятия не имеем, что там у тебя за скрипт, что ты там накодил такое. И, по-этому, понятия не имеем, почему поля в отправляемом письме пустые и подсказать что-либо сложно.
А какой смысл писать такой сайт? Эксперимент? Это просто страница с динамическим контентом, не сайт. Поисковик запомнит только то, что загрузилось в виде html, проиндексирует только главную страницу. 1. Про кодировку уже (почти) все поняли, что лучше использовать utf-8. С ajax загрузкой контента (в твоем случае других страниц внутрь главной страницы) будет меньше проблем. 2. Насчет формы обратной связи - без конкретного кода никто не догадается, как ты реализовал отправку email ) PS. Эх, sobachnik опередил.
<? header('Content-type: text/html; charset=utf-8'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>................</html> вот так правильно? и насчет формы отправки давайте я вам отправлю код в ЛС...
Что значит "безопасно"? Многие показывают - ничего, вроде, не жаловались потом. Но в принципе, если кто-то посмотрит твой код, найдёт в нём большую проблему и не напишет тебе об этом, а захочет воспользоваться для своих личных целей (при этом будет знать адрес твоего сайта, на котором этот код работает) - то да, у него будет такая возможность. Может всё сломать, стереть всё из б.д. или "вирусный JavaScript" какой-нибудь приделать и т.п., в зависимости от того, что именно за проблема в коде. Но обычно весь код не вываливают на форум. Кому захочется копаться в большой-большой куче кода за бесплатно? Да ещё и написанного новичком - а значит высока вероятность того, что код плохо оформлен и вообще содержит много всяких... "странных конструкций" Когда есть конкретный вопрос - показывают конкретный фрагмент кода, в котором происходит то самое что-то непонятное, о чём задаётся вопрос. Обычно достаточно 20-30 строчек. Бывает и 2-3 строк достаточно, чтобы найти проблему.
Код нужно сюда по-любому, а не в ЛС. У меня сейчас сервер не работает, и в приоритете дети и жена. Так что быстро потестировать не смогу. Из того, что бросилось в глаза сразу. Вот так проверять наличие переданных параметров не хорошо. PHP: <?php if ($_POST['imya'] != "" && $_POST['email'] && $_POST['opisanie'] ) { //другой код } Сначала нужно удостовериться, что параметры вообще есть, потом проверить их на пустоту (или лучше на количество символов, или лучше очистить сначала от мусора): PHP: <?php if(isset($_POST['imya']) && isset($_POST['email']) && isset($_POST['opisanie']) && !empty($_POST['imya']) && strlen(trim($_POST['email']))>4 && strlen($_POST['opisanie'])>2){ //код } Второе, что бросилось в глаза, переменные не проинициализированы перед применением. Где-то вначале нужно присвоить им хоть нули хоть пустые строки.
Проблема в том, что ты используешь несуществующие переменные. Время register_globals уже давно прошло. Нужно указывать конкретно $_POST, $_GET и т.п., а не просто название переменной. То есть не PHP: <?php // ... $body=" Ваше имя: = $imya Ваш e-mail: = $email Контактный телефон: = $phone Описание = $opisanie Host: $host Time: $ts"; , а: PHP: <?php // ... $body=" Ваше имя: = " . $_POST['imya'] . " Ваш e-mail: = " . $_POST['email'] . " Контактный телефон: = " . $_POST['phone'] . " Описание = " . $_POST['opisanie'] . " Host: $host Time: $ts";
Благодарю за помощь, уже отправляет на почту, но вот такие непонятные данные: п▓п╟я┬п╣ п╦п╪я▐: = п▒п╣п╨я┌я┐я─ п▓п╟я┬ e-mail: = wwwbekikg@gmail.com п п╬п╫я┌п╟п╨я┌п╫я▀п╧ я┌п╣п╩п╣я└п╬п╫: = 0556580802 п·п©п╦я│п╟п╫п╦п╣ = п▒п╦я│п╪п╦п╩п╩п╟я┘п╟я─я─п╟я┘п╪п╟п╫п╦я─я─п╟я┘п╦п╧п╪, п©п╬п╤п╟п╩я┐п╧я│я┌п╟ я│я─п╟п╠п╟я┌я▀п╡п╟п╧ ... Host: 212.42.100.172 Time: 12:13:08 on 9/01/12 Как решать, по моему пробл с кодировкой???
Четвёртым параметром в функцию mail() передаются заголовки, которые должны быть отправлены вместе с письмом. Вот передавай туда одним из заголовков кодировку твоего письма. Примеры тут: http://ru2.php.net/manual/ru/function.mail.php
Супер сработало, спасибо вам большое... сделал так: $email = "From: Form <$to>" . "\r\n"; $email .= 'Content-type: text/html; charset=utf-8' . "\r\n";