Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
sleep zwei Seiten refreshen ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
sleep zwei Seiten refreshen ?


 
Mundgeruch
16-04-2006, 10:32 
 
Guten morgen und Frohe Oster Gemeinde ;)

Habe ein kleines Schönheitsproblem und brauch vielleicht mal einen kleinen Denkansatz oder eine Idee?

Ich habe einen Loginbereich und möchte nun, dass wenn sich ein User ausloggt irgendetwas steht von "Haste toll gemacht, bekommst nächstes mal ein Eis". Nach 3 Sekunden sollte der User, wieder auf die Startseite geleitet werden ...

Dachte es geht evtl. so


header ("Location: ?navigation=ausgeloggt_ok");
sleep(3);
header ("Location: ?navigation=startseite");


Script wartet allerdings 3 Sekunden, nur komme ich direkt dann zur ?navigation=startseite.

Sicherlich könnte ich auch direkt zur Startseite linken, aber ich will einfach da noch eine Seite vor haben.

Gruss
Kai-Uwe

 
tomstig
16-04-2006, 11:03 
 
Geht nicht mit php, weil sobald du Text ausgibst, funktioniert header("location: blubb.html") nicht mehr....

Ich hab mir dafür irgendwann eine ganz nette PHP-Funktion zusammengebastelt:

PHP:

define("PSID", "PHPSESSID=" . session_id());

function go_on($target, $text, $color)
{
if( preg_match('/\?/', $target) )
$connector = '&';
else
$connector = '?';

echo '<script type="text/javascript">' . "\n";
echo '<!--' . "\n";
echo 'window.setTimeout("window.location.href=\'' . $target . $connector . PSID . '\'", 2500);' . "\n";
echo '//-->' . "\n";
echo '</script>' . "\n";
echo '<table align="center" class="forward_' . $color . '" style="width: 300px;" cellspacing="0">';
echo '<tr>';
echo '<td class="forward_' . $color . '" style="text-align: center; padding: 10px">';
echo '<b>' . $text . '</b><br />';
echo '<br />';
echo '<a href="' . $target . $connector . PSID . '" style="font-size: 8pt;">';
echo 'Klicke hier, wenn du nicht länger warten willst<br />';
echo '(oder wenn Ihre Browser Sie nicht automatisch weiterleitet)</a>';
echo '</td>';
echo '</tr>';
echo '</table>';

return true;
}


CSS:

table.forward_blue{
border: 3px solid #014993;
}
table.forward_red{
border: 3px solid #f40000;
}
td.forward_blue{
background-color: #83C2FF;
}
td.forward_red{
background-color: #FFA5A5;
}

 
cipolla
16-04-2006, 14:45 
 
Und warum so kompliziert? Mach doch erst deinen php-header zur Ausgabeseite mit deinem text und in der ausgelockt-seite per meta-refresh gehst du dann automatisch wieder auf die startseite.

 
miximaxi
16-04-2006, 15:31 
 
Original geschrieben von Mundgeruch


header ("Location: ?navigation=ausgeloggt_ok");
sleep(3);
header ("Location: ?navigation=startseite");


Das ist als sequentielle (Pascal-) Logik schon richtig. Nur musst Du
den Programmablauf "invertieren" und in eine state-Logik verwandeln. Der Ansatz
ist tatsächlich Refresh mit

<meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">

In den online-Bemerkungen zu header(); findet man auch:

header("Refresh: 0; URL=\"$url\"");

so dass
header ('refresh: 5; URL=http://de.selfhtml.org/');
gehen sollte.

Refresh ist kein offizieller http-Header, weder als meta http-equiv noch als header.

 
miximaxi
17-04-2006, 12:31 
 
Hier findet sich die ?Dokumentation? zu refresh: http://wp.netscape.com/assist/net_sites/pushpull.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:25 Uhr.