Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP-гостевая книга: Кирилица отображается вопросами "??????"
 
 автор: luthik64   (11.07.2008 в 09:44)   письмо автору
 
 

Здравствуйте!
Собрал по книге PHP5 Гостевую книгу.
Запустил- работает. Но Кирилица отображается вопросами "??????" при запуске index.php.
Проверил все кодировки в конфигурации PHP-Apache-MySQL, везде 1251.
Думал может где ошибка в созданных файлах.
Скачал у Вас на сайте Guestbook на базе MySQL, проверил, тоже самое.
Все что в HTML- выводится нормально, все что в PHP - одни вопросы.
Ответьте пожалуйста Новичку.
Может VISTA чудит. Хотя даже myAdmyn выглядит нормально и при установке
ни каких проблем не было.
Да совсем забыл- Все стоит на localhost (е)
Зарание спасибо.

   
 
 автор: ONYX   (11.07.2008 в 10:04)   письмо автору
 
   для: luthik64   (11.07.2008 в 09:44)
 

А ты новое сообщение добавить не пробовал?

   
 
 автор: luthik64   (11.07.2008 в 10:20)   письмо автору
 
   для: ONYX   (11.07.2008 в 10:04)
 

Спасибо.
Да пробовал, и в командной строке, и в браузере.
Кстати может скажешь, почему в формах, где пишем имя, email и т.д.
присутвстуют фрагменты кода.
Еще раз спасибо , что откликнулся.

   
 
 автор: Valick   (11.07.2008 в 10:25)   письмо автору
 
   для: luthik64   (11.07.2008 в 10:20)
 

присутвстуют фрагменты кода
это нотисы - ругаются на отсутствие переменных, если отображение предупреждений отключить, то будет всё нормально.
а с вопросикками - это в форум по МУСКУЛу.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=52271

   
 
 автор: luthik64   (11.07.2008 в 10:29)   письмо автору
 
   для: Valick   (11.07.2008 в 10:25)
 

Спасибо - попробую, поищу.

   
 
 автор: sim5   (11.07.2008 в 10:42)   письмо автору
 
   для: Valick   (11.07.2008 в 10:25)
 

Вы правы Valick в том, что это предупреждения, но не правы в том, что нужно их отключить и все в порядке.

to Luthik64. Вполне возможно, что в этой книге Гостевая подобная той, которая выложена на форуме в разделе download. Вся проблема от того, что в HTML-код формы помещаются значения принятых полей. Это для того, чтобы в случае ошибки, вернуть пользователю не пустую форму, а уже с ранее введенными данными. При первичном выводе формы, эти переменные не определены еще, отсюда и предупреждения.
Перепишите немного код, в начале которого инициализируйте эти переменные, например:

<?
//инициализируем переменную $name,
//которой присваивается значение поля name формы
//в дальнейшем (при проверке и т.д.) используем эту переменную  
$name = isset($_POST['name']) ? trim($_POST['name']) : "";
//а атрибут value поля name формы помещаем
//не =$_POST['name'], например, 
//а инициализированную переменную
?>
<input type="text" name="<? =$name?>" />  

Инициализация всех переменных, которые определяются полями формы, в начале кода, исключит появление подобных предупреждений, да и удобней будет работать.

   
 
 автор: luthik64   (11.07.2008 в 11:52)   письмо автору
 
   для: sim5   (11.07.2008 в 10:42)
 

Спасибо!
Буду разбираться дальше.
Пока сервер показывает мне ошибку, ссылаясь на строку с :
<input type="text" name="<? =$name; ?>" />
И еще, вы уже поняли, что общаетесь с начинающим.
Поэтому простите за вопрос : Редактировать файл addrec.php?

   
 
 автор: sim5   (11.07.2008 в 12:22)   письмо автору
 
   для: luthik64   (11.07.2008 в 11:52)
 

