Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1552 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  (noob)Site en include et erreur 404...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

(noob)Site en include et erreur 404...

n°1206390
GANONEINC
Posté le 24-09-2005 à 11:25:14  profilanswer
 

Salut à tous , j'ai enfin décider de passer mon site en php (tout doucement) en commencant par refaire l'architecture globale en utilisant des include sur ma page index.php
 
En clair :

Code :
  1. <? //debut des includes
  2.     if ($_GET['page'] == "charte" ) //include charte
  3.     {
  4.         include("charte.php" );
  5.     }
  6.    
  7.     if ($_GET['page'] == "membres" ) //include membres
  8.     {
  9.         include("membres.php" );
  10.     }
  11.    
  12.     if ($_GET['page'] == "inscription" ) //include Inscriptions
  13.     {
  14.         include("inscription.php" );
  15.     }
  16.    
  17. if ($_GET['page'] == "recits" ) //include récits
  18.     {
  19.         include("recits.php" );
  20.     }
  21.     if ($_GET['page'] == "screen" ) //include screenshots
  22.     {
  23.         include("screen.php" );
  24.     }
  25. if ($_GET['page'] == "phpbb2" ) //include phpBB2
  26.     {
  27.         include("phpbb2.php" );
  28.     }
  29.     if ($_GET['page'] == "archives" ) //include Archives des news
  30.     {
  31.         include("archives.php" );
  32.     }
  33.     if ($_GET['page'] == "videos" ) //include Videos
  34.     {
  35.         include("videos.php" );
  36.     }
  37.     if ($_GET['page'] == "download" ) //include Download
  38.     {
  39.         include("download.php" );
  40.     }
  41. if ($_GET['page'] == "contacts" ) //include Contacts
  42.     {
  43.         include("contacts.php" );
  44.     }
  45.     if ($_GET['page'] == "google" ) //include Rechercher avec google.
  46.     {
  47.         include("google.php" );
  48.     }
  49. if ($_GET['page'] == "guest" ) //include Livre d'Or
  50.     {
  51.         include("guest.php" );
  52.     } 
  53. if ($_GET['page'] == "wallpapers" ) //Wallapapers Warcraftnet
  54.     {
  55.         include("wallpapers.php" );
  56.     } 
  57. if ($_GET['page'] == "goodies" ) //include Goodies
  58.     {
  59.         include("goodies.php" );
  60.     }
  61. if ($_GET['page'] == "partenaires" ) //include Partenaires
  62.     {
  63.         include("partenaires.php" );
  64.     }
  65. if ($_GET['page'] == "about" ) //include Partenaires
  66.     {
  67.         include("about.php" );
  68.     }
  69.     ?>


 
et moi j'aimerai bien que si la variable est nul afficher ma page index normal avec le contenue normal d'une page index.
 
Je pensai à un petit

Code :
  1. else
  2. {
  3. include("index2.php" )
  4. }


 
 
mais apres je me suis dit que mettre pour une page erreur 404 en cas de variable fausse ? et la je suis concé aidez moi !!!
 
Il faudrait un truc du genre si variable fausse on include 404.php
mais pas si varriable vide...
 
Je vous conjure aidez moi !

mood
Publicité
Posté le 24-09-2005 à 11:25:14  profilanswer
 

n°1206393
plainsofpa​in
Pingouino's lover
Posté le 24-09-2005 à 11:28:02  profilanswer
 

Les pages d'erreurs 404 personnalisées se font via un fichier htaccess, recherche sur google tu devrais trouver plein d'explications.
 
Sinon pour vouloir a tout prix mettre toutes tes pages en include ? [:pingouino]


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1206395
GANONEINC
Posté le 24-09-2005 à 11:29:50  profilanswer
 

toute les pages en include c'est pour moins m'embeter à refaire chaque page une par une.
 
La si je rajoute des choses dans l'apparance du site ou dans les menus , il suffit que je modofit index.php pour que tout le site sois changé alors qu'avant fallait éditer une par une chaques pages

n°1206396
afbilou
pouet your life
Posté le 24-09-2005 à 11:30:12  profilanswer
 

if (in_array($_GET['page'] , array('charte' , 'membres' , 'inscription' , 'recits' , ... ))))
     include($_GET['page'].'.php');
elseif (!empty($_GET['page']))
     include('erreur_vilin_visiteur.php');
else
     include('index.php');


Message édité par afbilou le 24-09-2005 à 11:37:14
n°1206398
pegasus32
Posté le 24-09-2005 à 11:32:21  profilanswer
 

plainsofpain a écrit :

Les pages d'erreurs 404 personnalisées se font via un fichier htaccess, recherche sur google tu devrais trouver plein d'explications.
 
Sinon pour vouloir a tout prix mettre toutes tes pages en include ? [:pingouino]


 
 
comme ca si tu change le design, rajouter des trucs dans le menu,etc...  tu modifie que le fichier index
 
sinon si j'etait toi j'utiliserai plutot un switch


Message édité par pegasus32 le 24-09-2005 à 11:34:18
n°1206400
GANONEINC
Posté le 24-09-2005 à 11:36:00  profilanswer
 

c'est bon j'ai trouvé pour le 404
 
je peut faire un truc du genre
 

Code :
  1. ErrorDocument 404 index.php?page=404

non ?

n°1206403
pegasus32
Posté le 24-09-2005 à 11:38:34  profilanswer
 

fait le plutot avec un .htaccess, comme ca la page d'erreur s'affichera aussi si le visiteur essaie d'acceder à nimportequoi.nimp

n°1206405
afbilou
pouet your life
Posté le 24-09-2005 à 11:39:26  profilanswer
 

Tu ne peux pas passer par un .htaccess avec ce ke tu veux faire !
Une erreur 404 se declenche lorsqu'aucune page ne correspond a l'url que tu as fournis (les arguments fournis a la page ne sont pas pris en compte ... et ca se comprend !!)

n°1206406
GANONEINC
Posté le 24-09-2005 à 11:39:34  profilanswer
 

c'est ce que j'ai proposé juste au dessu de ton reply. mais est il correct ?

n°1206409
plainsofpa​in
Pingouino's lover
Posté le 24-09-2005 à 11:41:27  profilanswer
 

Moi pour faire a meme chose, j'inclue le haut de page, le menu et le bas de page dans chaque script.
 
Enfin, avant de séparer complètement les traitements de l'affichage avec les templates.


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
mood
Publicité
Posté le 24-09-2005 à 11:41:27  profilanswer
 

n°1206410
afbilou
pouet your life
Posté le 24-09-2005 à 11:41:32  profilanswer
 

/me parle dans le vide ...

n°1206412
GANONEINC
Posté le 24-09-2005 à 11:42:35  profilanswer
 

donc il faut un .htaccess pour une adresse fausse et un  
elseif (!empty($_GET['page']))  
     include('404.php');  
non ?

n°1206413
pegasus32
Posté le 24-09-2005 à 11:43:04  profilanswer
 

GANONEINC a écrit :

c'est ce que j'ai proposé juste au dessu de ton reply. mais est il correct ?


tout dépend si tu veut que l'erreur 404 s'affiche uniquement en cas de mauvais parametre de la page index, ou alors des que le visiteur tente 'acceder à une page qui n'existe pas.
 
dans le 1er cas ton systeme est ok, dans le 2eme cas il faut passer par un  fichier .htaccess qui renvoie le visiteur vers une page erreur404.php par exemple


Message édité par pegasus32 le 24-09-2005 à 11:44:04
n°1206417
afbilou
pouet your life
Posté le 24-09-2005 à 11:45:43  profilanswer
 

Oui !
Et profite en pour virer tes series de if plus ke fastidieuses a ecrire et a maintenir et a les remplacer par ce que je t'ai mis klk posts plus hauts.

n°1206421
GANONEINC
Posté le 24-09-2005 à 11:50:18  profilanswer
 

les array je métrise pas trop , moi ça m'embete pas de retaper if des centaines de dois , donc pourquoi faire simple quand on peut faire compliqé ?

n°1206423
afbilou
pouet your life
Posté le 24-09-2005 à 11:52:09  profilanswer
 

bah utilise des elseif au moins ... parce que la quoiqu'il arrive le script se tape tous les tests a faire ... c'est franchement pas malin !

n°1206424
GANONEINC
Posté le 24-09-2005 à 11:53:04  profilanswer
 

pour récaputiler ça donne  
 

Code :
  1. <? //debut des includes
  2.     if ($_GET['page'] == "charte" ) //include charte
  3.     {
  4.         include("charte.php" );
  5.     }
  6.    
  7.     if ($_GET['page'] == "membres" ) //include membres
  8.     {
  9.         include("membres.php" );
  10.     }
  11.    
  12.     if ($_GET['page'] == "inscription" ) //include Inscriptions
  13.     {
  14.         include("inscription.php" );
  15.     }
  16.    
  17. if ($_GET['page'] == "recits" ) //include récits
  18.     {
  19.         include("recits.php" );
  20.     }
  21.     if ($_GET['page'] == "screen" ) //include screenshots
  22.     {
  23.         include("screen.php" );
  24.     }
  25. if ($_GET['page'] == "phpbb2" ) //include phpBB2
  26.     {
  27.         include("phpbb2.php" );
  28.     }
  29.     if ($_GET['page'] == "archives" ) //include Archives des news
  30.     {
  31.         include("archives.php" );
  32.     }
  33.     if ($_GET['page'] == "videos" ) //include Videos
  34.     {
  35.         include("videos.php" );
  36.     }
  37.     if ($_GET['page'] == "download" ) //include Download
  38.     {
  39.         include("download.php" );
  40.     }
  41. if ($_GET['page'] == "contacts" ) //include Contacts
  42.     {
  43.         include("contacts.php" );
  44.     }
  45.     if ($_GET['page'] == "google" ) //include Rechercher avec google.
  46.     {
  47.         include("google.php" );
  48.     }
  49. if ($_GET['page'] == "guest" ) //include Livre d'Or
  50.     {
  51.         include("guest.php" );
  52.     } 
  53. if ($_GET['page'] == "wallpapers" ) //Wallapapers Warcraftnet
  54.     {
  55.         include("wallpapers.php" );
  56.     } 
  57. if ($_GET['page'] == "goodies" ) //include Goodies
  58.     {
  59.         include("goodies.php" );
  60.     }
  61. if ($_GET['page'] == "partenaires" ) //include Partenaires
  62.     {
  63.         include("partenaires.php" );
  64.     }
  65. if ($_GET['page'] == "about" ) //include A propos de
  66.     {
  67.         include("about.php" );
  68.     }
  69. elseif (!empty($_GET['page']))
  70. {
  71.         include("404.php" );
  72. }
  73. else
  74. {
  75.     include("index2.php" );
  76. }
  77. ?>


 
c'est bien ça ?

n°1206425
afbilou
pouet your life
Posté le 24-09-2005 à 11:53:52  profilanswer
 

non c'est nul :) ... faut AU MOINS mettre des elseif !

n°1206427
GANONEINC
Posté le 24-09-2005 à 11:56:05  profilanswer
 

y en a un
 
 
enfin n'oublis pas que je débute , tu pourrai me donner rien qu'un expemple de ou mettre les elseif ?

n°1206429
afbilou
pouet your life
Posté le 24-09-2005 à 12:00:37  profilanswer
 

Essaie plutot de comprendre ...
 
Dans ton exemple, si on est dans le cas ou $page (la flemme d'ecrire le $_GET[...] a chake fois) a pour valeur charte, il va inclure charte.php et ensuite effectuer TOUS les autres tests de condition des ifs suivants (completement inutile).
 
Avec des elseif le script s'arreterait au premier test valide et ne ferait pas les suivants.
 
As-tu fait l'effort de comprendre ce que fait le petit exemple de 4 lignes que j'ai donné et qui fait tout ce que fait ton exemple de 150 lignes ... en mieux (plus rapide) !


Message édité par afbilou le 24-09-2005 à 12:01:13
n°1206431
Profil sup​primé
Posté le 24-09-2005 à 12:04:53  answer
 

GANONEINC a écrit :

y en a un
 
 
enfin n'oublis pas que je débute , tu pourrai me donner rien qu'un expemple de ou mettre les elseif ?


t'as beau débuter, faut quand meme regarder un minimum la doc php !!!!
afbilou t'as mis la réponse
 

n°1206432
GANONEINC
Posté le 24-09-2005 à 12:05:15  profilanswer
 

Effectivement avec pleins de if il continue...
 
Avc ton exemple , le lien index.php?page=exemple va déteminer la variable page dans ton array par exemple c'est bien ça ?
 
et dire $page=exemple
(pour la premiere partie la je vais manger je re)


Message édité par GANONEINC le 24-09-2005 à 12:06:09
n°1206436
afbilou
pouet your life
Posté le 24-09-2005 à 12:12:23  profilanswer
 

Tu devines tout au feeling ou bien tu t'appuies sur la doc (extrement bien faite et pratique) de PHP ?

n°1206448
GANONEINC
Posté le 24-09-2005 à 13:00:59  profilanswer
 

au feeling  
 
Pour info j'apprend avec le site http://www.siteduzero.com/php/

n°1206555
GANONEINC
Posté le 24-09-2005 à 17:26:34  profilanswer
 

Dite j'ai fait ce que on m'a indiqué avec les arrays mais j'ai ça comme erreur :
 
 
Parse error: parse error in c:\war php\index3.php on line 178
 
et voici la ligne 178
 

Code :
  1. if (in_array($_GET['page'] , array('charte' , 'membres' , 'inscription' , 'recits' , 'screen' , 'phpbb2' , 'archives' , 'videos' , 'download' , 'contacts' , 'google' , 'guest' , 'wallpapers' , 'goodies' , 'partenaires' , 'about' ))))


 
je vois pas ou est l'erreur ,, vous pouvez m'aider ?


Message édité par GANONEINC le 24-09-2005 à 17:26:48
n°1206561
sielfried
Posté le 24-09-2005 à 17:42:36  profilanswer
 

Compte les parenthèses.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1206569
pegasus32
Posté le 24-09-2005 à 18:10:23  profilanswer
 

d'où l'utilité d'avoir un éditeur de texte qui affiche les correspondances parentheses ouvrantes/fermantes

n°1206580
neobaub
Posté le 24-09-2005 à 18:22:22  profilanswer
 

c'est ç la code qu'il te faut..

Code :
  1. <?php
  2. if(empty($_GET['page'])) /* pas de nom de page, le mec est sur la page d'accueil */
  3. {
  4. include('accueil.php');
  5. }
  6. else //la page a été definie dans l'url
  7. {
  8. if(file_exists($_GET['page'].'.php')) /*On regarde si la page $_GET['page'].php existe bien...*/
  9. {
  10. //comme oui, on l'inclut:
  11. include($_GET['page'].'.php');
  12. }
  13. else //si elle existe pas:
  14. {
  15. include('erreur404.php'); //on met le mec sur la page d'erreur...
  16. }
  17. }

n°1206606
GANONEINC
Posté le 24-09-2005 à 19:56:59  profilanswer
 

bon j'ai essayé avec ça (j'ai recompté les parenthèses)
 
ça donne

Code :
  1. if (in_array($_GET['page'] , array('charte' , 'membres' , 'inscription' , 'recits' , 'screen' , 'phpbb2' , 'archives' , 'videos' , 'download' , 'contacts' , 'google' , 'guest' , 'wallpapers' , 'goodies' , 'partenaires' , 'about' )))


 
 
http://img248.imageshack.us/img248/652/war4zw.jpg mais voila....
 
 
Que dois je faire ?
 
Utiliser la méthode de neobaub ?

n°1206626
sielfried
Posté le 24-09-2005 à 20:45:41  profilanswer
 
n°1206631
plainsofpa​in
Pingouino's lover
Posté le 24-09-2005 à 21:01:24  profilanswer
 

C'est marrant, cette mise en page me rappelle quelque chose. Ce n'est pas toi que gatsusat et moi avaons croisé il y a pas mal de temps, et auquel on a proposé des mises en pages full css ?


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1206646
afbilou
pouet your life
Posté le 24-09-2005 à 21:35:33  profilanswer
 

neobaub a écrit :

c'est ç la code qu'il te faut..

Code :
  1. <?php
  2. if(empty($_GET['page'])) /* pas de nom de page, le mec est sur la page d'accueil */
  3. {
  4. include('accueil.php');
  5. }
  6. else //la page a été definie dans l'url
  7. {
  8. if(file_exists($_GET['page'].'.php')) /*On regarde si la page $_GET['page'].php existe bien...*/
  9. {
  10. //comme oui, on l'inclut:
  11. include($_GET['page'].'.php');
  12. }
  13. else //si elle existe pas:
  14. {
  15. include('erreur404.php'); //on met le mec sur la page d'erreur...
  16. }
  17. }



et si on met index.php?page=admin/admin ... c'est bete mais ... tu l'as dans l'cul :) pourtant on avait bien pris soin de mettre un .htaccess dans le repertoire admin  :whistle:
Bref ... la methode avec in_array est la meilleure :)


Message édité par afbilou le 24-09-2005 à 21:36:50
n°1206667
afbilou
pouet your life
Posté le 24-09-2005 à 21:46:03  profilanswer
 

Code :
  1. if ( !isset($_GET['page']) || empty($_GET['page']) )
  2.      include('index.php');
  3. elseif ( in_array($_GET['page'] , array('charte' , 'membres' , 'inscription' , 'recits' , ... )) )
  4.      include($_GET['page'].'.php');
  5. else
  6.      include('vilin.php');

n°1206690
sielfried
Posté le 24-09-2005 à 22:18:07  profilanswer
 

(!isset et empty, c'est redondant)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1206693
neobaub
Posté le 24-09-2005 à 22:19:15  profilanswer
 

dans ce cas:

Code :
  1. * <?php
  2.     * if(empty($_GET['page'])) /* pas de nom de page, le mec est sur la page d'accueil */
  3.     * {
  4.     * include('accueil.php');
  5.     * }
  6.     * else //la page a été definie dans l'url
  7.     * {
  8.     * if(file_exists($_GET['page'].'.php') && end(explode('/',$_GET['page'])) == $_GET['page']) /*On regarde si la page $_GET['page'].php existe bien et est bien dans le dossier racine...*/
  9.     * {
  10.     * //comme oui, on l'inclut:
  11.     * include($_GET['page'].'.php');
  12.     * }
  13.     * else //si elle existe pas:
  14.     * {
  15.     * include('erreur404.php'); //on met le mec sur la page d'erreur...
  16.     * }
  17.     * }
  18.     * ?>


en gros j'ai rajouter une option pr verifier que le mec essai pas de lire dans un autre repertoire ;-]


Message édité par neobaub le 24-09-2005 à 22:21:21
n°1206696
afbilou
pouet your life
Posté le 24-09-2005 à 22:19:58  profilanswer
 

absolument pas !

n°1206697
sielfried
Posté le 24-09-2005 à 22:22:01  profilanswer
 

end(explode('/',$_GET['page'])) == $_GET['page'])  
 
[:mlc]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1206698
neobaub
Posté le 24-09-2005 à 22:22:14  profilanswer
 

et pouruqoi pas stp ^^?

n°1206699
sielfried
Posté le 24-09-2005 à 22:26:37  profilanswer
 

Utilisez la fonction quote quand vous répondez, on sait pas à qui vous parlez là. [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1206701
afbilou
pouet your life
Posté le 24-09-2005 à 22:27:30  profilanswer
 

neobaub a écrit :

et pouruqoi pas stp ^^?


je repondais a sielfried.
 
et pis si je fais un index.php?page=index ... tu vas encore rajouter une n-ieme condition dans ton if pour ce cas la aussi ? ou bien tu laisses tomber  le file_exists et tu prends l'array ? :p
 
parce k'on pourrait faire un index.php?page=.htaccess aussi xD comme ca un utilisateur aux droits restreints mais qui peut visiter le repertoire a acces aux passwords du htacces s'il y en a :D

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  (noob)Site en include et erreur 404...

 

Sujets relatifs
Un script pour logger toutes les connexions sur mon siteUne rémunération gràce à notre site perso - bidon ou pas ?
blocage du d'un site web cré avec javascriptHelp! Comment référencer gratuitement mon site web?
[Résolu] Intégrer un include PHPAvec AutoIt V3 comment récupérer le code d'erreur d' exécution
compteur de siteComment laisser un site entre d'autres mains?!?
Son Site Nuked Klanfonction include et réactualisation
Plus de sujets relatifs à : (noob)Site en include et erreur 404...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR