redirection ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function _sRedirect($u, $s, $m){
// $u = the url to the file where the user gonna be redirected to.
// $s = the number of seconds elapsed before redirecting ;
// $m = the message shown before redirecting ;
// print the message ;
echo($m);
// check if the redirect should notified too the user ;
if(!($s <= 0)){
// try to catch the time ;
$t = $this->_sGetTime();
// make loop to count the seconds ;
do{
// renew the seconds
$i = $this->_sGetTime();
}while($i < ($t+10));
}
// finally ridirect the user ;
header("location: ".$f);
}
?>
function _sRedirect($u, $s, $m){
// $u = the url to the file where the user gonna be redirected to.
// $s = the number of seconds elapsed before redirecting ;
// $m = the message shown before redirecting ;
// print the message ;
echo($m);
// check if the redirect should notified too the user ;
if(!($s <= 0)){
// try to catch the time ;
$t = $this->_sGetTime();
// make loop to count the seconds ;
do{
// renew the seconds
$i = $this->_sGetTime();
}while($i < ($t+10));
}
// finally ridirect the user ;
header("location: ".$f);
}
?>
zo roep ik hem aan:
Ik krijg config is missing op het scherm, maar dat duurt cker 10 seconden. Maar wat ik daarna krijg snap ik niet want het aller eerst waar ik mijn pagina mee begin is het starte van de session_start() en de output buffering.
Maar toch krijg ik:
Warning: Cannot modify header information - headers already sent by (output started at D:\Webserver\Apache\htdocs\sulfCms\SulfCms V1.0.0\include\system.php:56) in D:\Webserver\Apache\htdocs\sulfCms\SulfCms V1.0.0\include\system.php on line 66
Lijn 56 was eerst de echo, maar is nu:
// check if the redirect should notified too the user ;
Kan iemand me hier uit helpen ?
P.S: $this->_sGetTime haalt de tijd op van dit moment, maar dan wel met microtime, maar dat heeft er 99% zeker niets mee temaken :)
Gewijzigd op 12/12/2005 17:36:00 door Niels
Je hebt ergens een echo vóórdat je de functie hebt aangeroepen (of je hebt het php blok niet aan de begin van de pagina gezet). Deze vraag is al heel vaak gesteld.
terwijl ik toch wel zeg dat hij hem moet laten zien ..
Die tijd heb ik al ver achter me en daar heb ik otch al op gezocht.
Kan het kloppen dat FF niet redirect als de pagina niet te vinden is, want IE redirect hem nu wel maar FF niet.
het bericht is nog niet getoond :(.
ik ga het met een for of een gewone while lus proberen :)
staat voor header(), en dat wil niet. Dus of echo weglaten, of header(), want header() stuurt de bezoeker meteen weg, dus er wordt dan niets ge-echo'd.
En het is in functies toch beter om te werken met return? ipv echo...
Meestal douw ik alles wat ik normaal zou echo'en in een variabele die ik dan aan het eind van mijn script output.
if(!($s <= 0)){
Dit kan anders:
if($s > 0){
Dus daarom dat ik het niet snap, trouwens die scripts ben ik helaas kwijt :(.
@Willlem-Jan: Nee want dit is een script dat de user doorstuurt en word zonder $blaat = aangeroepen dus heeft dat in dit geval niet veel zin
Jelmer misschien dat je dan toch gelijk hebt ik zou iig geen oplossing vinden voor het toch weergeven van berichten tijdens het redirecten, wat ik vaak genoeg met php heb gezien.
Maar mss kan het ook met de header refresh functie en dan doorsturen naar een interne url, extern werkt dan niet volgens mij :)
Maar ik zal wel weer zien
@Sebastiaan: Klopt ik weet dat het extra kan, maar ik ben het nu eenmaal gewend zo te doen, en ik heb altijd het gevoel dat het een extra controle geeft. Iig Bedankt voor de tip ;)
Ik gebruik meestal gewoon een meta refresh
bijvoorbeeld de for, maar dat ga ik nu uitzoeken :)
lol, ik zal hem effe bij scripts posten want hij is wel handig denk ik :)
Javascript met timeout ipv wachten en header via php. Dit is in jou geval een typisch javascript klusje...