Page 1 sur 1

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

Posté : 02 juin 2007, 16:13
par LaDroso
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!

Posté : 02 juin 2007, 16:28
par Sékiltoyai
Quand tu utilises tes tableaux superglobaux, tu testes si les index existent :
$page = isset($_GET['page'])?$_GET['page']:'valeur par défaut';

Posté : 02 juin 2007, 16:33
par LaDroso
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?

Posté : 02 juin 2007, 16:49
par LaDroso
En fait c'est bon, je te remercie Sékiltoyai! Et j'ai trouvé ce qu'il me fallait sur la fonction isset () ;)

Posté : 02 juin 2007, 16:55
par iclo
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.

Posté : 05 juin 2007, 14:54
par LaDroso
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 ;) !

Posté : 05 juin 2007, 14:58
par Ryle
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 !!! ;)