#1 20-11-2012 19:15

Akura
Inscription : 20-11-2012
Messages : 7

Problème affichage

Bonjour,

Je suis actuellement en train de me créer un serveur Web pour héberger GCWeb. Tout semble fonctionner correctement sauf que l'affichage n'est pas bon. Les données sont correctes et les recherches fonctionnent.

Voici le lien de mon site :

http://collectionbd.dyndns.org/GCWeb

Pouvez-vous me dire d'où cela pourrait venir ?

D'avance merci.

Hors ligne

#2 20-11-2012 20:04

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

Je vois d'où ça vient, j'utilise un port dans mon url et ce port est enlevé lorsque la page est interprétée du coup on perd les feuilles de style. Faut que je fouille pour contourner ça, si quelqu'un a une idée je suis preneur.

Hors ligne

#3 20-11-2012 20:31

jonas
Administrator
Inscription : 25-06-2006
Messages : 727

Re : Problème affichage

Bonjour,
Je voulais regarder mais le site ne répond pas.
Mais je dirais que cella peut être considéré comme un bug je vais donc voir pour le corriger :-)

Par contre cella fait un moment que je n'ai pas toucher au code donc si je pouvais voir ce qui pose exactement problème ce serrait plus simple pour moi, si vous corrigez le bug de votre côté faite moi signe que je report les modifications

Hors ligne

#4 20-11-2012 20:49

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

J'étais en train de tester mon serveur, je stoppe pour ce soir. Ma redirection devrait fonctionner à nouveau.
Sinon voici le lien plus direct : http://cahor.dynalias.com:7070/GCWeb/
Ce qui se passe c'est qu'à certains moments ce lien se transforme comme ceci : http://cahor.dynalias.com/GCWeb/

Le port disparaît donc il ne trouve plus les feuilles de style. Je me demande si un virtualhost ne pourrait pas corriger ça mais j'avoue ne pas être expert là dedans surtout que ce serveur fait tourner Openmediavault et d'autres choses...


Merci pour votre support.

Dernière modification par Akura (20-11-2012 20:50)

Hors ligne

#5 20-11-2012 20:59

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

Voici une partie du code généré :

<head>
    <title>Bdthèque</title>
    <meta http-equiv="Content-Type" content="application/x-php;charset=UTF-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="icon" type="image/png" href="http://cahor.dynalias.com/GCWeb/./templates/default/img/favicon.png" />
    <link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com/GCWeb/./templates/default/style.css" media="screen, print" />
    <link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com/GCWeb/./templates/default/style_print.css" media="print" />
    <!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com/GCWeb/./templates/default/style_ie.css" media="screen, print" /><![endif]-->
         <link rel="alternate" type="application/rss+xml" title="Bdthèque - BD (Toute la collection)" href="?collec=0&model=rss" /><script type="text/javascript" src=".//templates/default//javascript.js"></script></head>

Comme on le voit ici :

<link rel="icon" type="image/png" href="http://cahor.dynalias.com/GCWeb/./templates/default/img/favicon.png" />

Le port :7070 a disparu. Je ne sais pas si c'est une option à changer sur mon apache ou s'il faut adapter le code php.

Hors ligne

#6 20-11-2012 21:27

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

Je pense avoir trouvé. J'ai apporté une modification dans le fichier index.php.

Voici mon code source, regardez si cette modification vous semble correcte.


