Redirections faciles

Description

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...

Codes Sources

A voir également

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.