Une fonction rapide qui permet d'obtenir une redirection avec passage de paramètres sous diverses formes: lien, bouton, balise meta, javascript.
J'ai mis quelques exemples, mais ils apparaissent tout foirés ici..., voir le screenshot ;)
Source / Exemple :
<?PHP
function redir ($url='',$type='l',$param='',$etiq='Continuer...',$sec=3){
/*
$url string
url de destination, self par défaut
$type string
type de redirection:
'l'=par lien à cliquer (par défaut)
'm'=par balise meta
'b'=par bouton de formulaire
'j'=par javascript
'o'=par boutton via onclick=...
$param array
tableau contenant les paramètres à passer
$etiq string
nom du lien ou du boutton('Continuer...' par défaut)
$sec int
nombre de secondes avant redirection (uniquement pour 'meta',3 par defaut)
si un etiquette est donnée en type 'm' ou 'j',la redirection meta ou java est doublée avec un lien
renvoie une string en conséquence, à utiliser avec echo ou print.
if (!$url){$url=$_SERVER['PHP_SELF'];}
$t=substr($type,0,1);
if (!strchr('lbmoj',$t)){$t='l';}
switch ($t){
case ($t<>'b'):
$u=$url;
$k='?';
if (is_array($param)){
while(list($nom,$valeur)=each($param)){
$u.=$k.urlencode($nom).'='.urlencode($valeur);
if ($k=='?'){$k='&';}
}
}
if (($etiq)&&($t<>'o')){
$e="<a href=\"$u\">$etiq</a>\n";
}else{$e='';}
switch ($t){
case ('j'):
$e.="<script language=\"javascript\">document.location = '$u';</script>\n";
break;case ('m'):
$e.="<meta http-equiv=\"refresh\" content=\"$sec; url=$u\">\n";
break;case ('o'):
$e.="<input type=\"button\" value=\"$etiq\" onclick=location.href=\"$u\" />\n";
}
break;case ('b'):
$e="<form action=\"$url\" method=\"post\" target=\"_self\" class=\"std\">\n";
if (is_array($param)){
while (list($nom,$valeur)=each($param)){
$e.="<input name=\"$nom\" type=\"hidden\" value=\"$valeur\" />\n";
}
}
$e.="<input type=\"submit\" value=\"$etiq\" />\n";
$e.="</form>\n";
break;}
return $e;
}
?>
Conclusion :
Correction de quelques bugs dû à une mise au propre...
il manquait 'url =' sur la meta, pis un '!' vers le haut, et qq guillemets...
Mea culpa...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.