<?php
/*
 *      This file is a part of GCweb (unoffical web render for GCstar)
 *      Copyright (c) 2007 Jonas Fourquier <http://jonas.tuxfamily.org> and contributors
 *
 *      GCweb is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

if (get_magic_quotes_runtime())     set_magic_quotes_runtime(0);

//$temps_debut = microtime(true);

//Chemin relatif à ce fichier vers la racine de GCWeb. (pas de "/" au début, un à la fin)
define('DIR_GCWEB', './');

define('PATH_GCWEB', dirname(__FILE__).'/'.DIR_GCWEB);

if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
	if (isset($_SERVER['SERVER_PORT']))
		define('URLRACINE_GCWEB','https://'.$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
	else
		define('URLRACINE_GCWEB','https://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
else
	if (isset($_SERVER['SERVER_PORT']))
		define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
	else
		define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
define('URL_GCWEB',URLRACINE_GCWEB.'/'.DIR_GCWEB);

include (PATH_GCWEB.'inc/render.php');
?>

Ça fonctionne chez moi mais il faudrait voir sur un site sans port dans l'URL.
Encore merci et bravo pour ce site.

Dernière modification par Akura (20-11-2012 21:35)

Hors ligne

#7 20-11-2012 21:39

jonas
Administrator
Inscription : 25-06-2006
Messages : 727

Re : Problème affichage

TU as fait des modif ? Car chez moi tous est ok ! le port se trouve apparament dans toute les urls

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <title>Bdthèque</title>
    <meta http-equiv="Content-Type" content="application/x-php;charset=UTF-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="icon" type="image/png" href="http://cahor.dynalias.com:7070/GCWeb/./templates/default/img/favicon.png" />
    <link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com:7070/GCWeb/./templates/default/style.css" media="screen, print" />
    <link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com:7070/GCWeb/./templates/default/style_print.css" media="print" />
    <!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="http://cahor.dynalias.com:7070/GCWeb/./templates/default/style_ie.css" media="screen, print" /><![endif]-->
         <link rel="alternate" type="application/rss+xml" title="Bdthèque - BD (Toute la collection)" href="?collec=0&model=rss" /><script type="text/javascript" src=".//templates/default//javascript.js"></script></head>

Sinon je me demande pourquoi ai-je mis des url complête et pas simplement des url relative hmm. Le plus simple : dans /index.php

if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
    define('URLRACINE_GCWEB','https://'.$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
else
    define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));

# A remplacer par

if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
    define('URLRACINE_GCWEB','https://'.$_SERVER['SERVER_NAME'].':<NO PORT>'.substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
else
    define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].':<NO PORT>'.substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));

Je pense que ça devrait jouer, Bien sûr c'est pas très propre puisque <NO PORT> mais pour un test ou a cas particulier ça dois jouer

PS : <NO PORT> a remplacer par le numéro de port bien sûr big_smile

Dis moi le résulat

Hors ligne

#8 20-11-2012 21:49

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

Oui j'avais déjà fait une modif. j'ai ajouté un test sur le port. Voilà pourquoi ça fonctionnait. Maintenant je n'ai pas beaucoup d'expérience en php il y a donc peut moyen de faire plus propre.

if (isset($_SERVER['SERVER_PORT']))
        define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
    else

        define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));

Hors ligne

#9 20-11-2012 23:47

jonas
Administrator
Inscription : 25-06-2006
Messages : 727

Re : Problème affichage

A faire également pour l'https, mais mis a par cella je ne vois rien a changer.

Hors ligne

#10 21-11-2012 00:08

jonas
Administrator
Inscription : 25-06-2006
Messages : 727

Re : Problème affichage

Voila c'est reporter sur trunk http://websvn.tuxfamily.org/revision.ph … 44&peg=344

Pour éviter de voire le port s'afficher quand ce dernier est celui par défaut j'ai ajouter une petite condition

Merci smile bonne utilisation de GCweb ! Le projet ne bouge plus beaucoup mais n'est pas mort big_smile

Hors ligne

#11 21-11-2012 11:43

Akura
Membre
Inscription : 20-11-2012
Messages : 7

Re : Problème affichage

J'ai testé malheureusement chez moi ça ne fonctionne pas. Premièrement dans la séquence le no de port est inversé par rapport à la fin de l'URL et de plus le fait que le test soit intégré au substr() le résultat n'est jamais pris en compte.

J'ai sorti le test du substr(). Il faudrait tester sur un site sans port pour confirmer que c'est fonctionnel dans tous les cas.

Voici une modification qui fonctionne chez moi :

if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
    define('URLRACINE_GCWEB','https://'.$_SERVER['SERVER_NAME'].(isset($_SERVER['SERVER_PORT']) && ($_SERVER['SERVER_PORT'] != 443) ? ':'.$_SERVER['SERVER_PORT'] : '').substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));
else
    define('URLRACINE_GCWEB','http://'.$_SERVER['SERVER_NAME'].(isset($_SERVER['SERVER_PORT']) && ($_SERVER['SERVER_PORT'] != 80) ? ':'.$_SERVER['SERVER_PORT'] : '').substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],'/')));

Dernière modification par Akura (21-11-2012 11:44)

Hors ligne

#12 21-11-2012 18:38

jonas
Administrator
Inscription : 25-06-2006
Messages : 727

Re : Problème affichage

Oupsssss  ! J'aurais mieux fait de me coucher et faire ça tranquillement hmm je corrige tt  a l'heure :-)

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Si vous êtes un être humain ne changez pas le contenu de ces deux champs.

Pied de page des forums