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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> опять редирект, но деваться некуда... 
:(
    Опции темы
sugee
Дата 13.10.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наверное эта тема уже всех достала...
После отправки формы делаю перенаправление на ту же страницу и получаю:
Код

Warning: Cannot modify header information - headers already sent by
(output started at адрес скрипта)
 in адрес скрипта on line 62

Наверное придется показать полный код
Код

<html><body background=BGFON.jpg>
<script language="javascript">
function smile(num)
{
text=mygb.message.value;
mygb.message.value=text+" <img src=smiles/"+num+".gif>";
}
</script>
<form name=mygb action=gb3.php METHOD=post><input type=text name=name>&nbsp<b>Имя</b><br>
<input type=text name=email>&nbsp<b>E-mail</b><br><br><b>Сообщение</b><br>
<textarea rows=8 cols=25 name=message></textarea><br><input type=submit name=sbm value=добавить><br><br>
 
<table><tr align=center>
<?
$dir=opendir("./smiles");
  while(($n=readdir($dir))!==false)
    if(!is_dir($n)) $smiles[]=$n;

for($i=0;$i<count($smiles);$i++)
{
?>
<td><img src='smiles/<? echo"$i.gif"?>' onclick="smile('<?=$i?>')" 
onMouseover="this.style.cursor='hand'" onMouseout="this.style.cursor=''">&nbsp&nbsp</td>
<?
}
?>
</tr></table>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$f="./gb.txt";
$tmp="./gb_tmp.txt";
if($_POST['sbm']) {

$message=str_replace("\n", "<br>", $_POST['message']);
  
 if(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/",$_POST['email'])) {
 $err="Неверный E-mail адрес! ";
 }
 if($_POST['name']=="") $err.="Забыли ввести имя! ";
 if($_POST['message']=="") $err.="Забыли ввести сообщение! ";
 if(strlen($message)>70&&strpos($message," ")==false)
  $err.="Слишком длинная строка";


 if($err) {
 echo "<font color=red>".$err."</font>";
}
else {
if(copy($f,$tmp)) {
$w=fopen($f,"w");
flock($w,2); 
fwrite($w,date("d.m.Y. H:i:s")."|".$_POST['email']."|"." ".$_POST['name']."|"." ".$message."\n");
$r=fopen($tmp,"r");
flock($r,1);
while($messages=fgets($r,1000)) fputs($w, $messages);
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($tmp);
  }
 header("Location".$_SERVER['REQUEST_URI']);
 exit;
 }
}

$page=isset($_GET['page']) ? $_GET['page'] : 1; 
show($page);

function show($page) {
global $f;
$kol=$page*10;
$messages=explode('\n',implode('\n',file($f)));
echo "<table width=100% border=1><tr><td><table  border=0>";
for($i=($page-1)*10; $i<count($messages); $i++) {
  if($i<$kol) {
$mess=explode("|",$messages[$i]);
list($date,$email,$name,$message)=$mess;

echo "<tr height=40><td background='BGF.jpg'><b>
<font color=#ffffff>Сообщение от ".$name." </font></b>
<br>&nbsp&nbsp<b>".$email."</b></td><td background='BGF.jpg'><b>".$date."</b></td></tr>
<tr><td width=100% height=100>".$message."</td></tr>";
  }
}
echo "</table></td></tr></table><br>";

$num=count($messages);
$numstr=ceil($num/10);
   $count=1;
for($k=1; $k<=$numstr; $k++) {
  if(count($messages)>=$count) echo "&nbsp&nbsp<a href=gb3.php?page=$k>$k</a>";
   $count+=10;
  }
}
?>
</body></html>


PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Блин, ну header'ы посылаться должны до любого вывода. Пробел, перевод строки перед <?php - тоже вывод...
Спецификацию читайте..
PM ICQ   Вверх
Bastet
Дата 13.10.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 26.9.2005
Где: Тильзит

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



sugee, ну еще бы ты не получал сообщение об ошибке... Все заголовки (header()) должны отправляться ДО вывода любого текста в браузер.
Говорят, помогает буферизация...
Буферизоция включается в самом начале страницы:
Код

ob_start();

Когда весь текст выведен, содержимое буфера копируется в некоторую переменную:
Код

$text = ob_get_contents();

Потом буферизация отключается:
Код

ob_end_clean();

и содержимое буфера выводится:
Код

print $text;

--------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA
PM MAIL WWW ICQ   Вверх
sugee
Дата 14.10.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я перенес весь блок
Код

 <?  if(isset($_POST['sbm'])) {
   ........
 }
?>

в самое начало скрипта, но результат тот же.
Если форма заполнена правильно, там не должно
быть никакого вывода.
Что то я не пойму, куда надо вставить этот header?

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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



Код

<?php
ob_start();
?>
<?
<html>
<head>
<Meta http-equiv="content-type" Content="text/html; charset=Windows-1251">
<HEAD>
<title>Василий</title>
</head>
<body topmargin="0" leftmargin="0" bottommargin="0">
<!------------Туту посылаешь что тебе нужно и куда нужно, например:----------->
<?  if(isset($_POST['sbm'])) {
   echo "СПАТЬ!";
header('location: index.php');
exit;
 }
?>
</body>
</html>
<?php
ob_end_flush();
?>



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
sugee
Дата 14.10.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



УРА!!! smile
PM MAIL   Вверх
krulik
Дата 8.2.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 14.1.2006
Где: Украина, Житомир

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



Чтобы отдельно тему не создавать спрошу вот тут.
Итак есть вот такой код (для примера):
Код

<?php    
ob_start();    
?>
<html>
<body>
<?php
if (isset($_POST['old']))
{
   /*тут чтото проверили посчитали...*/
   print "Тут выводим какойто текст";
}
else print "Тут тоже чтото выводим";
header("Location: redDb.php");
?>
</body>
</html>
<?php    
ob_end_flush();    
?>


А теперь вопрос. В таком виде происходит просто переадресация на некую страницу redDb.php. Но как вы понимаете пользователь не видит никаких сообщений (ни про ошибку ни про то что все нормально).
Скажите пожалуйста каким образом можно сделать так чтобы перед переадресацией выводилось на какоето время информационное окно с сообщением (сообщения которые в 10 и 12 троках).

Это сообщение отредактировал(а) krulik - 8.2.2006, 13:14
--------------------
Каждый день несет в себе частицу вечности (Паоло Коэльо)Если вам плюют в спину, значит вы в переди! (Конфуций)Все, что имеет форму, может исчезнуть в одно мгновение (Харуки Мураками)
PM MAIL ICQ   Вверх
smartov
Дата 8.2.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



krulik
Тут тебе только javascript поможет
Код

<?php    
ob_start();    
?>
    
<html>
<body>
<?php
if (isset($_POST['old']))
{
   /*тут чтото проверили посчитали...*/
    $html = '<script>alert("'."Тут выводим какойто текст".'");</script>';
    echo $html;

else
{
    $html = '<script>alert("'."Тут тоже чтото выводим".'");</script>';
    echo $html;
}

$html = '<script>document.location.href="redDb.php";</script>';
echo $html;

?>
</body>
</html>
    
<?php    
ob_end_flush();    
?>

PM MAIL   Вверх
krulik
Дата 8.2.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 14.1.2006
Где: Украина, Житомир

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



smartov огромное спасибо!!! Все работает! Буду паралельно и ЯвуСкрипт начинать учить (книжку как раз уже купил)
--------------------
Каждый день несет в себе частицу вечности (Паоло Коэльо)Если вам плюют в спину, значит вы в переди! (Конфуций)Все, что имеет форму, может исчезнуть в одно мгновение (Харуки Мураками)
PM MAIL ICQ   Вверх
smartov
Дата 8.2.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



krulik
Цитата(krulik @ 8.2.2006, 14:58 Найти цитируемый пост)

ЯвуСкрипт начинать учить (книжку как раз уже купил)

Мануал не забудь хороший слить. А так же вот здесь хорошее описание обьектов. Чтобы потом голову не ломать.

Ну а дальше - учите мать часть smile
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.

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


 




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


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

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