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


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
Auteur

Merci j'essai de ce pas :)

HoustonB
Auteur

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

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.

HoustonB
Auteur

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

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

HoustonB
Auteur

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 :(

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
Auteur

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 :/

De ce que tu as ?

HoustonB
Auteur

En chemin absolu j'ai

[DOCUMENT_ROOT] => /home/www/b0dfda55decfc9d26802f4be9XXXXX/web

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
Auteur

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;">

Et toujours rien? Tu as quoi exactement comme erreur?

HoustonB
Auteur

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

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 !

HoustonB
Auteur

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