Header
Partagez | 

[Astuce]Les redirections

avatar

Mes clubs


En savoir plus
Mes clubs extra-scolaires:

Eluknow

Doyen
Bons Points (BP) : 107
Voir le profil de l'utilisateur http://a-toi-de-coder.forumactif.org/

Message Sujet: [Astuce]Les redirections   Dim 29 Juin - 12:14

Les redirections


Bonjour Invité,
Les redirections sont bien souvent synonymes de problèmes : pas prises en compte, trop longues, dysfonctionnelles, et j'en passe.
Dans ce tutoriel nous allons voir tous les secrets de ces redirections, dans différents langages Wink.
Ce tutoriel est assez complet, n'hésitez pas à ne lire que les parties qui vous intéressent.
D'ailleurs, les voilà !

  • Pour son forum
    1. Les redirections en html
    2. Les redirections en javascript
  • Pour son site
    1. Les redirections en PHP, partie 1
    2. Les redirections en PHP, partie 2


Bonne lecture Wink
Revenir en haut Aller en bas



Cadeau de Noël


Mon dipl'homme:
 

Avatars et signas cadeaux':
 

avatar

Mes clubs


En savoir plus
Mes clubs extra-scolaires:

Eluknow

Doyen
Bons Points (BP) : 107
Voir le profil de l'utilisateur http://a-toi-de-coder.forumactif.org/

Message Sujet: Re: [Astuce]Les redirections   Dim 29 Juin - 12:15

Pour son forum


Il est souvent utile de faire des redirections sur son forum. En cas de déménagement, lors d'une maintenance (rediriger sur la chatbox par exemple), sur un sous-forum (par exemple, rediriger un forum sur un sujet. Pratique non ?), ou même pour faire un sous-forum URL !
Assez blablater, on y va Wink

Les redirections en HTML


Les redirections en HTML se font grâce une balise orpheline (qui se referme toute seule), que tu utilises déjà pour définir l'encodage de votre page, et ne pas avoir de petits soucis avec des caractères comme iïàéèê. Je parle de la balise <meta />
Là, nous allons l'utiliser avec deux attributs :
http-equiv : cet attribut permet d'indiquer l'action voulue. Ici, on veut rediriger. On utilisera alors comme valeur : refresh.
content : cet attribut définit le temps, en secondes, avant de rediriger, et l'url où nous voulons rediriger les internautes. Il s'écrit de la sorte suivante :
content="temps; url=adresse_url"

Voici donc à quoi pourrait ressembler notre redirection :
Code:
meta http-equiv="refresh" content="5; url=http://www.school-of-pub.net"/>

Explication du code : on redirige l'utilisateur à l'adresse http://www.school-of-progress.fr au bout de 5 secondes.

Cette balise est originellement à mettre entre les balises <head> </head>.

Les redirections en Javascript


Notre ami le langage Javascript est aussi là pour nous aider à faire nos redirections.
Ici, nous n'utiliserons que 25 caractères pour faire notre redirection.
Et les voici nos 25 caractères :
Code:
document.location.href=""
Alors alors, décodons tout ça :
document : ça signifie qu'on agit sur notre page.
location : on redirige...
href : à l'adresse voulue.

Voilà, on peut en faire une phrase ! On agit sur notre page en redirigeant à l'adresse URL choisie
Facile non ?

Du coup, si on veut rediriger vers le site de SoP, on aura :
Code:
document.location.href="http://www.school-of-pub.fr"

Comme tout code javascript qui se respecte, on les met entre balises script, comme ça :

Code:
<script type="text/javascript">
document.location.href="http://www.school-of-pub.fr";
</script>

/!\ Attention /!\ :Ce principe n'assure pas forcément la redirection de l'utilisateur. En effet, il est possible de désactiver Javascript dans le navigateur. Dans ce cas, la fonction ne sera pas lue et l'utilisateur restera sur la page, sans être emmener ailleurs.
Afin d'indiquer un message aux internautes n'ayant pas Javascript d'activé, tu peux utiliser les balises HTML <noscript> </noscript>.
Mets donc entre ces balises le message que tu souhaites (par exemple : Redirection impossible, vous devez activer Javascript dans votre navigateur.), et celui-ci s'affichera si et seulement si Javascript n'est pas activé Wink.

Code exemple noscript:
 

Un exemple concret


Imaginons que tu mettes ton forum en maintenance, et que tu veuilles rediriger tes utilisateurs sur la chatbox.
Va sur le Panneau d'Administration, dans Général, Forum puis Configuration.
Il ne te reste plus qu'à activer la maintenance, et à mettre un message semblable à :
screen message à mettre
Revenir en haut Aller en bas



Cadeau de Noël


Mon dipl'homme:
 

Avatars et signas cadeaux':
 

avatar

Mes clubs


En savoir plus
Mes clubs extra-scolaires:

Eluknow

Doyen
Bons Points (BP) : 107
Voir le profil de l'utilisateur http://a-toi-de-coder.forumactif.org/

Message Sujet: Re: [Astuce]Les redirections   Dim 29 Juin - 12:15

Pour son site


Pour ton site, les redirections en HTML ou en Javascript sont bien évidemment utilisables, mais il existe un autre langage tout autant approprié voire plus encore approprié.
Et ce langage est le PHP !

Redirection en PHP : Partie 1



Comment se passe donc redirection en PHP..
En fait, il suffit d'invoquer une fonction native de PHP : header().

Afin de voir comment tu peux l'utiliser Invité, voici comment on redirigerait vers le forum de SoP avec cette fonction :

<?php header('Location: http://www.school-of-progress.fr/'); ?>



Comme tu l'auras vu, on met derrière le paramètre Location l'adresse URL du site.

Facile et simple. Cette méthode assure la redirection des internautes.
Seulement il y a un problème..

On ne peut utiliser cette fonction que si aucun code HTML n'a été généré avant.
Que cela signifie-t-il ?

Prenons le code suivant, tout bête :
Code:
<?php
echo 'Je suis du HTML !';
header('Location: http://www.school-of-pub.net');
?>
Et bien, impossible de le faire fonctionner..

Ca parait logique en soi :
-La fonction native header() modifie les entêtes HTTP (le lien si on veut faire simple). Du coup, si on indique du texte avant de rediriger, ben ce texte il s'écrit où ? Sur la page actuelle ou sur la page où on veut rediriger ? Ben il s'écrit pas, et bloque tout !

Pour cela, on a donc des solutions !

La redirection en PHP : Partie 2


Il est possible de passer par un système de concaténation

La concaténation est le fait d'attribuer à la suite plusieurs valeurs à une variable.

pour afficher du contenu sans bug.
De la manière suivante :
Code:
<?php
$texte = '';
$texte .= 'Je suis du HTML ! ';
header('Location: index.php');
echo $texte;
?>

Explication du code : On créé une variable $texte. Puis, on lui ajoute une valeur, qui est une chaîne de caractères "Je suis du HTML ! ". On redirige vers l'index de notre site et seulement à la fin, on affiche le texte.

Ce système, assez simple, s'appelle la tamporisation de sortie.
Elle consiste à stocker du contenu, et à l'afficher après la redirection.

Il existe donc, 2 autres fonctions bien pratiques suivant ce système de la tamporisation de sortie.
ob_start() et ob_end_flush()

Qu'est-ce qu'elles font, comment elles fonctionnent ?
En fait c'est assez simple là aussi.

Au début, il suffit d'invoquer la fonction ob_start() et la fonction ob_end_flush().
Tout ce qu'on mettra entre ces deux fonctions et qu'on affichera sera alors stocké dans un tampon. Une fois qu'on aura redirigé, ob_end_flush se chargera d'afficher ce tampon puis de le détruire une fois affiché.

Je pense qu'un exemple est maintenant nécessaire.
Code:
<?php
ob_start(); //On "ouvre" ou initialise notre tampon

$texte = 'Du texte'; //Variable contenant du texte à afficher

echo $texte; //On affiche cette variable dans le tampon

print ' et encore du texte'; //On affiche un autre texte

ob_end_flush(); //On ferme notre tampon et on l'affiche
?>

Et cela affichera Du texte en encore du texte

Si ensuite on veut rediriger, on n'a plus qu'à utiliser header() juste après ob_end_flush() et nous n'aurons plus de problèmes Wink

(Une autre fonction est disponible, il s'agit de ob_clean(), à utiliser à la place de ob_end_flush() dans le cas des redirections avec header()).

Voilà, j'espère que ce tutoriel t'aura aidé Wink

Vous rencontrez un souci avec ce tutoriel ? Venez poser votre question [ici].

Idea N'oubliez pas de lire et de suivre les [règles de la section].



Je soussigné, Eluknow, accepte qu'un directeur reposte le présent tutoriel "[Astuce]Les redirections" tel que je l'ai rédigé.
Revenir en haut Aller en bas



Cadeau de Noël


Mon dipl'homme:
 

Avatars et signas cadeaux':
 

[Astuce]Les redirections
Page 1 sur 1
 Sujets similaires
-
» Suggestions de sujets d'astuce
» Petite astuce informatique
» Boucle de retournement
» Un autre mystère
» Klaxon Au croisements des trains
Réponse rapide

School of Progress :: La bibliothèque :: Tutoriels :: Informatique :: Codage+