Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переадресация после цикла
 
 автор: dima2207   (20.02.2007 в 17:14)   письмо автору
 
 

подскажите как чтобы после вывода на экран сообщения :
<?
echo "==================================================================";
?>
грузилась новая страница go.php ???

   
 
 автор: tokmak   (20.02.2007 в 17:19)   письмо автору
 
   для: dima2207   (20.02.2007 в 17:14)
 

Попробуй так
<?php
echo"============";
set_time_limit(0);
error_reporting(0);
$host getenv("HTTP_HOST");
$url "http://$host/go.php";
Header("Location: $url"); 

   
 
 автор: cheops   (20.02.2007 в 17:33)   письмо автору
 
   для: tokmak   (20.02.2007 в 17:19)
 

Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.

http://www.softtime.ru/group/id_group=12

   
 
 автор: cheops   (20.02.2007 в 17:36)   письмо автору
 
   для: dima2207   (20.02.2007 в 17:14)
 

Можно воспользоваться следующим кодом
<?php
    
echo "==================================================================";
    echo 
"<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=go.php'>
          </HEAD></HTML>"
;
?>

   
 
 автор: dima2207   (20.02.2007 в 18:13)   письмо автору
 
   для: cheops   (20.02.2007 в 17:36)
 

Нет . не получается , дело все в том что у меня стоит break; для выхода из цикла , и если я поставлю break; до этого выражения , то никакого редиректа не будет , а если после , то на новой стр. зацикливается загрузка с сервера !!!
мне нужно что-бы сначала выходил из цыкла а потом уже редирект !!!

   
 
 автор: dima2207   (20.02.2007 в 18:28)   письмо автору
 
   для: dima2207   (20.02.2007 в 18:13)
 

а может проше сделать с помощью else :
$new=$_POST['mail'];
$file = fopen("mail.dat","r");
if(!file)
{
echo("ошибка открытия файла ");
}

$file = file ('mail.dat');
$name = $new;
for ($i=0; $i<count($file); $i++) {
if (trim($file[$i]) == $name) {

print "------------------------------------------------------";
break;
}
}
else {


блок 2
..................................


}

нужно что-бы если условие выполняется , то выдится print "----------------------------------";
а если нет , то идет на блок 2

   
 
 автор: cheops   (20.02.2007 в 19:10)   письмо автору
 
   для: dima2207   (20.02.2007 в 18:28)
 

У вас структура нарушена - блок else прикреплён к циклу, вместо блока if, для того, чтобы код был верен следует исправить его
<?php
  $new
=$_POST['mail'];
  
$file fopen("mail.dat","r");
  if(!
file)
  {
    echo(
"ошибка открытия файла ");
  }

  
$file file ('mail.dat');
  
$name $new;
  for (
$i=0$i<count($file); $i++)
  {
    if (
trim($file[$i]) == $name)
    {
      print 
"------------------------------------------------------";
      break; 
    }
   else
   {
    
блок 2
    
..................................
   }
}
?>

Или имеется ещё какое-то условие?

   
 
 автор: cheops   (20.02.2007 в 19:15)   письмо автору
 
   для: dima2207   (20.02.2007 в 18:13)
 

>Нет . не получается , дело все в том что у меня стоит break; для выхода из цикла , и если я
>поставлю break; до этого выражения , то никакого редиректа не будет , а если после , то на новой
>стр. зацикливается загрузка с сервера !!!
>мне нужно что-бы сначала выходил из цыкла а потом уже редирект !!!
Для этого обычно используется флаг
<?php
  $name 
$new;
  
$flag false;
  for (
$i=0$i<count($file); $i++)
  {
    if (
trim($file[$i]) == $name)
    {
       print 
"------------------------------------------------------";
       
$flag true;
       break; 
     }
  }
  if(
$flag// срабатывает только, если в цикле был заход в блок if()
  
{
    echo 
"<HTML><HEAD> 
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=go.php'> 
          </HEAD></HTML>"
;
  }
?>

   
 
 автор: Halfi   (20.02.2007 в 18:41)   письмо автору
 
   для: dima2207   (20.02.2007 в 17:14)
 

Можно ява скриптами

<?php 
echo"============<script>window.setTimeout(\'location.href("go.php")\',1500);</script>";  

   
 
 автор: dima2207   (20.02.2007 в 19:03)   письмо автору
 
   для: Halfi   (20.02.2007 в 18:41)
 

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/sitefakt/public_html/dvd/enter.php on line 203
не работает !!!!!!ошибка именно в той строке !!!!!

   
 
 автор: trix   (20.02.2007 в 19:22)   письмо автору
 
   для: dima2207   (20.02.2007 в 19:03)
 

Попробуйте сделать так:

print "=============
<SCRIPT>
setTimeout('window.location.href=(\"go.php\")', 1000);
</SCRIPT>";

Перед window стоит одинарная ковычка...

   
 
 автор: dima2207   (20.02.2007 в 19:38)   письмо автору
 
   для: trix   (20.02.2007 в 19:22)
 

почему проверяется только первый эллемент массива файла mail.dat а мне нужно что-бы проверялись все ячейки масива !!!
$new=$_POST['mail'];
$file = fopen("mail.dat","r");
if(!file)
{
echo("ошибка открытия файла ");
}

$file = file ('mail.dat');
$name = $new;
for ($i=0; $i<count($file); $i++)
{
if (trim($file[$i]) == $name)//****************************************************вот тут проверяется массив
{
print "Простите,но на этот почтовый ящик уже зарегистрован пользователь ";
break;
}
else
{




if (preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/",$_POST['mail']))
{





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



$file = fopen ("name.dat","a");
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fwrite ($file, "$_POST[name1]\n");
}
fclose ($file);

//------------------------------------------------------------------------------------
$file1 = fopen ("password.dat","a");
if ( !$file1 )
{
echo("Ошибка открытия файла");
}
else
{
fwrite ($file1, "$_POST[password]\n");
}
fclose ($file1);
//-----------------------------------------------------------------------------------------------------------
$file2 = fopen ("mail.dat","a");
if ( !$file2 )
{
echo("Ошибка открытия файла");
}
else
{
fwrite ($file2, "$_POST[mail]\n");
}
fclose ($file2);



//-------------------------------------

// $file = fopen ("name.dat","r");
// $file_array = file("name.dat");
// if(!$file_array)
// {
// echo("Ошибка открытия файла");
// }
//else
//{
// for($i=0; $i < count($file_array); $i++)
// {
// printf("%s<br>", $file_array[$i]);
// print_r(file_array[$i]);

// }
// }
//print_r(file("name.dat"));




}
else{

echo $_POST['email']," Такого Почтового ящика не существует ";

}
}

}
//}
}
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования