Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
Цитата из учебника: "В PHP изменение заголовка(header) возможно лишь ДО того, как начнет формироваться HTML-код web-документа!". То есть, в моём случае я не могу пользоваться функцией header() для редиректа.

я вам для этого на exit после header и указал.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:23 26-04-2009
zerkms

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
exit там добавит логической стройности но принципиально ничего не изменит.

----------
tvfёdor - оперативно уведомляет о раздачах rutracker | Блог об иммиграции в Новую Зеландию

Всего записей: 387 | Зарегистр. 07-05-2004 | Отправлено: 05:24 26-04-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zerkms

Цитата:
там добавит логической стройности но принципиально ничего не изменит.

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


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:28 26-04-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Читая о сессиях в другом учебнике, так же встретил этот блок -  
 
session_start(); // Запуск сессии
$_SESSION['...'] = .... // Запись в массив
header("Location: http://....."); // Редирект
exit;
 
Выходит, такой код должен работать. Значит, видимо это у меня что то с настройками....

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 05:46 26-04-2009 | Исправлено: israel_rider, 05:47 26-04-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
Выходит, такой код должен работать. Значит, видимо это у меня что то с настройками..

поставьте передачу через куки. если просмотр заголовков при форварде не показывает передачу id сессии, то не будет работать

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:47 26-04-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Понял. Спасибо. Буду пробовать с куками. Тем более, что куки - это следующяя глава учебника.
 
Добавлено:
zerkms, я уже понял. Буду проверять настройки, и читать про куки.

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 05:49 26-04-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ха!!! И ведь, что интересно! Начал изучать куки, включил session.use_cookies=1... И ведь вправду же блин всё заработало!!!!!!!!

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 03:58 27-04-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Столкнулся с такой проблемой. Сайт в кодировке utf-8. Открывая страничку, где я в начале запускал сессию, я получал любимую ошибку: «Cannot modify header information - headers already sent и т.д.». Проблема оказалась тоже самая банальная – из за ВОМа. Удалил ВОМ, всё заработало, но теперь на всех компах, где открывают эту страничку вылазят кракозяблы. И необходимо вручную указывать браузеру, что это юникод. Что, естественно не есть гуд. . Нашёл на форумах совет включать команду кеширования, тогда можно оставлять ВОМ, но и это, как там было написано тоже не очень хорошо.  
Прошу совет у профессионалов, каково наиболее оптимальное решение данной проблемы?

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 09:27 20-05-2009 | Исправлено: israel_rider, 09:28 20-05-2009
SparcoCF

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
Столкнулся с такой проблемой. Сайт в кодировке utf-8

 
найди конфигурационный файл Апача httpd.conf в нем найди строчку AddDefaultCharset скорее всего что там стоит windows-1251 замени на UTF-8 и будет тебе счастье

Всего записей: 110 | Зарегистр. 21-03-2009 | Отправлено: 14:54 20-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
Проблема оказалась тоже самая банальная – из за ВОМа

что такое ВОМ??
если у вас заголовки начинают "выползать" в середине - означает лишь плохой код.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:11 20-05-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery, мне кажется, Вы не правы. Если кодировка «UTF-8 с заголовком (ВОМ)», этот ВОМ дописывается всегда впереди файла. То есть даже если у меня в файле с самого начала будет :
<?php
 session_start();
и т. д. ……
этот ВОМ всегда вылезет впереди, и вылезет вышеупомянутая ошибка. Поэтому то, на всех форумах при разговоре об ошибке «Cannot modify header information - headers already sent и т.д.», всегда первым делом рекомендуют отключать ВОМ.
Сейчас изучаю страничку http://httpd.apache.org/docs/2.0/mod/core.html , «AddDefaultCharset Directive». Дело в том, что последовать твоему, SparcoCF, совету оказалось не так просто. Я просто пока не нашёл на хостинге доступа к httpd.conf файлу Апача.

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 01:41 21-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider
под чем создавали? под Windows? попробуйте пересохранить без BOM (читайте далее)
второе.. можно попросить хостера пересобрать php c enable-zend-multibyte
и
Цитата:
AddDefaultCharset Directive

