Erreur sur site qui décale le menu

nakpep -  
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   -
Salut à tous,
Alors voilà je gère depuis peu le site https://www.hugedomains.com/domain_profile.cfm?d=forumetp&e=com et il y a 2 petites erreurs dessus :
- tout d'abord en bas de la 1ère page apparait une ligne "/home/www/forumetp/www/2009/index.php3" et je ne sais pas trop pourquoi (à savoir qu'avant le site se trouvait dans le répertoire 2009 sur le ftp et depuis peu dans le répertoire 2010)
- ensuite, la plus gênante, lorsqu'on clique sur n'importe quel lien dans le menu cela nous amène bien sur la page désirée mais au prix d'une erreur en haut du site cette fois ("Warning: session_start() [function.session-start]: open(/home/www/forumetp/sessions/sess_369a41990fc9b3236376831eba207894, O_RDWR) failed: No such file or directory (2) in /home/www/forumetp/www/2010/inc-public.php3(20) : eval()'d code on line 10" ) que je n'arrive pas à interpréter et qui a pour effet de décaler le menu vers le haut, et donc de perturber l'affichage (erreur constatée sur Safari & Firefox, sur IE la version que j'ai est vieille et le menu ne s'affiche carrément pas du tout).

Help !

Merci beaucoup :)
A voir également:

14 réponses

imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
Pour le nom de la page en bas, tu doit avoir un echo quelque part dans un template.

pour l'erreur, il faut gratter du coté des sessions. A priori, le fichier de session n'existe pas ... php a-t-il le droit d'écriture dans le dossier /home/www/forumetp/sessions/ ???

pour éviter le message d'erreur, tu peux toujours rajouter un @ devant le session_start de la ligne 10 du fichier inc-public.php3

0
nakpep
 
merci de ta réponse !
en effet le fichier session n'existe pas
"tu doit avoir un echo quelque part dans un template" : euh ça veut dire quoi en terme de dossier dans le ftp ?
comment puis-je donner le droit à php d'écrire dans le dossier /home/www/forumetp/sessions/ ? (dsl pour mon niveau...)

ok je vais essayer !
0
nakpep
 
Voici le contenu de inc-public.php3, je dois faire quoi ? :

<?php

// Distinguer une inclusion d'un appel initial
if (defined("_INC_PUBLIC")) {
$page = inclure_page($fond, $delais, $contexte_inclus);
if ($page['process_ins'] == 'html')
echo $page['texte'];
else
eval('?' . '>' . $page['texte']);

if ($page['lang_select'] === true)
lang_dselect();

} else {
define ("_INC_PUBLIC", 1);
if (!function_exists('include_local')) { # cas de page.php3
include ("ecrire/inc_version.php3");
}
include_local('inc-public-global.php3');

// Calculer la page sans evaluer le php qu'elle contient
$page = calcule_header_et_page ($fond, $delais);

// Execution de la page calculee

// 1. Cas d'une page contenant uniquement du HTML :
if ($page['process_ins'] == 'html') {
$page = $page['texte'];
}

// 2. Cas d'une page contenant du PHP :
// Attention cette partie eval() doit imperativement
// etre declenchee dans l'espace des globales (donc pas
// dans une fonction).
else {
// Une page "normale" va s'afficher ici
if (! ($flag_ob
AND (($var_mode == 'debug')
OR $var_recherche
OR $affiche_boutons_admin
OR $xhtml ))) {
eval('?' . '>' . $page['texte']);
$page = '';
}

// Certains cas demandent un ob_start() de plus
else {
ob_start();
$res = eval('?' . '>' . $page['texte']);
$page = ob_get_contents();
ob_end_clean();

// en cas d'erreur lors du eval,
// la memoriser dans le tableau des erreurs
// On ne revient pas ici si le nb d'erreurs > 4
if ($res === false AND $affiche_boutons_admin
AND $auteur_session['statut'] == '0minirezo') {
include_ecrire('inc_debug_sql.php3');
erreur_squelette(_T('zbug_erreur_execution_page'));
}
}
}

// Passer la main au debuggueur le cas echeant
if ($var_mode == 'debug') {
include_ecrire("inc_debug_sql.php3");
debug_dumpfile($var_mode_affiche== 'validation' ? $page :"",
$var_mode_objet,$var_mode_affiche);
}
if (count($tableau_des_erreurs) > 0 AND $affiche_boutons_admin)
$page = affiche_erreurs_page($tableau_des_erreurs) . $page;

// Traiter var_recherche pour surligner les mots
if ($var_recherche) {
include_ecrire("inc_surligne.php3");
$page = surligner_mots($page, $var_recherche);
}

// Valider/indenter a la demande. garder la compatibilite tidy
if (trim($page) AND $xhtml AND !$flag_preserver AND !headers_sent()) {
if ($xhtml === true) $xhtml = 'tidy';
$file = 'inc_' . $xhtml. ".php";
# spip_log(_DIR_RESTREINT . $file);
if (is_readable(_DIR_RESTREINT . $file)) { include_ecrire($file); }
if (function_exists($xhtml))
$page = $xhtml($page);
else if (function_exists('xhtml'))
$page = xhtml($page);
}

// Inserer au besoin les boutons admins
if ($affiche_boutons_admin) {
include_local("inc-admin.php3");
$page = affiche_boutons_admin($page);
}

// Affichage final s'il en reste
echo $page;

// Taches de fond ?
terminer_public_global();
}

?>
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
a priori, tu utilise spip ... je suis pas un expert de ce truc là !

pour le pb des session, il faut peut-être juste changer les droits sur le dossier session (chmod 777 par exemple)
De toute façon, l'erreur se situe dans un template qui est évalué ... pas facile de trouver la ligne qui foire ...

Pour l'echo en bas de page, à priori, c'est uniquement sur la page d'accueil, donc regarde tout en bas de ton template de la page d'accueil si y'a pas quelque chose après le </html>
0

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

Posez votre question
nakpep
 
oui c'est spip...
j'ai remplacé le chmod 755 par un 777 pour le répertoire sessions, l'erreur est tjs là
et rien après le </html> dans la page d'accueil... :(
0
nakpep
 
en fait ça a changé un truc, le nom de la session inexistante (sess_f4a7fbac5a074b967e7abdf05eadb3af) n'est plus le même
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
c'est normal que le numéro de session change.
Chaque utilisateur, et chaque nouvelle connexion, créé une nouvelle session ...

Pour les erreurs, je sais pas trop ... en plus je déteste spip ... MDR
0
nakpep
 
ok, bon j'suis un peu désespéré là du coup...
en tous cas merci beaucoup quand même
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
Faut pas désespérer, mais va plutôt voir sur les forums dédié à spip ... y'en a pleins !

http://forum.spip.org/fr_rubrique193.html
0
nakpep
 
Y'a quand même un truc (de base) qui m'échappe. Dans l'erreur :
Warning: session_start() [function.session-start]: open(/home/www/forumetp/sessions/sess_0e5407b386c147603c1891b4e6dd9513, O_RDWR) failed: No such file or directory (2) in /home/www/forumetp/www/2010/inc-public.php3(20) : eval()'d code on line 10

je ne comprends pas ce qu'est l'emplacement "/home/www/forumetp/www/2010/"
Le premier /home/www/forumetp/sessions/ existe bien, mais le deuxième y'a un souci non ? Pourquoi y'a 2 fois www ? J'ai vérifié l'emplacement "/home/forumetp/sessions" existe, "/home/www/2010/" aussi, mais surement pas "/home/www/forumetp/www/2010/"

ça peut aider ?
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
oui et non ...

ca met juste en avant qu'il y a un truc chelou là dessus !

Mais le message est clair, il dit qu'il y a une erreur à la 10eme ligne d'un script évalué depuis le fichier inc-public.php3.

le script qui est évalué (qui doit surement être dans un template, ou un plugin), et qui génère l'erreur te dit qu'il ne trouve pas le fichier de session.

C'est quoi le serveur ?
0
nakpep
 
https://www.hugedomains.com/domain_profile.cfm?d=forumetp&e=com

cette erreur me pourri la vie parce qu'avec son affichage en haut et le fait qu'elle décale le menu ça donne l'impression que le site est complètement buggé alors qu'en fait il fonctionne
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
Est-ce que tu as besoin des session pour le fonctionnement de ton site ?

Comme le session_start est lancé via un eval, je suppose que c'est dans un plugin ... Tu dois avoir moyen d'activer ou de désactiver les plugins ... fait peut être des essais de ce coté là.

Sinon, tu peux aussi faire une recherche d'un fichier qui contient le "session_start()" et soit tu le dégage, soit tu rajoute juste @ devant ... pour ne pas avoir le message d'erreur

Pour la config de php ... rien ne me choque particulièrement dans le réglage des sessions
0
imw Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   42
 
Vérifie aussi que PHP à bien le droit d'écrire dans le dossier des session ...

fait juste un
$f = fopen( '/home/www/forumetp/sessions/test.txt','w');
if( !$f )
    echo 'Ecriture impossible dans le dossier';
else
{
    fwrite( $f, 'test');
    fclose( $f );
}


et regarde si il t'a bien créé le fichier test.txt ...

ou plus simple encore (mais jamais testé) :
if( is_writable( '/home/www/forumetp/sessions' ) )
    echo 'Ecriture OK';
else
    echo 'Ecriture impossible';
0