[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: недостатки обновления
Страницы: 1, 2, 3, 4
GET
Цитата
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Эта заголовки на ВЭБ странице, для браузера, чтоб он знал в какой кодировке информация на странице.

в htaccess пропиши строку:
AddDefaultCharset UTF-8
, а строку кодировки win-1251 закомменти:
#AddDefaultCharset windows-1251

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
romaha
сделал, ничего не изменилосьABC
inpost
romaha
Я до сих пор не понимаю, в чём проблема. Переадресация не идёт, или мы с крякозябрами боремся... какая ошибка...

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
Warning: Cannot modify header information - headers already sent by (output started at Y:\home\test1.ru\www\index.php:84) in Y:\home\test1.ru\www\processform.php on line 26
вот такая ошибка.
inpost
Ну вот тебе написали, на 84 строчке index.php у тебя начинается вывод информации на экран!
Ты пытаешься сделать переадресацию в файле processform.php на строчке 26, который инклюдится к файлу index.php НИЖЕ 84 строчки.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
УРААААА!!! Получилось!
у меня денвер перестал отображать мои файлы, я его переустановил и получилось! в начале index.php вставил:
<?php
session_start();
if(isset($_POST['comm'])){
$URL="index.php";
header("Location: $URL");
}
?>

Теперь все работает! :D :D :D
Спасибо большое, что уделили мне время!
И еще один вопрос, что лучше: скачивать PHP, Apache и MySQL или сразу Денвер?
inpost
Денвер - платформа для новичком для тестирования и отладки сайтов. Если ты новичок, о чём свидетельствует выше сказанное тобой, то ставь Денвер.

Хотя я не понимаю смысла делать переадресацию в начале index.php... переадресация нужна только тогда, когда уже ДОБАВИШЬ комментарий в БД, сделаешь все нужные обработки.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
так нельзя же вставлять переадресацию если что-то введено
Цитата
До редиректа не должно быть вывода информации НИКАКОЙ, но это не значит, что до неё не должно быть обработки. 

или я неправильно как-то понял?
inpost
$x = 10;

Напиши и посмотри, вывелось ли что-то на экран? НЕТ!
$y = ($x + 15).'lala';

Повторяем вопрос, вывелось ли что-то на экране? НЕТ!
$res = mysql_query("тут запрос");
$row = mysql_fetch_assoc($res);

Вывелось на экране? НЕТ!!!

Нельзя после ПЕРВОГО ВЫВОДА НА ЭКРАН.

echo 'text';

А вот теперь вывелось!

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
а так, как я сделал, не имеет место быть?
и если так, как Вы говорите, мне нужно вставлять хэдер в processform.php или после вывода комментария? так я пробовал так и так, выводит ошибку..
inpost
Берёшь ручками и убираешь вывод информации любой ДО(!!!) занесения данных в БД.

Скрипт выглядит так:
- настройки, уровень ошибок.
- подключение к БД.
- Обработка всех запросов
- Если запросов никаких нет, то выводить информацию на экран.

Обрати внимание, в каком месте у меня стоит обработка информации, включая занесения данных в БД, а в каком - вывод информации на экран. Если у тебя иначе, значит ты сделал неверную архитектуру сайта и надо править всё.

Я даже не знаю, как ещё проще объяснить...
if(isset($_POST['submit'])) { // если нажата кнопка была
mysql_query(); // Добавили комментарий
header(); // Сделали переадресацию
} else {
echo 'форма'; // Вывод HTML кода
}


Я тебе выше сказал, у тебя вывод идёт на 84 строчке в index.php , ДО(!!!) переадресации... а должен идти после. Как мне ещё проще объяснить?

НЕ ВЕРНО:
Файл 1.php
<?php
$x = 10;
echo $x;
include '2.php';
?>


Файл 2.php
<?php
header("Location: href")
;

_______________________
ВЕРНО:
Файл 1.php
<?php
$x = 10;
include '2.php';
echo $x;
?>


Файл 2.php
<?php
header("Location: href");


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
Т.е. так?
<?php
error_reporting(-1);
if(isset($_POST['sub'])){
//Обработка всех данных
$URL="index.php";
header("Location: $URL");
}
else{
//Вывод всех данных
?>

Я правильно понял?
inpost
Образно да. Полную архитектуру я сейчас не смогу показать, потому что это не за 5 минут делается. Приблизительно так.
И ещё важный момент, после header(); надо писать exit(); всегда.

И в конкретном случае чтобы не загромождать код - можно else не писать, а сразу писать вывод страницы.
if() {
// запросы
}
// вывод данных


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
romaha
прошлый код, который я прислал - это processform.php в общем виде, он у меня вставляется в середине html-кода. а когда я сделал по-вашему, у меня перестало даже в бд заноситься информация. и вывода нет..
Цитата
<?php
error_reporting(-1);
if(isset($_POST['sub'])){
//Обработка всех данных
$URL="index.php";
header("Location: $URL");
}
else{
//Вывод всех данных
?>

так должен быть построен processform.php или index.php?
GET
Цитата
он у меня вставляется в середине html-кода



romaha,
ты вообще смотрел примеры, которые тебе inpost написав про верно/не верно???

Разницу между ними уловил?

Строчка header("Location: $URL"); должна быть до любого HTML кода, до вывода любой информации в браузер.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.