Здравствуйте! Подскажите, вот имеется скрипт с отправкой сообщения на почту. Но при обновление страницы сообщение отправляется повторно. Как от этого избавиться?
Добрый день, Павел! Судя по тому что, Вы открыли новую тему о том же, Вам не удалось найти решение.
Знаки вопроса вместо русского текста выдаются из-за того, что кодировка страницы UTF-8, а текст вероятно в windows-1251.
Вы можете либо поменять кодировку страницы (как см. тему "Проверка сессии и вывод имени") либо перекодировать текст в UTF-8
Для перкодировки попробуйте использовать функцию:
PHP:
скопировать код в буфер обмена
function DicCodeToUTF($sp, $str){
$code=($sp=="ru")?"windows-1251":"iso-8859-1";
return mb_convert_encoding($str, "utf-8", $code);
}
Возможно, что у Вас входная кодировка не "windows-1251".
Если не получится поменяйте на свою.
Удачи!
Решил просто закинуть на все форумы которые знаю, так как решение пока не могу найти))
Да, все верно, текст в 1251, а на странице стоит UTF-8 без BOM. Задать кодировку всей странице не получается, так как весь остальной текст начинает криво отображаться. Попробую с помощью функции! Спасибо!
Доброго дня! Сделал вывод русского текста из таблицы phpmyadmin, но на выходе получились знаки вопроса. Подскажите, в чем может быть дело, или может как правильно подставить функция iconv?
По-опыту. Если в PHP-файле перед первым "<?" есть хотя бы один пробел, то
ini_set("default_charset", "windows-1251") работать не будет.
Проверьте, пожалуйста, есть ли у Вас в PHP:
header("Content-Type: text/html; charset=windows-1251'', true);
и в HTML:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Здесь это работает на PHP7:
https://www[dot]alto-booking[dot]com
Если не поможет, то попробуйте поставить mysqli_set_charset
перед mysqli_query
Удачи!
Спасибо огромное! Имя теперь отображается нормально, но вот все остальное превращается в каракули. Попробовал все функции, что Вы подсказали.
Доброе утро! У Вас кодировка PHP - UTF-8.
Попробуйте вставить в PHP-код обязательно до <html>(также пробелов и пустых строк не должно быть) cтроку:
PHP:
скопировать код в буфер обмена
ini_set("default_charset", "windows-1251");
или если языков несколько, например, $_GET['sp'] ru,de,en
PHP:
скопировать код в буфер обмена
Добрый вечер! Извините, я не увидел запись в COOKIE в коде "там где проверка и запись в COOKIE:"
У Вас значения передаются через сессию и для этого в первом коде должен быть session_start();
перед:
$_SESSION['password'] = $password;
$_SESSION['login'] = $login;
$_SESSION['id'] = $result['id'];
Спасибо большое! Там стоит сессия выше, не прописал просто.
Проблему решил, но теперь появилась другая, с кодировкой. Вместо русского текста вылезают знаки вопроса. Функция iconv не помогает
Уважаемые форумчане! Есть такая проблема. Не могу вывести FIO при входе на сайт. В БД вся информация находится в одной таблице. ФИО, логин, пароль. Есть скрипт проверки пароля и логина. И при авторизации вывожу логин, но надо что бы вместо логина выводилось FIO из БД.
Для начала нужно определиться, чего именно хочется. Отправить с перезагрузкой страницы (т.е. как настоящая форма) или без перезагрузки (т.е. как аякс).
Если первое, то опять два варианта. Методом GET наверно совсем просто. Создать нужную ссылку и перейти по ней. Но <textarea> передавать гетом наверно не совсем хорошо. Тогда POST, как это сделать достаточно просто - не знаю. А если сложно - создать джавасктиптом невидимую форму, в нее вписать нужные данные и вызвать нужный метод. Хотя не понятно, почему бы не сделать нормальную форму, тогда все будет намного проще.
Теперь второе, т.е. без перезагрузки. Тут тоже два вариатна - использовать аякс, или не использовать аякс. В аяксе я не силен, это не ко мне, а без аякса - подгрузить фиктивную картинку или скрипт, где опять же в src указать адрес с параметрами, в которые запихнуть данные.
Короче, дело не простое, и для начала нужно понять, а чем собственно нормальная форма не нравится.
С формой не получается, так как из за нее обновляется страница, а мне нужно что бы заявка отправилась и окно при этом не закрывалось