|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2009 Messages : 193 ![]() |
Bonsoir all,
je teste en vain de faire un include ou d'ajouter directement mon code dans un dossier et ça n'affiche rien de rien donc j'ai testé de mettre directement le code mais la encore y a un souci quand je mais le code toute la partie du bas s'efface. donc je vous explique en plus claire :p a la racine de mon site (vote.php) et les fichiers qui va avec (ip.txt, data.txt, admin.php et config.php) a la racine de mon site j'ai créer index.php qui include droit.php et gauche.php qui sont les colonnes droite et gauche de mon site. Ce qui nous intéresse c'est droit.php car il contient soit mon code soit mon include, avec le code ou le include tout fonctionne correctement si les fichiers se trouvent a la racine de mon site. maintenant quand je l'include dans le dossier partenaire/index.php ou dans jeux/index.php la rien ne s'affiche et aucune erreur a part ma colonne qui s'efface et laisse juste la partie du haut. j'ai testé plusieurs façons mais il veut rien savoir Code :
Code :
Cordialement, Stéphane |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Bonjour,
Tu n'as pas bien compris comment fonctionnait l'include ou le require. Quand tu es à la racine de ton site, les deux fichiers sont dans le même répertoire. Donc aucun problème. Par contre, lorsque tu es dans un répertoire différent, il faut que tu remontes ou descendes d'un répertoire ("../vote.php")... J'espère t'avoir aidé... Cdt, Mathieu |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2007 Messages : 89 ![]() |
doit normalement fonctionner
|
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Include et file_get_contents sont deux choses extrêmement différentes à ne pas confondre.
Le include sert à organiser ton code. En pratique ce qui va se passer c'est que include('monfichier.php'); va se faire remplacer, directement dans ton code, par le contenu de monfichier.php (d'ailleurs, tu devrais plutôt utiliser include_once, qui s'assure que même si tu fais l'include plusieurs fois, il ne sera pris en compte qu'une seule fois). Le include se fait "avant" que ton code php soit exécuté. De fait, le contenu du fichier est exécuté de la même manière que si tu faisais un copier/coller du contenu du fichier inclu, directement à l'endroit de ton inclusion. file_get_contents par contre sert pendant l'exécution à aller lire un fichier pour réaliser un traitement dessus. Avec ton echo par exemple, le traitement réalisé est un affichage, pas une exécution. Typiquement, si tu as un index.php qui fait appel à d'autres fichiers php, c'est include_once qu'il faut utiliser. Si tu veux lire un fichier (pour récupérer le résultat de tes votes par exemple ?), tu utilise file_get_contents. Ensuite, mettre des url en chemin, ce n'est pas terrible, avec certaines fonctions, sur un malentendu et parce que php est sympa, il n'est pas impossible que ca marche (genre ton file_get_content), n'empêche que c'est crade pour un tas de bonne raison (si tu le demandes gentiment, je veux bien t'expliquer, sinon, crois-moi sur parole ^^). Non, ce qu'il faut faire, c'est comme l'a suggéré mathieu44800, utiliser les chemins relatifs. Pour remonter d'un répertoire par rapport à ton répertoire actuel : ../nomfichier pour aller dans un dossier : nomdudossier/nomfichier Et si tu es dans le même répertoire : nomdufichier. Donc tu devrais avoir des includes qui ont une tête comme ca : Code :
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
||
|
00
|
|
|
#5 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
A noter que, si ta configuration PHP t'y autorise (désactivé par défaut il me semble), tu peux faire des include d'URLs. Cependant, c'est généralement considéré comme une faille de sécurité car tu ouvre volontairement un fenêtre vers l'intérieur de ton application, si tu ne contrôles pas ce qui provient de cette url, tu peux aller au devant de bien moches surprises.
Petit rappel, la syntaxe correcte pour la directive include est : Code :
A noter: include raise un E_WARNING si le fichier est introuvable, require quand à lui emet un E_FATAL et balance l'appli dans les orties. A noter: include_once et require_once évitent que les fichiers soient chargés plus d'une fois, très pratique pour les libraires ou autres...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2009 Messages : 193 ![]() |
Bonjour a tous,
merci de votre aide et mes excuse de ne pas avoir répondu plus tot car des souci de boite mail ^^. donc j'ai suivie un peut tout vos conseil mais y a vraiment rien a faire sois rien ne s'affiche sois les menus qui se trouve en dessous du sondage disparer j'ai pourtant testé tout sa : Code :
|
||
|
|
00
|
|
|
#7 | ||||||
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Je pense que le mieux pour toi est de commencer par faire un exercice à part pour comprendre comment ca marche.
Dans un nouveau répertoire, crée ces trois fichiers : inc1.php Code :
Code :
Code :
A partir de là, tu peux jouer un peu, du genre retirer le include_once('inc2.php'); de l'index et le mettre dans inc1.php Tu peux aussi t'amuser à créer des répertoires, déplacer le fichier inc1.php et trouver comment faire l'include pour que ca continue de se passer correctement. C'est pas grand chose, limite ca peut sembler idiot, mais une fois que tu auras bien compris ca, revient sur ton problème actuel, avec un peu de bol, soit ca se débloquera tout seul, soit tu pourras éliminer ce problème là et cerner, pourquoi pas, d'autres soucis. ps : pour les notations. include_once('mon_fichier.php'); est équivalent à include_once 'mon_fichier.php'; par contre, include_once(mon_fichier.php); (sans quote ou guillemets) même s'il fonctionne probablement (php est gentil) si tu n'as pas activé les warning, est une notation fausse.
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
||||||
|
00
|
|
|
#8 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2009 Messages : 193 ![]() |
Bonsoir Rakken,
je fait suite a se message : Citation:
quand je vais sur la page lien y marquer sa : Dans inc1.php La, on est dans le index.php. Dans inc2.php donc vue que les 3 fichiers son dans le même dossier sa fonctionne. par contre quand je mais se code dans le dossier (partenaire/links.php) lien Code :
mais tout mes menu qui se trouve en dessous il disparré Cordialement Stéphane |
|||
|
|
00
|
|
|
#9 | |||||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 699 ![]() |
Salut
Citation:
Au lieu de mettre les pages dans des répertoires comme : www/index.php www/partenaire/index.php www/jeux/index.php Il serait mieux à mon sens de procéder ainsi, de tout mettre à la racine (www) : www/index.php www/partenaire.php www/jeux.php www/vote.php ... etc ... Ensuite, de mettre les contenu dans les répertoire : (pure exemple) www/partenaire/link.php www/jeux/link.php www/css/style.css www/js/style.css www/images/logo.jpg ... etc ... Au final, on effectue les inclusion à partir de la racine, donc plus de souci de chemin : Pour partenaire.php : Code :
Code :
Code :
En gros : tout est à la racine, et on recherche tous les contenus (php, css, js, image, etc ...) dans les répertoires structurés, classés comme il faut. Et surtout, on évite les includes dans un include, et encore dans un include, etc ... on s'y perd à la longue.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||||||
|
|
00
|
|
|
#10 | ||
|
Membre éprouvé
Développeur informatique Inscription : décembre 2006 Messages : 436 ![]() |
Salut,
À mon sens plus propre... Code :
++ |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com