AccueilFAQBlogRechercherMembresGroupesS'enregistrerConnexion

Partagez | 
 

 Récapitulifaen ! ( suite de : Lifaen ? J'ai mal au PHP )

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Lifaen

avatar

Nombre de messages : 42
Age : 24
Date d'inscription : 11/06/2008

Feuille de personnage
Nom: Gwaenael Lebihan
PV:
10/10  (10/10)
Métier: Geek

MessageSujet: Récapitulifaen ! ( suite de : Lifaen ? J'ai mal au PHP )   Mer 18 Juin - 20:35

Récapitulons


Tu avais l'intention de faire une seule page affichant toutes les autres pages contenues dans la bdd. Je t'ai répondu que c'était une très mauvaise idée, bien que ce fut possible. Il existe d'autres moyens, je t'en ai montré un : les structures à pages inclues. Le site du Zer0, Judgehype, mon propre site et plein d'autres sites à structure pratiquement invariable fonctionnent avec des includes sécurisés.

Les includes :
"Tout code peut être sécurisé, tout est dans l'art et la manière de faire."
Lifaen

Une inclusion normale est sans danger : "include('fonction.php');". Ce code inclus fonction.php, rien de particulier ne se passe. Qu'une include soit sécurisée ou insécurisée vient du fait que le paramètre de la fonction est variable. "include($page);" est potentiellement dangereux car $page peut avoir plusieurs valeurs ('accueil.php' ou 'bdd.php' ou 'http://www.hack.net/virus.php'), le code inclus le fichier quel qu'il soit.
Je ne veux donc jamais, JAMAIS voir : "include($_GET[$page]);".

En revanche, si tu met le code :
Code:
if($_GET['page'] == 'page')
{
include('page.php');
}
Alors il n'y a aucun risque, il inclus page ou il inclus rien. *Ouf*

Voici un exemple :
Un lien pour un livre d'or : "index.php?page=livredor" et celle d'une page de connexion : "index.php?page=connexion".
Code:
 // Le code qui affiche la page
if($_GET['page'] == 'livredor')
{
include('livredor.php');
}

elseif($_GET['page'] == 'connexion')
{
include('connexion.php');
}

else // Sinon j'affiche la page d'accueil
{
include('accueil.php');
}
Ce système est parfaitement sécurisé, il n'y a aucun risque.


Petite précision :

  1. Le lien peut aussi être "?page=livredor", écrire index.php n'est pas nécessaire car si aucun fichier spécifique n'est demandé, c'est lui qui s'affiche.
  2. Le lien peut aussi être "index.php?livredor", c'est plus joli et ça fonctionne aussi avec le code suivant.
    Code:
    if(isset($_GET['livredor']))
    {
    include('livredor.php');
    }

    elseif(isset($_GET['connexion']))
    {
    include('connexion.php');
    }

    else // Sinon j'affiche la page d'accueil
    {
    include('accueil.php');
    }
  3. Il est également possible de combiner les deux : ?livredor". C'est plus pratique, plus esthétique...
Tuto sur les includes sécurisés et infinis !

Je t'ai ensuite proposé de faire, pour ton site, un système qui combine plusieurs méthodes.
Essaie de faire une boucle qui, à l'aide de ta bdd et de ta table page, détermine quelle page il faut inclure.

Modifie ta table page comme ceci :
id : auto_increment, int, 9
nom : varchar, 255
chemin_page : varchar, 255

Pour faire ce système, tu dois:

  1. Charger la liste des pages existante et le chemin correspondant avec une requête SQL
  2. Faire une boucle qui détermine la page qui correspond à la valeur dans ton lien ($_GET['page])
  3. Faire un script dans une page à part qui permet de rajouter le nom d'un nouvelle page et son chemin dans ta table page
Précision : Tu peux mettre une variable dans une variable superglobale ou un array : si $variable = 'page' alors $_GET[$variable] revient à $_GET['page'].

Si tu n'y arrives pas, je t'y aiderais. Prochain épisode : le bonus !
Bonne chance !

(une petite récapitulation ne fait pas de mal, surtout pour un sujet qui devenait compliqué alors qu'il ne l'est pas particulièrement)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://elouan.p.c.free.fr/
Paladin

avatar

Nombre de messages : 1103
Date d'inscription : 25/05/2008

Feuille de personnage
Nom: Venceslas Iosef
PV:
9/11  (9/11)
Métier: Psychologue

MessageSujet: Re: Récapitulifaen ! ( suite de : Lifaen ? J'ai mal au PHP )   Mer 18 Juin - 22:10

Le fou. N'oublie de t'occuper de ta vie, de temps en temps. Et encore merci... je vais relire ça. Après dodo.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.vulgus.net
Lifaen

avatar

Nombre de messages : 42
Age : 24
Date d'inscription : 11/06/2008

Feuille de personnage
Nom: Gwaenael Lebihan
PV:
10/10  (10/10)
Métier: Geek

MessageSujet: Vifaen   Jeu 19 Juin - 16:54

Paladin a écrit:
Le fou. N'oublie de t'occuper de ta vie, de temps en temps. Et encore merci... je vais relire ça. Après dodo.

Meuh non, je tape très vite, ça ma pris quoi ? Un quart d'heure ? Non, non, ne t'inquiète pas pour ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://elouan.p.c.free.fr/
Contenu sponsorisé




MessageSujet: Re: Récapitulifaen ! ( suite de : Lifaen ? J'ai mal au PHP )   

Revenir en haut Aller en bas
 
Récapitulifaen ! ( suite de : Lifaen ? J'ai mal au PHP )
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» RESOLU works suite 2004 (word) non installé ??
» Bug suite à la mise à jour 10.0.45.2 du player flash résolu
» Outpost Security Suite FREE
» [Résolu] comment mettre plusieurs animationa la suite
» Nouvelle voiture pour Kit dans la suite de K2000

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AnswerPlace :: Bienvenue à Geekland :: Hardware, Software y tutti quanti-
Sauter vers: