Problème de lien !

Fermé
Delphine - 24 oct. 2008 à 10:43
_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 - 24 oct. 2008 à 17:02
Bonjour,

Voilà j'ai fait un menu comme ceci :
<?php
session_start();
include('header2.php');
?>

<table WIDTH="100%"><tr valign="top"><td>
<TABLE WIDTH="100%" style="width: 332px;" valign="top" align="center" border="0" cellpadding="2" cellspacing="0">
<tr><td colspan=2><a name="B"></a><br /><font color=#000088 size=+1><strong>B</strong></font><br /><hr></td></tr>
<tr><td><a href="bergerallemand.php" title="Fiche du chien de race : Berger Allemand">Berger Allemand</a></td><td align=right>&nbsp;</td></tr>
<tr><td></td><td align=right>&nbsp;</td></tr>
</table>

<?php
include('footer.php');
?>


Je veux mettre toutes les races de chiens, donc j'ai créé un dossier "raceschiens" pour que cela soit plus ordonné et j'y ai mis dedans "bergerallemand.php"
Donc au lieu de taper ceci dans mon menu : <a href="bergerallemand.php>" j'ai tapé ça : <a href="raceschiens/bergerallemand.php">

Seulement après ça me mets pleins d'erreurs ! pourquoi ?

12 réponses

_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 17
24 oct. 2008 à 11:07
Bonjour,

Peux tu nous montrer les erreurs en questions.

merci
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 11:09
Bonjour, je penses que tu as un problème de fichier introuvable.

Il faut donc diriger vers le fichier ainsi:
><a href="bergerallemand/bergerallemand.php" title="Fiche du chien de race : Berger Allemand">Berger Allemand</a>

Si ça ne résoud pas le problème, merci de me copier l'erreur que tu as eu sur la page.

Cordialement
0
Voici les messages d'erreurs :

Warning: main(header2.php) [function.main]: failed to open stream: No such file or directory in /homez.31/....../www/raceschiens/bergerallemand.php on line 3

Warning: main() [function.include]: Failed opening 'header2.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.31/...../www/raceschiens/bergerallemand.php on line 3

Warning: main(menu_chien.php) [function.main]: failed to open stream: No such file or directory in /homez.31/...../www/raceschiens/bergerallemand.php on line 7

Warning: main() [function.include]: Failed opening 'menu_chien.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.31/...../www/raceschiens/bergerallemand.php on line 7

Warning: main(footer.php) [function.main]: failed to open stream: No such file or directory in /homez.31/......i/www/raceschiens/bergerallemand.php on line 107

Warning: main() [function.include]: Failed opening 'footer.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.31/....../www/raceschiens/bergerallemand.php on line 107
0
_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 17
24 oct. 2008 à 11:38
Le lien pour aller sur les pages des races des chiens marchent bien.
Le problème c'est que quand tu arrive sur ses pages il ne trouve plus les header, footer, menu... car tu as changé de dossier.
Il faut que dans ces pages tu ajoute "../" devant les appel au éléments de la page, genre "../header.php" à la place de "header.php"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 11:47
Ton problème est très simple, il suffit de mettre les fichiers header2.php, footer.php dans le même repertoire que la page qui les inclut.

sinon fais ce que will_ vient de te dire, cad aller vers le chemin di fichier en utilisant les slashes (/) ou les (../).

En cas de problème, je te propose de m'envoyer ça par mail, je le réviserais.

Cordialement
0
Ah ok ;-)

Sa fonctionne du tonnerre quand on met (../)
seulement les images du design du header2.php et du footer ne suivent pas !

Pour que cela fonctionne il faut que je fasse suivre dans le même dossier "raceschiens" toutes les images qui composent le site.
Sinon autre solution, mettre ça <img src="http://www.

Mais je sais pas si c'est bien pratique finalement car après mes liens du footer ou du menu ne fonctionne plus, cela va chercher les pages dans le dossier "raceschiens" donc il faudrait encore faire suivre toutes ces pages :-(
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 16:25
Un truc très utile pour t'aider.

Tu crées une variable dans ta page index qui definit l'adresse du site, ex:

<?
$url = "http://www.monsite.com/";
?>

Comme ça tu l'utiliseras a chaque fois que tu as un lien ou un appel a une image, ex:

<img src="<?=$url?>images/img1.jpg" ...
ou
<a href="<?=$url?>page.php>lien</a>

Comme ça, il suffira de changer la valeur de la variable $url et tout le site suivera ce chemin.

Ceci est utile lors des migrations de ton site d'un serveur à un autre aussi.

Bon travail
0
Oui en effet cela peut être très utile et moins compliqué par la suite :-)

Je faisais comme ça pour appeler une page :
<a href="contact.php">
donc le mieux si je comprends bien est de mettre <a href="www.monsite.com/contact.php">

Je comprends un peu mieux le fonctionnement de toutes ces pages.

Merci beaucoup pour ton aide apportée.
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 16:43
Ceci est très utile a condition que tu ne manipules pas des fichiers, cad ça ne marche pas en cas où tu manipule les photos, ouvre des fichiers textes pour inserer leurs contenus dans la base de donnée, voir même extraire un fichier zip a l'aide de php.

Sinon, le reste fonctionne.

Bon travail
0
_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 17
24 oct. 2008 à 16:50
Sinon dans tes fichier header et autre tu dois pouvoir utiliser realpath(".") ou realpath("./") comme url
Tu fais comme briiiiix à dit mais tu fais $url = realpath(.); à la place de $url = "http://www.monsite.com/";

Enfin je ne suis plus trop sur de la syntaxe.
Ça permettra de lier tes fichiers en interne sans que ton site ai besoin de sortir de ton réseau pour revenir chercher tes images.

Le manuel pour realpath() : https://www.php.net/manual/fr/function.realpath.php
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 16:56
je ne suis pas d'accord avec toi _will, car la fonction realpath() renvoi un chemin absolu dans le disque dure en fonction du système d'exploitation du serveur:

Si c'est windows, elle envoi: c:\..\monsite\index.php
Si c'est linux, elle renvoie /dev/....

et ceci n'est pas une url web.

La meilleur fonction pour ça est la $_SERV, qui renvoi le chemin par rapport à la racine du site.

Je reste disponible pour toute information
0
_will Messages postés 133 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 3 décembre 2008 17
24 oct. 2008 à 17:02
Effectivement, désolé pour l'erreur ça fait un bail que j'ai pas touché à du PHP.
Je cherchais la fonction php qui retourne le chemin complet sur le serveur web et non celle qui renvoie le chemin complet sur la machine
0