begin process at 2013 05 25 21:25:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FONCTION DE REDIRECTION

FONCTION DE REDIRECTION


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :redirection, php, actualisation, redirect Niveau :Débutant Date de création :18/12/2012 Date de mise à jour :19/12/2012 13:40:13 Vu :2 882

Auteur : monpoke

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Fonction simpliste permettant de gérer des redirections.

Cette fonction s'utilise ainsi :

// Actualisation de la page
Redirect();

// Redirection vers une page
Redirect("/mapage");

// Redirection après un laps de temps
Redirect("/mapage", 5);

Source

  • <?php
  • // fonction de redirection
  • function Redirect($adresse="", $temps = NULL){
  • if(!empty($adresse) && $temps==null){
  • header("Location: $adresse");
  • exit(_("<a href=\"$adresse\" title=\"Cliquez ici\">Si la redirection ne se fait pas, cliquez ici.</a>"));
  • }
  • elseif(!empty($adresse)) {
  • if (!headers_sent()) {
  • header("Refresh:$temps; url=$adresse");
  • exit;
  • }
  • else {
  • echo '<meta http-equiv="refresh" content="'.$temps,';url='.$adresse.'" />';
  • }
  • } else {
  • Redirect($_SERVER['REQUEST_URI']);
  • }
  • }
<?php
// fonction de redirection
function Redirect($adresse="", $temps = NULL){
	if(!empty($adresse) && $temps==null){
		
		header("Location: $adresse");
		exit(_("<a href=\"$adresse\" title=\"Cliquez ici\">Si la redirection ne se fait pas, cliquez ici.</a>"));
	}
	elseif(!empty($adresse)) {

		

		if (!headers_sent()) {
			header("Refresh:$temps; url=$adresse");
			exit;
		}
		else {
			echo '<meta http-equiv="refresh" content="'.$temps,';url='.$adresse.'" />';
		}

	} else {
		Redirect($_SERVER['REQUEST_URI']);
	
	}
}



 Historique

18 décembre 2012 19:32:14 :
-- Ajout balises php --
19 décembre 2012 13:40:13 :
Ajout de la fonction headers_sent

 Sources de la même categorie

Source avec Zip Source avec une capture ESPACE MEMBRE VERSION 3 EN PHP 5 par JejeScript
Source avec Zip SAUVEGARDE ADRESSE IP VISITEUR par michael33512
Source avec Zip TCHAT PHP5, JAVASCRIPT->AJAX par JejeScript
Source avec Zip Source avec une capture ESPACE MEMBRE par JejeScript
Source avec Zip EXEMPLE DE GESTION DE PLUSIEURS STYLES CSS EN PHP par JejeScript

 Sources en rapport avec celle ci

Source avec Zip WEB PHP FTP CLIENT par bebert2310
Source avec Zip CHAMPS ET FORMULAIRE HTML 5 par laurent1133
Source avec une capture SYNCHRONISATION DE DEUX DOSSIERS par dlasserre
Source avec Zip SCRIPT CONNEXION AJAX par bebert2310
Source avec Zip CHAT PHP/AJAX/MYSQL par bebert2310

Commentaires et avis

Commentaire de bono62 le 19/12/2012 00:41:31

Refresh est une entête HTTP non standard. Même si elle est supportée par la totalité des navigateurs populaires, il reste des problèmes de compatibilité non négligeables. Selon certains articles, et d'après quelques tests, il se trouve que cela entraine exactement le même comportement qu'une meta Refresh. Donc, ne fonctionne pas pour les crawlers (Googlbot...) et certains clients (wget, cURL...)

Commentaire de JejeScript le 19/12/2012 13:15:49

il serait mieux de vérifier le headers_sent()
et d'éviter && au lieu de AND qui serait plus approprier dans ce cas

voici une fonction que j'utilise pour la redirection :

function redirection($url, $time=0) {
   if (!headers_sent()) {
     header("refresh: $time;url=$url");
     exit;
   }
   else {
     echo '<meta http-equiv="refresh" content="',$time,';url=',$url,'">';
   }
}

Commentaire de monpoke le 19/12/2012 13:43:33

@Bono62 : Je ne vois pas l'intérêt de rediriger Google au bout de x secondes ^^ Cependant pour les autres navigateurs, je ne vois pas comment gérer leur redirection ^^'

A moins que je ne me trompe, mais bon.

@JejeScript : && et AND ne sont-ils pas équivalents ? ^^'
J'ai ajouté le headers_sent (: Merci !

Commentaire de JejeScript le 19/12/2012 14:09:47

Non 11 et AND ne sont pas équivalent

