Problème de lien sur serveur de site web

Par HoustonB, il y a 11 ans


Les bases HTML/CSS

Bonjour à tous(te),

Aillant regarder le tutoriel "Developper un site web" en plusieurs parties, j'aimerais avoir un petit coup de pouce.

En effet lors de la création du fichier htaccess ... on le fais en local !

Mais lorsque je l'utilise sur un serveur hébergeur le drame apparait ...
Rien ne fonctionne aucun lien ("NADA") , mais j'ai trouver un supterfuge ("je sais pas si c'est bien ortographié") :
Pour le tutoriel on fais :

define('WEBROOT', dirname(__FILE__)); define('ROOT', dirname(WEBROOT)); define('DS', DIRECTORY_SEPARATOR); define('CORE', ROOT.DS.'core'); define('BASE_URL', dirname(dirname($_SERVER['SCRIPT_NAME'])));

Donc pour mes liens ( en local ) je fais :

action="<?php echo BASE_URL.DS.'XXX/XXX/editc/';?>"

MAIS pour le serveur, je ne peux pas utiliser BASE_URL , je fais donc :

action="<?php echo DS.'backend/admin/editc/';?>"

Et la ca marche MAIS quand je veux charger une image il faut que ce soit dans mon dossier webroot et non dans un sous dossier car sinon mon dispatcher prend la racine du fichier pour un controller ( -_- ) ... soucis je risque d'avoir plus de 1000 images ...

Si quelqu'un a une idée je le remercie fortement

;)

17 réponses

HoustonB, il y a 11 ans

Nope ca marche pas :/ , ca me sort la mm chose qu'au dessus

HoustonB, il y a 11 ans

Tout a fais j'pense que je recommencerais plus cette bétise :) Merci encore !!

betaWeb, il y a 11 ans

Sur ton site en ligne, essayes d'utiliser

define('DNS', 'http://' . $_SERVER['SERVER_NAME']);

au lieu de

define('BASE_URL', dirname(dirname($_SERVER['SCRIPT_NAME'])));

en remplaçant 'BASE_URL' par 'DNS'.

Il me semble avoir eu le même soucis que toi, et l'avoir résolu de cette façon.

HoustonB, il y a 11 ans

Merci j'essai de ce pas :)

HoustonB, il y a 11 ans

Pour les lien ca marche nickel mais pour mes images :/ c'est autre chose

Warning: require(/home/www/XXXXXXXXXXXXX/web/controller/FilesController.php) [function.require]: failed to open stream: No such file or directory in /home/www/XXXXXXXXXXXXXXX/web/core/dispatcher.php on line 31 Fatal error: require() [function.require]: Failed opening required '/home/www/XXXXXXXXXXXXXXXXX/web/controller/FilesController.php' (include_path='.:/opt/php/lib/php') in /home/www/XXXXXXXXXXXXXXXXXX/web/core/dispatcher.php on line 31

et dans l'url j'ai :

http://www.XXXXXXXXXXX.fr/files/DUPOND-Jean-jacques-2015-03-11/Pictures/visage-homme.jpg
betaWeb, il y a 11 ans

Pour les images in te faut utiliser le chemin en absolue depuis la racine du serveur. Il me semble qu'il s'agit de la constante ROOT.

betaWeb, il y a 11 ans

Tu as vérifié les permissions sur les dossiers contenant tes images et tes images elles-mêmes ?

HoustonB, il y a 11 ans

Permission 777 et les images sont bien présente
Je reprend les mêmes dossier qu'en local :/
Ce que je trouve bizarre c'est vraiment les liens pour recupérer les images ... même avec "../../" rien ne marche :(

betaWeb, il y a 11 ans

Il te faut normalement renseigner le chemin en absolu vers ton image. Regarde du côté de $_SERVER tu devrais y trouver ton bonheur (quelque chose qui commence par /var/www)

HoustonB, il y a 11 ans

Voici un exemple de ce que j'ai https://www.infomaniak.fr/fr/support/faq/100

Mais je pense que ça viens du fais que je récupère dans mon url le controller la fonction et les paramètres
donc mon dispatcher ne sait pas que c'est le lien d'une image :/

betaWeb, il y a 11 ans

De ce que tu as ?

HoustonB, il y a 11 ans

En chemin absolu j'ai

[DOCUMENT_ROOT] => /home/www/b0dfda55decfc9d26802f4be9XXXXX/web
betaWeb, il y a 11 ans

Eh beh c'est bon il te suffit de concatener ton chemin vers ton image à cette variable, que tu devrais d'ailleurs définir dans une constante.

HoustonB, il y a 11 ans

C'est ce que j'ai fais :( voici le lien vers l'image

<img src="/home/www/b0dfda55decfc9d26802f4be9XXXXX/web/webroot/files/DUPOND-Jean-jacques-2015-03-11/Pictures/visage-homme.jpg" alt="..." class="img-circle" style="width: 80px; height: 80px;">
betaWeb, il y a 11 ans

Et toujours rien? Tu as quoi exactement comme erreur?

HoustonB, il y a 11 ans

J'ai trouver le problème ... je vais pas te le dire par honte xDD

Bon je te le dis quand même ...
Le nom est DUPOND et le lien faut que ce soit dupond ... seulement ca !

Désolé de t'avoir fais perdre du temps :/
Et merci pour le coup de main

betaWeb, il y a 11 ans

Un problème de casse? Classique t'inquiètes ;)
On se fait tous avoir et c'est généralement ce genre de con--rie qu'on perd le plus de temps. C'est en faisant qu'on apprend comme on dit !