|
|
|
| Здравствуйте!
Собрал по книге PHP5 Гостевую книгу.
Запустил- работает. Но Кирилица отображается вопросами "??????" при запуске index.php.
Проверил все кодировки в конфигурации PHP-Apache-MySQL, везде 1251.
Думал может где ошибка в созданных файлах.
Скачал у Вас на сайте Guestbook на базе MySQL, проверил, тоже самое.
Все что в HTML- выводится нормально, все что в PHP - одни вопросы.
Ответьте пожалуйста Новичку.
Может VISTA чудит. Хотя даже myAdmyn выглядит нормально и при установке
ни каких проблем не было.
Да совсем забыл- Все стоит на localhost (е)
Зарание спасибо. | |
|
|
|
|
|
|
|
для: luthik64
(11.07.2008 в 09:44)
| | А ты новое сообщение добавить не пробовал? | |
|
|
|
|
|
|
|
для: ONYX
(11.07.2008 в 10:04)
| | Спасибо.
Да пробовал, и в командной строке, и в браузере.
Кстати может скажешь, почему в формах, где пишем имя, email и т.д.
присутвстуют фрагменты кода.
Еще раз спасибо , что откликнулся. | |
|
|
|
|
|
|
|
для: luthik64
(11.07.2008 в 10:20)
| | присутвстуют фрагменты кода
это нотисы - ругаются на отсутствие переменных, если отображение предупреждений отключить, то будет всё нормально.
а с вопросикками - это в форум по МУСКУЛу.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=52271 | |
|
|
|
|
|
|
|
для: Valick
(11.07.2008 в 10:25)
| | Спасибо - попробую, поищу. | |
|
|
|
|
|
|
|
для: 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; ?>" />
|
Инициализация всех переменных, которые определяются полями формы, в начале кода, исключит появление подобных предупреждений, да и удобней будет работать. | |
|
|
|
|
|
|
|
для: sim5
(11.07.2008 в 10:42)
| | Спасибо!
Буду разбираться дальше.
Пока сервер показывает мне ошибку, ссылаясь на строку с :
<input type="text" name="<? =$name; ?>" />
И еще, вы уже поняли, что общаетесь с начинающим.
Поэтому простите за вопрос : Редактировать файл addrec.php? | |
|
|
|
|
|
|
|
для: luthik64
(11.07.2008 в 11:52)
| | Если он ссылается на строку <input type="text" name="<? =$name; ?>" />, то вы просто "честно" ее скопировали себе без всякой связи. Мне трудно сказать, какой файл вам редактировать. Когда-то я смотрел гостевую выложенную в разделе закачек форума, правил что-то там, с учетом того, о чем я говорил выше, но где этот пост с прикреплением...
Приведите код вашей гостевой, но не весь, а только сам вывод формы. | |
|
|
|
|
|
|
|
для: 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%"> </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> | |
|
|
|
|
|
|
|
для: luthik64
(11.07.2008 в 12:38)
| | Вставляя код, пользуйтесь ВВ-кодом [соde][/соde], для его выделения - он лучше читается на странице (над формой справа).
Ну а теперь, посмотрите в файле addrec.php: $sid_add_theme, $name и др., определяются ли они до того, как будут помещены в форму - echo. Имеется ввиду, не после проверки формы при получении ее, а первый вывод формы на страницу. В этом и ответ - откуда предупреждения. Как их устранить, я уже сказал. | |
|
|
|
|
|
|
|
для: 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
Заранее благодарен. | |
|
|
|
|
|
|
|
для: luthik64
(16.07.2008 в 10:50)
| | 1. Забудьте об непосредственной правке php.ini - никакой хостер вам не даст этого делать.
2. Смысл всего в том, что на этапах отладки, а уж тем более только начиня изучать РНР, не надо глушить нотайсы. Вот когда будете понимать чем они вызваны, имеет ли это "нехорошее" последствие, тогда вы уже будете вольны поступать так, но зная, что вы делаете.
3. Касаемо представленного кода, то это совсем не та проверка, о которой говорил я. | |
|
|
|
|
|
|
|
для: sim5
(16.07.2008 в 11:30)
| | Спасибо !
Я понял, что не правильно всё сделал.
Пока у меня всё на локальном хосте, думаю, что вреда никому не причиню.
Но понимаю важность Вами сказаного.
И похоже,что я в тупике. Просто не понимаю как всё это проверить.
Может подскажете направление, в котором надо действовать.
Прошел по всем файлам гостевой книги но ничего подобного не нашел.
Даже установил книгу скачанную с сайта - результат, тот - же. | |
|
|
|
|
|
|
|
для: 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>
|
В общем надо задавать вопрос почему, находить ответ, затем принимать решение как поступить. И пока вы не знаете много почему, не спешите поступать, пока не найдете ответов. | |
|
|
|
|
|
|
|
для: sim5
(11.07.2008 в 10:42)
| | Спасибо, я просто неправильно выразился. "Всё в порядке" - это лишь то что в полях формы нотисы пропадут (мало было времени на ответ... Мазду6 пригнали надо было сделать видимость бурной работы).
Вобщем РНР язык который требует самодисциплины. | |
|
|
|
|
|
|
|
для: Valick
(11.07.2008 в 12:32)
| | Нельзя советовать начинающим "глушить" нотайсы, так и не поняв, почему они возникают. Именно это может породить привычку писать "грязно", что неменуемо приведет когда либо к серьезной ошибке. Впрочем даже и вам (знающему), в процессе отладки, не стоит "глушить" все что непопадя. Отладив, можно и "заглушить".) | |
|
|
|
|
|
|
|
для: sim5
(11.07.2008 в 12:46)
| | Сам-то я не "глушу", год назад эта тема "горячё" обсуждалась. | |
|
|
|
|
|
|
|
для: luthik64
(11.07.2008 в 09:44)
| |
<?php
error_reporting(E_ALL & ~E_NOTICE );
?>
|
После входа в mysql необходимо настроить кодировку соединения сервера с клиентом при помощи запроса:
| |
|
|
|
|
|
|
|
для: mihdan
(16.07.2008 в 10:56)
| | Добрый день !
А так нельзя ?
// Устанавливаем соединение с базой данных
include "config.php";
$error = "";
$action = "SET NAMES cp1251";]
|
Вроде всё работает. | |
|
|
|
|
|
|
|
для: luthik64
(16.07.2008 в 11:10)
| | Это вообще что? | |
|
|
|
|
|
|
|
для: mihdan
(16.07.2008 в 11:13)
| | Начало файла addrec.php в гостевой книге. | |
|
|
|
|
|
|
|
для: luthik64
(16.07.2008 в 11:19)
| | я про это | |
|
|
|
|
|
|
|
для: mihdan
(16.07.2008 в 11:23)
| | Простите начинающего.
Если Вы имеете ввиду квадратную скобку,
то это опечатка в сообщении.
Не досмотрел. | |
|
|
|