Weevil666 Posté le 12 juillet 2003 à 07:20:58 J´ai encore un ennui lol depuis que j´ai ajouté la fonction basename() mon else ne fonctionne plus. Dans l´exemple suivant avant lorsque $page n´etait pas renseigné ça renvoyait vers default.php Maintenant le else n´est plus pris enc ompte et j´ai une erreur. C´est quoi qui cloche ?
< ? $page = basename($page); if ( isset($page)){ include $page.´.php´; } else{ include ´default.php´; } ? >
Blawk
Niveau 10
12 juillet 2003 à 20:18:15
$page n´est jamais ´undefined´ puisque tu l´initialise avant le ´if´.
isset($var) vérifie si $var est ´undefined´ ou non, donc le ´else´ en sera jamais lu.
Mais je en pense pas que ce soit une méthode pratique d´opérer avec basename()...
Blawk
Niveau 10
12 juillet 2003 à 20:20:00
De toutes façons, il n´y a pas de mystère. Pour un script vraiment sécurisé, il faut vérifié si la page à inclure est dans une liste blanche.
Weevil666
Niveau 5
12 juillet 2003 à 21:18:45
Pk tu pense que ça n´est pas pratique ? Il suffit d´une ligne et ça fonctionne tres bien à partir de là je ne vois pas en quoi c´est genant. La methode de leBoss fonctionne aussi mais ne me parait pas plus pratique, c´est kif kif.
Le problème c´est que si je mets basename apres ça ne fonctionnera plus je crois.Je vais essayer avec la methode de leBoss finalement c´est moins prise de tete car j´ai absolument besoin d´une page par defaut.
Weevil666
Niveau 5
12 juillet 2003 à 21:26:18
Sunnmagic
comment tu fais pour utiliser à la fois basename() et un else pour renvoyer vers l´accueil lorsque la variable est mauvaise ?
sunnmagic
Niveau 9
15 juillet 2003 à 01:40:20
Voici une méthode, mais il y en a d´autres :
if ( file_exists("$page.php") or ! empty($page)){$pagea = basename($page.php,php) ; include("$pagea.php");}
else include ( "accueil.php") ;
Weevil666
Niveau 5
15 juillet 2003 à 03:46:48
Merci, cette methode me parait meilleure.
Blawk
Niveau 10
15 juillet 2003 à 10:43:31
Je en troufve pas ça pratique parce que si tu as une page dasn un autre dossier, tu ne peut pas y accèder.
sunnmagic
Niveau 9
15 juillet 2003 à 11:25:35
Bien entendu, mais quel est l´intérêt de dispatcher des pages dans divers dossiers ?
Perso, pour tous mes sites, toutes les pages sont dans un dossier, cela évite de les chercher un peu partout...
Blawk
Niveau 10
15 juillet 2003 à 11:30:59
Moi aussi ; ) Mais on a besoins ne serait-ce qu´une seule fois d´aller chercher une page ailleur, et bien on en peut pas...
sunnmagic
Niveau 9
15 juillet 2003 à 11:57:24
Comme je disais en début de message " Voici une méthode, mais il y en a d´autres", libre à la personne de l´adapter à ses besoins...
jarose
Niveau 10
15 juillet 2003 à 12:33:36
Arf... si les pages sont sur le même serveur que le " script", c´est facile de sécuriser le tout...
< ?php
if ( !file_exists($page.´.html´)) $page = ´default.html´;
include($page.´.html´);
? >
Weevil666
Niveau 5
15 juillet 2003 à 18:04:45
Merci pour votre aide.
Pour ma part comme j´ai pas mal de repertoires je vais mettre un index dans chaque repertoire, ça fera plusieurs index.php à charger pour le visiteur mais c´est plus pratique pour moi je trouve. Tout sur un seul repertoire ça devient vite illisible sur le ftp.
sunnmagic
Niveau 9
15 juillet 2003 à 18:26:19
Avec un language comme php, et une bdd, tu n´as pas besoin d´un grand nombre de pages pour un site, même s´il a beaucoup de contenu...
Weevil666
Niveau 5
15 juillet 2003 à 18:33:30
C´est parceque je n´utilise pas la BDD pour mes pages.
Blawk
Niveau 10
15 juillet 2003 à 19:00:11
tu devrait... ; )
ccoolspot5
Niveau 9
15 juillet 2003 à 19:18:48
ben ouais mais il est comme moi pas fortiche en php