Questions sur les variables passées dans la barre d'adresse

LaDroso
Invité n'ayant pas de compte PHPfrance

02 juin 2007, 16:13

Bonjour!

Alors voila, je tiens un site web amateur et je me pose quelques questions sur les variables du type " index.php?var=qqch"
Je sais parfaitement comment utiliser le contenu de la variable var, donc là n'est pas le problème.

En fait, ma page principale est news.php et cette page récupère les variable "page" et "jeu" passées dans la barre d'adresse pour changer de page. Il y a donc un $page=$_GET['page'] dans le code.

Le problème est que lorsque les visiteurs arrivent sur le site, la page news.php est chargée par défaut sur le serveur mais il n'y a pas les variables de passées également: un message d'erreur apparaît donc en disant " les variables page et jeu sont indéfinies ". Donc, je voulais savoir s'il existait un moyen de faire en sorte que quand on arrive sur le site, une valeur par défaut soient mise dans ces variables pour empecher l'erreur de s'afficher?

Bon je sais que ce n'est pas clair, mais vous comprendrez-vite avec ce lien ce que je veux dire:
http://squareworld.nuxit.net/news.php
Quand vous cliquez dessus, l'erreur s'affiche car les variables n'apparaissent pas dans la barre d'adresse.

Merci d'avance pour vos éventuelles réponses!

ViPHP
ViPHP | 5924 Messages

02 juin 2007, 16:28

Quand tu utilises tes tableaux superglobaux, tu testes si les index existent :
$page = isset($_GET['page'])?$_GET['page']:'valeur par défaut';

LaDroso
Invité n'ayant pas de compte PHPfrance

02 juin 2007, 16:33

Et est-ce que cette méthode me permettrait aussi de cacher les variables? Je veux dire de les enlever de la barre d'adresse?

LaDroso
Invité n'ayant pas de compte PHPfrance

02 juin 2007, 16:49

En fait c'est bon, je te remercie Sékiltoyai! Et j'ai trouvé ce qu'il me fallait sur la fonction isset () ;)

ViPHP
ViPHP | 2144 Messages

02 juin 2007, 16:55

Attention aussi tu fais un include en fonction de ces variables, que le contenu de la variable correspond bien à une page destinée à être affichée:
par ex:
include($_GET['page']);
Permet au visiteur d'includer n'importe quel fichier php, et cela représente donc une faille de sécurité potentielle.

LaDroso
Invité n'ayant pas de compte PHPfrance

05 juin 2007, 14:54

En fait, je fais un switch avec la variable $page en paramètre et cela donne ca:

Code : Tout sélectionner

switch($page) { case 'toto':include('toto.php');break; case 'tata':include('tata.php');break; . . . }
Mais merci pour tes conseils ;) !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 juin 2007, 14:58

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...