Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]header, Location i czas
Forum PHP.pl > Forum > Przedszkole
barthpl
Czy istniej możliwość za pomocą samego PHP, to jest odpowiedniej konstrukcji header przenieść użytkownika na inną stronę po określonym czasiequestionmark.gif
Chodzi mi o coś identycznego do HTML'owego znacznika:
  1. <meta http-equiv="refresh" content="6;url=http://mojastrona.pl" />

samo
  1. <?php
  2. header( "Location:http://mojastrona.pl" );
  3. ?>
przenosi od razu a ja chciałbym poczekać powiedzmy 6 sekund (jak w przykładzie HTML powyżej)
tomm
funkcja sleep(czas w milisekundach) powinna Ci pomóc
tenior
także sleep(6000)
a nie możesz poprostu dać:
  1. <?php
  2. echo "<meta http-equiv="refresh" content="6;url=http://mojastrona.pl" />";
  3. ?>
tomm
przecież napisał że nie chce w ten sposób
sowiq
Wszystkie meta-nagłówki typu http-equiv można ustawić wysyłając je z serwera. W tym przypadku wystarczy:
  1. <?php
  2. header("Refresh: 6; url=http://mojastrona.pl");
  3. ?>


@tomm,
1. sleep()" title="Zobacz w manualu PHP" target="_manual przyjmuje jako argument ilość sekund, a nie milisekund. Porównaj z usleep()" title="Zobacz w manualu PHP" target="_manual.
2. sleep" title="Zobacz w manualu PHP" target="_manual zawiesza działanie skryptu po stronie serwera. Jak dasz sleep(10), to przeglądarka przez 10 sekund dłużej będzie wczytywała stronę. Ot i Twoje rozwiązanie.
Bartii
a może w JS

function skok($gdzie)
{
echo '<script type="text/javascript">';
//dodać jeszcze JS owy timeout
echo "document.location.href = '$gdzie'";
echo '</script>';
}

przykład JS:
Kod
[color="green"]<script language=javascript>
        function testtimeout(){
            setTimeout("printer()",3000);    
        }
    
        function printer(){
            alert(" test set time out");    
        }
    </script>

         <form name=xcv>
        <input type=button onClick="testtimeout()" value="test time out">
    </form>[/color]
tomm
@sowiq
ad 1. ok , naleciałości z C++ (tam w milisekundach)
ad 2. nie bedzie wczytywała przez 10 sekund tylko po 10 sekundach
sowiq
Cytat(tomm @ 5.05.2009, 01:40:54 ) *
ad 2. nie bedzie wczytywała przez 10 sekund tylko po 10 sekundach
Ad 1.
Nie wiem jak w C++, ale w C też jest w sekundach.

Ad 2.
O rly?
1. Wpisujesz sobie adres, Twoja przeglądarka robi request'a do serwera i czeka.
2. Serwer odbiera żądanie i uruchamia skrypt (przeglądarka cały czas czeka - kręci Ci się animacja).
3. Skrypt zawiesza działanie na 10 sekund, a przeglądarka czeka (animacja cały czas się kręci).
4. Po 10 sekundach serwer zwraca wynik, a przeglądarka w końcu go odbiera.
5. Wczytywanie zakończone.
Może w ciągu tych 10 sekund żadne dane nie są odbierane przez przeglądarkę, ale użytkownik ma wrażenie, że strona cały czas się ładuje. Zresztą sleep" title="Zobacz w manualu PHP" target="_manual w żaden sposób nie jest powiązany z przedstawionym problemem - refresh po 6 sekundach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.