Если он ссылается на строку <input type="text" name="<? =$name; ?>" />, то вы просто "честно" ее скопировали себе без всякой связи. Мне трудно сказать, какой файл вам редактировать. Когда-то я смотрел гостевую выложенную в разделе закачек форума, правил что-то там, с учетом того, о чем я говорил выше, но где этот пост с прикреплением...
Приведите код вашей гостевой, но не весь, а только сам вывод формы.

   
 
 автор: luthik64   (11.07.2008 в 12:38)   письмо автору
 
   для: sim5   (11.07.2008 в 12:22)
 

Если я правильно понял :
<form action=addrec.php method=post>
<input type=hidden name=sid_add_theme value='<?php echo $sid_add_theme; ?>'>
<input type=hidden name=action value=post>
<table><tr valign="top"><td width="25%">&nbsp;</td><td>
<table border="0" align="center" cellpadding="6" cellspacing="0">
И еще столбец:
<td><input type=text name=name maxlength=32 size=25 value='<? echo $name; ?>'></td>

   
 
 автор: sim5   (11.07.2008 в 12:52)   письмо автору
 
   для: luthik64   (11.07.2008 в 12:38)
 

Вставляя код, пользуйтесь ВВ-кодом [соde][/соde], для его выделения - он лучше читается на странице (над формой справа).
Ну а теперь, посмотрите в файле addrec.php: $sid_add_theme, $name и др., определяются ли они до того, как будут помещены в форму - echo. Имеется ввиду, не после проверки формы при получении ее, а первый вывод формы на страницу. В этом и ответ - откуда предупреждения. Как их устранить, я уже сказал.

   
 
 автор: luthik64   (16.07.2008 в 10:50)   письмо автору
 
   для: sim5   (11.07.2008 в 12:52)
 

>Вставляя код, пользуйтесь ВВ-кодом [соde][/соde], для его выделения - он лучше читается на странице (над формой справа).
>Ну а теперь, посмотрите в файле addrec.php: $sid_add_theme, $name и др., определяются ли они до того, как будут помещены в форму - echo. Имеется ввиду, не после проверки формы при получении ее, а первый вывод формы на страницу. В этом и ответ - откуда предупреждения. Как их устранить, я уже сказал.

От luthik64:

Здравствуйте еще раз!
Проверил весь файл, перерыл всю книгу и понял(надеюсь правильно) - определяют.

session_start();
$sid_add_theme = session_id();


if($sid_add_theme != $_POST['sid_add_theme'])

Если я ошибаюсь - ответьте пожалуйста, для меня это важно.
А пока заработало, т. к. изменил значение в php.ini на следующее:

error_reporting = E_ALL & ~E_NOTICE

Заранее благодарен.

   
 
 автор: sim5   (16.07.2008 в 11:30)   письмо автору
 
   для: luthik64   (16.07.2008 в 10:50)
 

1. Забудьте об непосредственной правке php.ini - никакой хостер вам не даст этого делать.
2. Смысл всего в том, что на этапах отладки, а уж тем более только начиня изучать РНР, не надо глушить нотайсы. Вот когда будете понимать чем они вызваны, имеет ли это "нехорошее" последствие, тогда вы уже будете вольны поступать так, но зная, что вы делаете.
3. Касаемо представленного кода, то это совсем не та проверка, о которой говорил я.

   
 
 автор: luthik64   (16.07.2008 в 11:58)   письмо автору
 
   для: sim5   (16.07.2008 в 11:30)
 

Спасибо !

Я понял, что не правильно всё сделал.
Пока у меня всё на локальном хосте, думаю, что вреда никому не причиню.
Но понимаю важность Вами сказаного.

И похоже,что я в тупике. Просто не понимаю как всё это проверить.
Может подскажете направление, в котором надо действовать.
Прошел по всем файлам гостевой книги но ничего подобного не нашел.
Даже установил книгу скачанную с сайта - результат, тот - же.

   
 
 автор: sim5   (16.07.2008 в 13:05)   письмо автору
 
   для: luthik64   (16.07.2008 в 11:58)
 

Вы спрашивали - почему в полях формы появляется код. Это (насколько я помню код этой гостевой) результат вывода сообщения о том, что не определена переменная... Это сообщение не приведет к катастрофе, и если заглушить вывод нотайсов, то вы его не увидите в форме. Либо делать надо так, чтобы определять переменные. Кстати, инициализация переменных, вернее привычка делать это, уменьшает вероятность допущения более грубых ошибок, которые могут привести к плачевным результатам. Вы еще придете к этому вопросу в последствии. Вот пример для данной ситуации:

<form action="" method="post">
<input type="text" name="as" value="<?php =$_POST['as']; ?>">
<input type="submit" value="Send">
</form>

В поле формы вы увидете сообщение, что... Теперь поступим так:

<?php
$val 
= isset($_POST['as']) ? $_POST['as'] : "";
?>
<form action="" method="post">
<input type="text" name="as" value="<?php =$val?>">
<input type="submit" value="Send">
</form>

В общем надо задавать вопрос почему, находить ответ, затем принимать решение как поступить. И пока вы не знаете много почему, не спешите поступать, пока не найдете ответов.

   
 
 автор: Valick   (11.07.2008 в 12:32)   письмо автору
 
   для: sim5   (11.07.2008 в 10:42)
 

Спасибо, я просто неправильно выразился. "Всё в порядке" - это лишь то что в полях формы нотисы пропадут (мало было времени на ответ... Мазду6 пригнали надо было сделать видимость бурной работы).
Вобщем РНР язык который требует самодисциплины.

   
 
 автор: sim5   (11.07.2008 в 12:46)   письмо автору
 
   для: Valick   (11.07.2008 в 12:32)
 

Нельзя советовать начинающим "глушить" нотайсы, так и не поняв, почему они возникают. Именно это может породить привычку писать "грязно", что неменуемо приведет когда либо к серьезной ошибке. Впрочем даже и вам (знающему), в процессе отладки, не стоит "глушить" все что непопадя. Отладив, можно и "заглушить".)

   
 
 автор: Valick   (11.07.2008 в 13:19)   письмо автору
 
   для: sim5   (11.07.2008 в 12:46)
 

Сам-то я не "глушу", год назад эта тема "горячё" обсуждалась.

   
 
 автор: mihdan   (16.07.2008 в 10:56)   письмо автору
 
   для: luthik64   (11.07.2008 в 09:44)
 

<?php
error_reporting
(E_ALL & ~E_NOTICE );
?>


После входа в mysql необходимо настроить кодировку соединения сервера с клиентом при помощи запроса:

SET NAMES cp1251; 

   
 
 автор: luthik64   (16.07.2008 в 11:10)   письмо автору
 
   для: mihdan   (16.07.2008 в 10:56)
 

Добрый день !

А так нельзя ?

// Устанавливаем соединение с базой данных
include "config.php";
$error = "";
$action = "SET NAMES cp1251";]


Вроде всё работает.

   
 
 автор: mihdan   (16.07.2008 в 11:13)   письмо автору
 
   для: luthik64   (16.07.2008 в 11:10)
 

Это вообще что?

   
 
 автор: luthik64   (16.07.2008 в 11:19)   письмо автору
 
   для: mihdan   (16.07.2008 в 11:13)
 

Начало файла addrec.php в гостевой книге.

   
 
 автор: mihdan   (16.07.2008 в 11:23)   письмо автору
 
   для: luthik64   (16.07.2008 в 11:19)
 

cp1251";] 
я про это

   
 
 автор: luthik64   (16.07.2008 в 11:30)   письмо автору
 
   для: mihdan   (16.07.2008 в 11:23)
 

Простите начинающего.
Если Вы имеете ввиду квадратную скобку,
то это опечатка в сообщении.
Не досмотрел.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования