Système de chargement de ma page [PHP] - PHP - Programmation
Marsh Posté le 18-02-2010 à 12:26:57
Qu'est-ce qui ne marche pas ?
La barre oblique "/" au début du chemin est une source fréquente de problème. Elle indique l'utilisation d'un chemin absolu par rapport à la racine. Mais la racine est souvent différente de celle à laquelle pense le programmeur, car elle dépend de la configuration du serveur. Il vaut mieux utiliser des chemins relatifs, qui commence par "../" pour indiquer un répertoire au dessus ou rien pour indiquer le répertoire courant.
Marsh Posté le 18-02-2010 à 12:32:45
Ouep, c'est vrai. J'ai remplacé.
Ben ça ne fonctionne pas dans le sens où mes deux if/else imbriquées font n'importe quoi ...
Le 1er chargement du index.php (sans paramètre d'URL donc) me renvois sur la page d'erreurs, le lien pour diriger sur la page inscription me renvois sur la page d'accueil... enfin du grand n'importe quoi. Je crois que j'ai merdé dans la conceptions de mes boucles.
Marsh Posté le 18-02-2010 à 16:53:31
header('location: /index.php?contenu');
tu passes par URL la variable "contenu" mais tu ne lui affectes aucune valeur.
ton idée de faire un tableau exhaustif de toutes les possibilités est excellente, d'un point de vue sécurité, faut juste faire attention à ce que ça soit évolutif (aujourd'hui, 4 pages, ok ;.. demain, 1000 pages ?)
Attention au "empty" également : empty vérifie le contenu de la variable, pas la variable en elle-même. Or quand tu appelles la page la première fois, $_GET['contenu'] n'existe pas ...
typiquement :
Code :
|
EDIt : précision, "header" n'est pas une redirection, à la base, mais plutôt une spécification du type de contenu qu'on envoie. Assure-toi bien qu'il n'y a réellement aucun code avant ...
Marsh Posté le 19-02-2010 à 11:30:59
Merci NewsletTux, je vais faire ce que tu m'as dit.
J'ai continué à y bosser un peu hier et j'ai trouvé une solution qui marche parfaitement. Testé sur Firefox, Chrome et IE8.
Je donne le code à disposition, si ça peut servir à quelqu'un (faites un petit post si vous vous en servez, ça fait toujours plaisir de voir qu'on à fait un truc utile):
Code :
|
Petite question au passage :
Un collègue qui regardait par dessus mon épaule hier me dit : "Ouéééé, tu utilises la méthode $_GET, c'est de la meeeeeerde ! Il faut utiliser $_POST ! Ca marche exactement pareil, mais ça permet de pas avoir les variables qui passent d'une page à l'autre qui s'affichent ! C'est vachement plus sécurisé que $_GET !".
C'est vrai ? Ca crain vraiment GET ? J'ai essayé de changer mes GET par des POST et manifestement ça doit marcher exactement pareil... plus rien ne tourne...
Un avis sur cette remarque ?
Marsh Posté le 19-02-2010 à 13:21:28
Ton collègue est un imbécile s'il pense que post est plus sécurisé que get
Si on fait "afficher la source", on verra ce qui sera passé dans le formulaire.
Après, c'est au développeur de bien blinder son appli. Dans ton cas, t'as défini une liste de pages pouvant êtres affichées, donc ça limite les pbs. Tu pourrais compléter en vérifiant que le fichier .php existe bien sur ton serveur
Pour info, ce que tu cherches à faire s'appelle MVC (Modèle Vue Contrôleur). Y'a un gros topic là-dessus sur ce forum, actuellement en première page. Là, ce que tu fais c'est surtout la partie "Contrôleur" les modèles et Vues étant probablement dans tes fichiers .pgp passés en include()...
Marsh Posté le 19-02-2010 à 13:45:52
rufo a écrit : Ton collègue est un imbécile s'il pense que post est plus sécurisé que get |
J'appuie ces propos intégralement
Marsh Posté le 18-02-2010 à 11:44:03
Bonjour à tous,
Le débutant en PHP que je suis bloque (encore un ).
J'essaye de mettre en place un sytème de chargement de ma Div centrale de mon site au point, le tout en PHP. Mais je bloque sur un truc.
Avant toutes choses, voici ce que j'aimerai faire :
La 1ere requête de mon client arrive, je charge ma page "index.php" avec un include de la page "accueil.php" sur ma DIV principale. Aucune variable n'est passée par l'URL.
Le client clique sur un lien (exemple [inscription]), ma page index.php s'appelle elle même en passant la variable "inscription" par l'URL. Ma page index.php fait un include de la page "inscription.php" sur ma DIV principale.
Le client clique sur un lien (exemple [connexion]), ma page index.php s'appelle elle même en passant la variable "connexion" par l'URL. Ma page index.php fait un include de la page "connexion.php" sur ma DIV principale.
Le client clique sur un lien (exemple [accueil]), ma page index.php s'appelle elle même en passant la variable "accueil" par l'URL. Ma page index.php fait un include de la page "accueil.php" sur ma DIV principale.
[...]
et ainsi dessuite pour tous les liens.
Dans le code ci-dessous :
contenu -> variable de l'URL qui passe le nom de la page où aller
$tab -> petit tableau qui me sert à faire un test de sécurité. (J'ai lu qu'il était plus sûr de faire comme ça, si vous avez des remarques/conseils, allez-y)
Le code de ma DIV principale en question :
Si quelqu'un peut me dire où mon raisonnement merde ? J'ai un peu du mal à trouver maintenant...
Merci
Message édité par tanshiro le 18-02-2010 à 12:29:50