Salut,
les fichiers de ton projet ils sont placés directement dans le dossier www ou ils sont placés dans un sous-dossier de ce dernier ?
Bonjour tout le monde,
J'ai suivi le superbe tuto concernant la création d'un calendrier en PHP tout fonctionne sauf une chose....
Déja lorsque je lance depuis wamp en localhost cela ne me renvoie pas à mon projet fini mais à mes sous dossier auquel je peux accéder par la suite. C'est à dire que lorsque je clique sur Mes projet je vois apparaître:
Index of /Nouveau dossier
[ICO] Name Last modified Size Description
[PARENTDIR] Parent Directory -
[DIR] public/ 2018-05-12 18:14 -
[DIR] src/ 2018-05-11 21:05 -
s
Apache/2.4.33 (Win32) PHP/7.2.4 Server at localhost Port 80
Et de même lorsque je clique sur mes liens qui sont censés me rammener au mois suivant je me retrouve sur le localhost....
12 réponses
Dans mon répertoire il y a un dossier qui contient alors deux sous dossiers qui contiennent eux mes programmes :)
J'ai essayé de mettre mes sous dossiers directement dans le www mais cela ne fonctionne pas
Salut,
lorsque je lance depuis wamp en localhost cela ne me renvoie pas à mon projet fini mais à mes sous dossier auquel je peux accéder par la >suite.
Oui, en fait ce comportement est normal.
wamp est ton serveur local, et tu peux créer plein de sites différents, il faut bien un moyen de pouvoir aller dans le dossier de celui que tu veux.
Si tu veux un lien direct vers un de tes sites,
tu y vas une fois "à la main" (comme tu fais), et tu créer un lien direct dans ta "barre personnelle" de ton navigateur.
Et de même lorsque je clique sur mes liens qui sont censés me rammener au mois suivant je me retrouve sur le localhost....
Ça par contre effectivement c'est ennuyeux...
Par contre sans le code, on ne peut évidemment pas comprendre le problème.
Du coup je te propose de créer une constate dans ton fichier "index.php", qui te servira pour écrire tous tes liens.
1) Tu te créer un nouveau dossier, spécialement pour tous tes sites (par exemple "my_projects", ou "work", ou autres...), à cet emplacement là :
C:\wamp64\www\work
Attention au chemin, change-le s'il faut, je ne suis pas sûr que ce soit exactement ça (notemment pour 32/64 bits).
2) Dans ton fichier index.php, tu créer 1 constante (qui te servira pour écrire tes liens), comme ceci :
("work", ou "my_projects" ou autres...
et remplace "mon_site" par le nom de ton site)
3) Dans tes pages où tu écris des liens, tu les écris comme ceci :
Je vais essayer de faire ça merci :)
Mon code se résume à ça :
index.php dans C:\wamp\www\Index\public\index.php
Month.php dans C:\wamp\www\Index\src\Date\Month.php
et efin mon css
Du coup je ne trouve pas comment faire .... je suppose que mes liens ne marches pas ou qqc dans le genre.
- Est-ce que tu peux essayer de redire ce que tu voudrais faire, et ce qui se passe ?
- Le code associé au calendrier, il est écrit dans le fichier "index.php" ?
- Tu utilise un système de routeur ou pas ? (je voudrai comprendre comment fonctionne tes liens)
- Est-ce que tu as des liens qui ne vont PAS vers localhost ? (Ou ils y vont tous ?)
- Est-ce que tu peux montrer la "structure des dossiers du site" ? (au moins les fichiers
index.php, et 1 ou 2 autres qui te semblent pertinents)
Alors du coup le problème principal sont mes deux liens à la ligne 16 et 17. Ils sont sous forme de flèche et sont censés, lorsque je clique, me rammener au mois précédent ou prochain. Le problème est que ces liens me rammène au menu du local Host.....
Oui le code associé au calendrier est dans index.php, de plus il ne me semble pas utiliser de routeur.
Je n'ai que trois liens dans mon calendrier dont les 2 qui posent problèmes. L'autre est un lien qui ne me renvoie à rien et qui reste sur la page.
Mon dossier dans le répertoire s'appelle work, dedans on a deux dossiers, un se nommant public et un aurtre src. Public contient mon index.php ainsi qu'un autre sous dossier CSS contenant mon calendar.css. Enfin dans src on trouve un dossier Date contenant le Month.php
Je ne comprend pas ce que vous voulez dans ''Structure des dossiers du site"
apache fonctionne avec des vhosts.
si tu met tes projets dans le dossier www, le localhost correspond a ton vhost principal et si tu veux accéder a tes projets c'est localhost/projet1/index.php.
il est tout a fait normal que quand tu appel href="/" tu soit rediriger vers localhost/
il faut t'interesser aux vhost pour pouvoir avoir plusieur "localhost" (meme si c'est pas vraiment le terme)
ainsi tu pourra dire que projet1.localhost.fr correspond a ton dossier www/projet1 dans wamp. dans ton vhost tu lui dit d'ecouter cette adresse et tu indique dans ton fichier hosts (sous windows : C:/windows/system32/etc/drivers/hosts) la ligne suivant :
127.0.0.1 projet1.localhost.fr
ce qui veut dire "renvoit projet1.localhost.fr sur localhost"
ton href="/" te redirigeras bien comme il faut sur ton projet
sinon tu peux aussi dire : <a href="projet1/index.php" mais le jour ou tu va vouloir le mettre en prod, il va falloir repasser sur toussssssssss tes liens...
Je ne comprend pas ce que vous voulez dans ''Structure des dossiers du site"
Je pense que j'aurai du dire : "Arborrescence du site".
Mais ça va tu as bien répondu à ma question ^^
mais le jour ou tu va vouloir le mettre en prod, il va falloir repasser sur toussssssssss tes liens...
C'est pour ça que j'avais proposé de définir une constante "BASE_URL" dans "index.php".
Comme ça le jour où il passe en prod, il suffira de modifier cette constante.
Mais on peut aussi, bien sûr, passer par les vhost.
La solution "vhost" est plus "propre".
La solution "BASE_URL" est moins "compliqué" à mettre en oeuvre quand on débute.
Bon alors, Kimi-Chan,
si tu laisse tes 2 dossiers "public", et "src" dans le dossier "www", c'est à dire :
C:\wamp\www\work\public\..., et
C:\wamp\www\work\src\...
et si tu définit une constante "BASE_URL" dans "index.php",
alors, il faut la définir de cette façon :
Et l'utiliser de cette façon :
Est-ce que tu comprends ?
Par contre,
comme je disais, c'est "mieux" (voir bien trop important pour ne pas le faire) de regrouper tes 2 dossiers "public" et "src", dans un seul dossier (qui porte le nom de ton site).
Si tu fais ça, alors on aura plutôt :
C:\wamp\www\work\mon_site\public\..., et
C:\wamp\www\work\mon_site\src\...
du coup :
Et l'utiliser de cette façon (de la même façon en fait, d'où l'intérêt de cette constante "BASE_URL". Elle restera la même façon de l'utiliser même en production) :
(Bien sûr, change "mon_site", par le nom qui te convient).
Tu vois comment ça fonctionne ?
Pourquoi regrouper "public" et "src" dans un dossier qui porte le nom du site ?
Parce-que :
1) Quand tu aura plusieurs sites différents sur ta machine, c'est comme ça que tu les séparent.
2) Quand tu déploiera ton site en ligne, tu veux pouvoir déplacer ton site en un seul dossier (sinon tu va probablement avoir des problèmes de liens et/ou d'accès fichiers, c'est la galère !)
Mais,
puisque le code du calendrier est dans ...\public\index.php,
qu'est-ce qu'il y a dans ...\src\Date\Month.php ??
Ça me semble étrange.
Oui j'avais déjà créer un dossier qui s'appelait Index dans work et qui regroupait tout mes fichiers.
Du coup dans le src il y a juste un dossier Date qui contient mon Month.php et c'est tt, c'est le dossier qui contient toutes mes fonctions.
Par contre je n'arrive pas à mettre ma balise PHP au niveau des deux liens.... si je met une balise <?php il prend le -> pour la fin du <a> .... et du coup je ne peux pas insérer ma balise echo pour tester ce que tu me conseilles
Zut, je n'ai rien compris.