Commentaire de JejeScript le 19/12/2012 14:12:42

j ai dit une bétise lol
&& et mieux
car "&&" est plus prioritaire que "and"

Commentaire de JejeScript le 19/12/2012 14:22:59

Mais pour revenir a ton code headers_sent() vérifie si les pièces du header ont déjà été appelées donc cela doit être placé avant toute action sur le header sinon il risque d'y avoir des erreurs.

Pourquoi tester si la variable $temps, puisque tu la clairement défini dans les variables de ta fonction

Et enfin tu ne devrai pas définir ta variable adresse dans ta fonction de cette manière cela pourrais aussi générer des erreurs utilise simplement $adresse au lieu de $adresse=""

Petite dernière question bête, pourquoi utiliser un header location si tu utilise le header refresh ensuite ?

Commentaire de monpoke le 19/12/2012 16:46:24

JejeScript :
D'accord pour le && ^^

Apparemment tu n'as pas compris son utilité :p

Si $adresse n'est pas renseigné :
Actualisation de la page courante.

Sinon :
   SI $temps est égal à null (valeur par défaut)
      On redirige directement sur l'adresse
   SINON (!empty($adresse) && $temps !== NULL)
      On ecrit la redirection pour $temps secondes.
   Fin sinon
Fin Sinon
    

^^

Commentaire de hornetbzz le 24/12/2012 13:05:45

L'idéal serait d'essayer des redirections contrôlées, en commençant par un renvoi (à vérifier qu'ils n'aient pas déjà été envoyés) des headers puis javascript puis html. Il y a un post dans la doc php à ce sujet : http://php.net/manual/en/function.header.php#83448

Commentaire de jojo19 le 27/12/2012 17:56:52

Question (peut-être idiote, mais je la pose tout de même) :
pourquoi ne pas utiliser une fonction toute simple en JS ? ? ?
telle que :
<script type="text/javascript" language="JavaScript">
<!--
setTimeout("window.location='http://www.monsite.com",50);
-->
</script>

Quelle est le plus du php ? ? ?

Commentaire de abdelaziz_info le 14/02/2013 19:13:22

Bonjour,
jojo19 :

1-  l'idiotie est de ne pas poser de question si on ne sait pas...

2- La réponse à ta question est: si le  (JavaScript) est absent ou désactivé tu ne peux jamais aller à ('http://www.monsite.com')

3- Un commentaire  dans Une balise de (JavaScript) doit  finir comme suivant: //-->

4- il manque ('), Pour que ton code fonctionne il doit être rédigé comme suivant :
<script type="text/javascript" language="JavaScript">
<!--
setTimeout("window.location='http://www.mahdi.elalia.net'",50);
//-->
</script>

Bon courage.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

problème de redirection [ par kwak ] Bonjour à tous,je me trouve depuis quelques temps déjà confronté à un problème de redirection. Ici le problème se pose pour rediriger l'utilisateur se redirection en php [ par flatmax ] salut, j'aimerais savoir comment faire une redirection en PHP. merci de votre aide [php] Redirection [ par Trigun222 ] Salut,j'aimerais savoir comment modifier ce code&lt;?phpset_time_limit(0);sleep(3600);header("location: http://www.monsite.com/mapage.php/");?&gt; pou Liste deroulante et redirection ? [ par Joez ] Bonjour, je voudrais faire une liste deroulante PHP contenant des dates et qui redirige vers une page php avec en parametres la dateexemple2003 - 2004 problem de redirection [ par appollon ] je souhaite grace a une base données enregistrer mes utilisateur qui aurau trois type de droit et selon leur droit auront une page differente qui s'af Problème de redirection [ par alainG ] Après avoir créé un enregistrement dans une table à l'aide d'un formulaire, j'essaie de rediriger vers une liste de mon fichier sur une autre page av Actualisation page en php [ par toy117 ] Je souhaite faire actualiser regulierement (txt et images) une page (html ou php?) de mon site par les membres de ma famille sans complication. Commen redirection dans un formulaire [ par rastagnol ] salut !voila mon soucis ...G un formulaire dans lequel G des boutons radios qui redirigent apres l'envoi de ce formulaire via du javascript mais le p redirection avec php [ par sahliali ] je veut faire une page d'inscription,et je veut inserrer le formulaire dans une base de donnée,avant de l'insertion je veut tester sur des champss'il Problème redirection [ par lolorenzeb ] Bonjour,voila j'ai un probl&#232;me de redirection sur une page php. En fait j'ai fait une page qui supprime une image puis qui recharge la page pr&#2


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales