Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправка header 
V
    Опции темы
Ravanger
Дата 29.6.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



Доброго времени суток!

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

Код

<?php
require_once("config.php");

session_start();

     $name=mysql_escape_string($_POST['name']);
     $class=mysql_escape_string($_POST['class']);
     $rassa=mysql_escape_string($_POST['rassa']);
     $description=mysql_escape_string($_POST['description']);
     $author=mysql_escape_string($_POST['author']);

if (session_is_registered('update'))
{
    echo "<font size=2 color=red>Персоонаж добавлен</font>";
    session_unregister('update');
}

if ($dbconn)
{
    $query = "INSERT INTO base VALUES('','".$name."','".$class."','".$rassa."','".$description."','".$author."')";
    $res = mysql_query($query) or die(mysql_error());
    session_register('update');
    header("location: index.html");
}
else
{
    echo "fuck";
}
?>

 и как результат естественно получаю

Код

Персоонаж добавлен
Warning: Cannot modify header information - headers already sent by (output started at b:\home\homesite\www\base.php:14) in b:\home\homesite\www\base.php on line 23


подскажите,пожалуйста,как подправить. зарание благодарен! и простите если подобная тема уже была
PM MAIL   Вверх
skyboy
Дата 29.6.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



даже если бы  сработал редирект, значит, ты бы вывел надпись "персонаж" добавлени и быстро-быстро поменял бы страницу, чтоб пользователь ничего не смог прочесть...
вывод "Персонаж добавлен" следует реализовать на той странице, на которую ты перенаправляешь пользователя. в твоем случае  - index.html
PM MAIL   Вверх
Kefir
Дата 29.6.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



хедеры могут посылаться только перед выводом любой инфы на экран. то есть
Код

echo "Hehe";
header("Location: blah.php");

не сработает. у вас то же самое:

Цитата(Ravanger @  29.6.2007,  10:31 Найти цитируемый пост)
Персоонаж добавлен
Warning: Cannot modify header information - headers already sent by (output started at b:\home\homesite\www\base.php:14) in b:\home\homesite\www\base.php on line 23

Ибо как видно перед отправкой хедеров выводится "Персоонаж добавлен". Если невозможно не выводить информацию, то используйте javascript для редиректа. хотя на самом деле просто не совсем понятно как и где должен быть редирект.
PM MAIL WWW Skype   Вверх
Ravanger
Дата 29.6.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



Цитата

вывод "Персонаж добавлен" следует реализовать на той странице, на которую ты перенаправляешь пользователя. в твоем случае  - index.html


это я собственно и пытаюсь сделать
Цитата

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

ни js ни PEAR использовать не могу, т.к. это пишется под вап
PM MAIL   Вверх
BuShaRt
Дата 29.6.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Ravanger, 
Если бы не эта ошибка, скрип вообще замкнулся бы smile
Установи, после создания персонажа метку в сессию, по которой фильтруй повторное добавление и блокируй в случае, если персонаж создан smile

Добавлено через 1 минуту и 43 секунды
Цитата(Ravanger @  29.6.2007,  11:19 Найти цитируемый пост)
это я собственно и пытаюсь сделать

Тогда вообще потрите строку, выводящую инфу о созданном персонаже

Цитата(Ravanger @  29.6.2007,  11:19 Найти цитируемый пост)
ни js ни PEAR использовать не могу, т.к. это пишется под вап

PEAR вполне можно юзать smile 
PM MAIL   Вверх
Ravanger
Дата 29.6.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



Цитата

Тогда вообще потрите строку, выводящую инфу о созданном персонаже


я бы потер но она надо... а вот как ее вывести вместе с формой эт трабл...
PM MAIL   Вверх
BuShaRt
Дата 29.6.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Ravanger, 
Цитата(BuShaRt @  29.6.2007,  13:40 Найти цитируемый пост)
Установи, после создания персонажа метку в сессию, по которой фильтруй повторное добавление и блокируй в случае, если персонаж создан 


PM MAIL   Вверх
Ravanger
Дата 29.6.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



а можно на примере...плз
PM MAIL   Вверх
BuShaRt
Дата 29.6.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Код


if ($dbconn and ($_GET['new']!=1))
{
    $query = "INSERT INTO base VALUES('','".$name."','".$class."','".$rassa."','".$description."','".$author."')";
    $res = mysql_query($query) or die(mysql_error());
    session_register('update');
    header("location: index.html&new=1");
}


примерно так, но это не сессия....
Если собираетесь игру делать, все равно придеться вникать в эти вопросы, почитайте статьи на phpclub.ru хотя бы)

Добавлено через 1 минуту и 22 секунды
ночь не спал, сижу жду началника, не в состояние думать, пример толковый не дам :(
PM MAIL   Вверх
Ravanger
Дата 29.6.2007, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



Цитата

Если собираетесь игру делать, все равно придеться вникать в эти вопросы,


 smile  это не игра, скорее ресурс, скрипт полностью свою задачу выполняет, просто интересно стало оформить его по человечески
и вот тут загвоздочка, PEAR подключать не хочу(переписывать все прийдется) хотя с его использованием решить было бы проще

Это сообщение отредактировал(а) Ravanger - 29.6.2007, 14:22
PM MAIL   Вверх
BuShaRt
Дата 29.6.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Ravanger, 
PEAR можно подключить без переписывания и даже без установки подключать отдельные классы к тому же к данной задаче он ни какого отношения не имеет
PM MAIL   Вверх
HackMan
Дата 30.6.2007, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


Профиль
Группа: Участник
Сообщений: 391
Регистрация: 18.6.2005
Где: .ua

Репутация: 8
Всего: 9



а нельзя ли так сделать редирект?

echo 'Данные обновлены. Через 3 секунды Вы будете перемещены на главную старницу.';
echo '<META HTTP-EQUIV="Refresh" CONTENT="3; URL=index.php"></head><body></body>';



--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Golda
Дата 30.6.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Насколько я понимаю, Ravanger, Вы искали решение типа 

Код

<?php
require_once("config.php");

session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

     $name=mysql_escape_string($_POST['name']);
     $class=mysql_escape_string($_POST['class']);
     $rassa=mysql_escape_string($_POST['rassa']);
     $description=mysql_escape_string($_POST['description']);
     $author=mysql_escape_string($_POST['author']);

     if ($dbconn) {
        $query = "INSERT INTO base VALUES('','".$name."','".$class."','".$rassa."','".$description."','".$author."')";
        $res = mysql_query($query) or die(mysql_error());
        session_register('update');
        header("location: index.html");
    }
} else {
    if (session_is_registered('update')) {
    echo "<font size=2 color=red>Персоонаж добавлен</font>";
    session_unregister('update');
   }
   ...
}

?>


(не тестировала: возможны мелкие баги)



--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
Ravanger
Дата 30.6.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 26.6.2007

Репутация: нет
Всего: нет



Разобрался, спасибо всем
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.