не совсем нужно - вы можете выдавать кодировку и с помощью header функции
header('content-type: text/html; charset: utf-8');


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:59 21-05-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Создавал под Windows. Как я писал, при пересохранении без ВОМ нет ошибки "Cannot modify header information .... " но есть проблема с кодировкой. Я так понимаю, этот ВОМ и указывает браузеру, в какой кодировке открывать страничку.
Не знаю, стоит ли обращаться к хостеру бесплатного хостинга.... Бесплатный, он и есть бесплатный, врят ли хостер будет что то делать....
Поэтому попробую, как Вы и сказали, при помощи "header()" . Или, нашёл ещё один способ, указать  "AddDefaultCharset UTF-8" в "волшебном" файле .htaccess .

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 03:18 21-05-2009 | Исправлено: israel_rider, 03:20 21-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider

Цитата:
но есть проблема с кодировкой.

я же написал - правильно указывать кодировку либо через header либо через настройку апача.. не нужно рассчитывать на авось.
есть еще один способ.. но зависит от доступа в хостинге.. прочитайте в php.ini опцию auto_prepend_file
 
 
ps: работа с буферизацией вам тут не поможет. так как данные из файла выводятся ДО возможности включить буферизацию

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:23 21-05-2009 | Исправлено: Cheery, 03:24 21-05-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Уфффф.... Вроде победил.... Положил в корень моего сайта файл файле .htaccess, прописал в нём, как и сказал SparcoCF, "AddDefaultCharset UTF-8" .  
Теперь всё окрывается корректно. И в Осле, и в Опере, и в Лисе. Блин. Жалко, с других компов не могу проверить. А на моём компе и до этого открывалось иногда правильно, иногда нет. Видимо, сам браузер переодически запоминал кодировку.... Или он из кеша своего открывал.... Хотя я нет, я рефреш нажимал. Ладно, посмотрим, попрошу кого нибудь потом со своего компа открыть....
 

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 03:38 21-05-2009
SVlV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста! Тут такое дело.. пишу - $link = mysql_connect("localhost",  "root", "****");
mysql_select_db("organizaciya");
$result = mysql_query("SELECT strana, index, gorod, ulica, dom, korpus FROM adres WHERE id_adres = '1'");
//$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
echo $row["strana"];
echo $row["index"];  
echo $row["gorod"];
echo $row["ulica"];
echo $row["dom"];
echo $row["korpus"] ;
}
 mysql_free_result($result);
и мне выдает ошибку - Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
и Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in.
Уже кучу всего прочитал... так и не доеду как мне вывести данные.. Напишите пожалуйста как надо. Думаю потом разберусь..

Всего записей: 62 | Зарегистр. 13-12-2008 | Отправлено: 00:34 22-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SVlV
$result = mysql_query("SELECT strana, index, gorod, ulica, dom, korpus FROM adres WHERE id_adres = '1'") or die(mysql_error());
и читайте сообщение +
mysql_connect("localhost",  "root", "****") or die(mysql_error());
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:38 22-05-2009
SVlV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ему не нравится - or die(mysql_error());
Пишет - Parse error: syntax error, unexpected T_LOGICAL_OR

Всего записей: 62 | Зарегистр. 13-12-2008 | Отправлено: 00:45 22-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SVlV

Цитата:
Пишет - Parse error: syntax error, unexpected T_LOGICAL_OR

потому что перед or не должно быть точки с запятой, если написали.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:47 22-05-2009
SVlV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да да. поздно заметил. теперь пишет - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index, gorod, ulica, dom, korpus FROM adres WHERE id_adres = '1'' at line 1

Всего записей: 62 | Зарегистр. 13-12-2008 | Отправлено: 00:48 22-05-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru