logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
32 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 506 986

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» [Résolu] - Sable 5.10 et PHP5

[Résolu] - Sable 5.10 et PHP5#23213

4Contributeur(s)
Mercury_beJireckdeveloppeurAlefBurzmali
3 Modérateur(s)
developpeurjpbJireck
Mercury_be Mercury_beicon_post
Bonjour tout le monde,

J'ai un soucis, depuis que mon hébergeur est passé à PHP5 je me retrouve avec plein d'erreurs (le tchat, l'envoi de photos par des membres, le calendrier NPDS qui ne va plus...)

suis-je le seul ?

y'a-t-il des modifs à faire ?

en un mot HEEEEEELP :=!
Jireck Jireckicon_post
moi je suis sur php 5 et j'ai pas de probleme....

Je penche plutot sur des restrictions de ton hebergeur.... du a la mise a jour .... ou pas ...

donne les erreurs
et un phpinfo
Mercury_be Mercury_beicon_post
voici pour les restrictions : http://services.leobaillard.org/infos/

pour ce qui est du chat , voici l'erreur ;



Notice: Undefined variable: nuke_url in babynews/meta/meta.php on line 9

Notice: Undefined variable: meta_op in babynews/meta/meta.php on line 24



voici le contenu du fichier...

comme il est indiqué touche pas à ça ptit con lol j'ai pas touché ;-)


<?php
/* Do not change anything in this file manually. Use the administration interface*/
$l_meta="\"-//W3C//DTD HTML 4.01 Transitional//EN\">\n\n\n";
$l_meta.=
"\"content-type\" content=\"text/html; charset=iso-8859-1\" />\n";
$l_meta.=
"\"content-script-type\" content=\"text/!!javascript!!\" />\n";
$l_meta.=
"\"content-style-type\" content=\"text/css\" />\n";
$l_meta.=
"\"expires\" content=\"0\" />\n";
$l_meta.=
"\"pragma\" content=\"no-cache\" />\n";
$l_meta.=
"\"identifier-url\" content=\"$nuke_url\" />\n";
$l_meta.=
"\"author\" content=\"Developpeur\" />\n";
$l_meta.=
"\"owner\" content=\"npds.org\" />\n";
$l_meta.=
"\"reply-to\" content=\"developpeur@npds.org\" />\n";
$l_meta.=
"\"language\" content=\"fr\" />\n";
$l_meta.=
"\"content-language\" content=\"fr, fr-be, fr-ca, fr-lu, fr-ch\" />\n";
$l_meta.=
"\"description\" content=\"Générateur de portail Français en Open-Source sous licence Gnu-Gpl utilisant Php et MySql\" />\n";
$l_meta.=
"\"keywords\" content=\"solution,solutions,portail,portails,generateur,générateur,nouveau,Nouveau,Technologie,technologie,npds,NPDS,Npds,nuke,Nuke,PHP-Nuke,phpnuke,php-nuke,nouvelle,Nouvelle,nouvelles,histoire,Histoire,histoires,article,Article,articles,Linux,linux,Windows,windows,logiciel,Logiciel,téléchargement,téléchargements,Téléchargement,Téléchargements,gratuit,Gratuit,Communauté,communauté,Forum,forum,Forums,forums,Bulletin,bulletin,application,Application,dynamique,Dynamique,PHP,Php,php,sondage,Sondage,Commentaire,commentaire,Commentaires,commentaires,annonce,annonces,petite,Petite,petite annonce,mailling,mail,faq,Faq,faqs,lien,Lien,liens,france,francais,français,France,Francais,Français,libre,Libre,Open,open,Open Source,OpenSource,Opensource,GNU,gnu,GPL,gpl,License,license,Unix,UNIX,unix,MySQL,mysql,SQL,sql,Database,DataBase,database,Red Hat,RedHat,red hat,Web Site,web site,site,sites,web,Web\" />\n";
$l_meta.=
"\"rating\" content=\"general\" />\n";
$l_meta.=
"\"distribution\" content=\"global\" />\n";
$l_meta.=
"\"copyright\" content=\"npds.org 2001-2005\" />\n";
$l_meta.=
"\"revisit-after\" content=\"14 days\" />\n";
$l_meta.=
"\"resource-type\" content=\"document\" />\n";
$l_meta.=
"\"robots\" content=\"all\" />\n";
$l_meta.=
"\"generator\" content=\"NPDS 5.10 SABLE\" />\n";
if ($meta_op==
"") echo $l_meta; else $l_meta=str_replace("\n","",str_replace("\"","'",$l_meta));
?>







Message édité par : Mercury_be / 17-01-2008 05:30



Message édité par : Mercury_be / 19-01-2008 17:29

developpeur developpeuricon_post
il faut regarder dans grab_globals.php et mettre le reporting des erreurs au plus bas ... tous simplement
Mercury_be Mercury_beicon_post
Voila les modifications faites... mais erreur toujours présente voici le code, je pense l'avoir rmodifié comme il fallait...

d'autres idées ?



if (!defined('NPDS_GRAB_GLOBALS_!!!include!!!D')) {
define('NPDS_GRAB_GLOBALS_!!!include!!!D', 1);

// Modify the report level off PHP
// error_reporting(0); : // report NO ERROR
// error_reporting(E_ERROR | E_WARNING | E_PARSE); // standard ERROR report
error_reporting(0);



et voici ce qui s'affiche toujours dans le chat...



Notice: Undefined variable: nuke_url in /babynews/meta/meta.php on line 9

Notice: Undefined variable: meta_op in /babynews/meta/meta.php on line 24





Message édité par : Mercury_be / 18-01-2008 14:49

Mercury_be Mercury_beicon_post
dans ce cas il s'agirait bien de variables non définies non ?
AlefBurzmali AlefBurzmaliicon_post
Bonjour,

Je suis l'un des administrateurs de l'hébergeur de Mercury_be (Léoserveur). Comme vous avez pu le voir dans le phpinfo fourni, nous n'avons aucune restriction. Et surtout, la configuration entre PHP 4 et PHP 5 n'a presque pas été touché (à part l'affichage des erreurs, où on affiche les E_STRICT).

Je précise que j'ai les mêmes erreurs sur un serveur "propre" en local (Ubuntu 7.10, Apache 2.0, Php 5.2, MySQL 5.0) avec une configuration "mode développement".

Les erreurs affichées sont des erreurs de mauvais codage (variables non définies) ... La page d'administration "Savemysql" reste définitivement blanche. Un rapide coup d'oeil dans le code source me suffit à voir que rien n'est optimisé ...

il faut regarder dans grab_globals.php et mettre le reporting des erreurs au plus bas ... tous simplement

Ce n'est pas en cachant les erreurs qu'on les résout ... Surtout que des variables non définies, sur un hébergeur mal configuré (register_globals à on, chez Free par exemple), c'est l'équivalent d'un piratage assuré ...

Pour désactiver le rapport d'erreur quand même (et donc fermer les yeux pour éviter de voir le trou dans la coque du navire, pour prendre une métaphore ...)

<?php
error_reporting
);
?>

AlefBurzmali AlefBurzmaliicon_post
J'adore votre code HTML généré (page edito sur mon serveur local) :
<?
   
!include!_once("modules/ipban/ban.php");
?><!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- 
[...] -->
<?
   !include!(
"modules/aide-contextuelle/AC-header.js");
?></head>
<!-- 
[...] -->
              ;<div id=
"ie"><?
    !include!(
"modules/aide-contextuelle/AC-header_after.js");
    !include!(
"modules/aide-contextuelle/AC-header_after-perso.js");
?><div id=
"editorial">
<!-- 
[...] -->



Maintenant, vous devriez savoir pourquoi il ne faut JAMAIS utiliser les balises <? ?> ou <% %> ou <script language="php"></script> à la place de <?php ?> (je précise que toutes "existent") ...

Simplement parce que <% est utilisé pour l'ASP et ça créé des conflits, <? pour les prologues XML et ça fait des Parse Error, <script ...> parce que ... j'en ai jamais vu en fait ... Et donc, tout webmaster qui se respecte, et fait du XHTML valide avec prologue XML, va désactiver short_open_tag et donc <? ... ainsi que asp_tags et <% (l'ASP, c'est pas bô).

Je cite la doc' de PHP :
Note: Notez également que si vous intégrez PHP dans des documents XML ou XHTML [vous avez quoi comme doctype déjà ?], vous devez utiliser les balises <?php ?> pour rester conforme aux standards.


Joli bug, hein ? J'espère que les pages incluses, entre autres, modules/ipban/ban.php n'ont aucune fonction importante, genre banissement d'utilisateurs ... Si ? Comme c'est dommage ... Drôle de manière d'inclure du JS également ...

Sinon, le validateur du W3C plante à la ligne 282 ... Y a un "truc" pas en UTF-8 qu'il ne comprend pas (carac \xE9) ... En insistant un peu (forçage mode ISO), j'ai 133 erreurs et pas de structure (pas de balise h#) ...

Enfin ... Je suis là pour les problèmes de conf de mon serveur, et non pas pour le codage étrange de votre script ...

Message édité par : AlefBurzmali / 20-01-2008 11:19

Mercury_be Mercury_beicon_post
Help ?

moi tout ce que je voudrais, c'est pas déclarer un conflit lol mais qu'on me dise comment je peut résoudre mes soucis mdr
AlefBurzmali AlefBurzmaliicon_post
Le plus simple, pour le chat du moins, c'est déditer la page chat.php et, avant la ligne

<?php
!include!("meta/meta.php");



mettre :

<?php // sans le <?php

$nuke_url = ( empty( $_SERVER['HTTPS'] ) ? 'http' : 'https' ) . '://' . $_SERVER['HTTP_HOST']  . dirname( $_SERVER['REQUEST_URI'] );
$meta_op = 
'';



Bien entendu, ce n'est qu'une solution de secours, et il faudra attendre une correction "officielle" ... Surtout que le DOCTYPE (strict chez moi) est en désaccord avec le contenu (frame) ...

Message édité par : AlefBurzmali / 20-01-2008 11:40

AlefBurzmali AlefBurzmaliicon_post
Vous, vous avez un drôle de problème avec votre coloration syntaxique ... Elle ne sait pas qu'une chaîne de caractère peut se terminer avant la fin du script ? :b

Je vous conseille d'utiliser GeSHI, qui est très fiable et supporte quelques 90 langages différents : http://qbnz.com/highlighter/ (le site semble en rade ce matin mais bon ...)

Message édité par : AlefBurzmali / 20-01-2008 11:53

Jireck Jireckicon_post
Ya pas de conflit mercury...

c 'est sur que des balises courtes ne sont pas top...



Ce n'est pas en cachant les erreurs qu'on les résout ... Surtout que des variables non définies, sur un hébergeur mal configuré (register_globals à on, chez Free par exemple), c'est l'équivalent d'un piratage assuré ...



C'est sur que ce n'est pas en cachant les erreurs qu'on les resolvent...
Par contre pour le piratage assuré... je suis un peu septique...



Les erreurs affichées sont des erreurs de mauvais codage (variables non définies) ... La page d'administration "Savemysql" reste définitivement blanche. Un rapide coup d'oeil dans le code source me suffit à voir que rien n'est optimisé ...



Ce n'est pas optimisé ou ? merci de nous l'indiqué?
et si tu as une solution, on est preneur...
developpeur developpeuricon_post
merci / beaucoup de chose ont évoluées depuis Sable et certaines erreurs ont totallement disparues de NPDS (< ?PHP généralisé par exemple)

Ceci étant les concepteurs de PHP 5 ont pris des directions qui nécessite de retoucher 100% de nombreux scripts et cela ne se fait pas en 8 jours.

Essayer d'installer une version Evolution
AlefBurzmali AlefBurzmaliicon_post
Citation : Jireck
Ce n'est pas optimisé ou ? merci de nous l'indiqué?
et si tu as une solution, on est preneur...


Le plus gros problème d'optimisation : les doubles quotes pour encadrer les chaînes. Surtout qu'il y en a un certain nombre :p
Pour exemple (page header.php) :

if (!$file=@opendir("themes/$cookie[9]")) $tmp_theme=$Default_Theme;


Je ne pense même pas que ça fonctionne ... Le $cookie[9] n'étant pas entre accolades ...
Il y en a d'autres, mais il est tard, j'ai pas le temps de chercher ce soir.


Sinon, developpeur, effectivement, ça ne prend pas 8 jours ;) Cependant, il n'y a pas de différence de codage entre un script php4 et php5 ... Si les bonnes habitudes avaient été prises dès le début, le problème ne se serait pas posé (ex : $PAGES[$pages_ref][blocs], ça m'étonnerait que "bloc" soit une constante).

L'utilisation massive de variables globales dénote aussi d'un certain manque d'organisation du code. Ça ressemble plus à du code linéaire (genre bash) que du fonctionnel (php4) voire objet (php5 en partie).

Je vais tester la version Evolution. Si ça vous intéresse, je jetterai aussi un oeil dans les sources pour vous faire part de quelques conseils ;)

PS : Je remarque que j'ai fait preuve d'un certain manque de diplomatie dans mes premiers messages .... hum ... j'espère que vous ne m'en voudrez pas :=!
developpeur developpeuricon_post
Citation : AlefBurzmali
Le plus gros problème d'optimisation : les doubles quotes pour encadrer les chaînes. Surtout qu'il y en a un certain nombre :p
Pour exemple (page header.php) :

if (!$file=@opendir("themes/$cookie[9]")) $tmp_theme=$Default_Theme;


Je ne pense même pas que ça fonctionne ... Le $cookie[9] n'étant pas entre accolades ...
==> Mais si mais si cela fonctionne TRES BIEN

Sinon, developpeur, effectivement, ça ne prend pas 8 jours ;) Cependant, il n'y a pas de différence de codage entre un script php4 et php5 ... Si les bonnes habitudes avaient été prises dès le début,
==> Le début c'est 2001 avec PHP3 ...

le problème ne se serait pas posé (ex : $PAGES[$pages_ref][blocs], ça m'étonnerait que "bloc" soit une constante).
==> Non un machin associatif

L'utilisation massive de variables globales dénote aussi d'un certain manque d'organisation du code. Ça ressemble plus à du code linéaire (genre bash) que du fonctionnel (php4) voire objet (php5 en partie).
==> effectivement mais est-ce vraiment un problème ?

PS : Je remarque que j'ai fait preuve d'un certain manque de diplomatie dans mes premiers messages .... hum ... j'espère que vous ne m'en voudrez pas :=!
==> Si mais on va pas te mordre non plus / Pour une fois
AlefBurzmali AlefBurzmaliicon_post
Je ne pense même pas que ça fonctionne ... Le $cookie[9] n'étant pas entre accolades ...
==> Mais si mais si cela fonctionne TRES BIEN

D'ailleurs, ça m'a étonné ... Il faudra que je regarde ça de plus près ... Mais je suis sûr qu'il y avait un problème dans l'un de mes codes dans un cas similaire. Peut-être était-ce avec un array associatif ?

Le début c'est 2001 avec PHP3 ...

Je dois avouer ignorer quelles étaient les recommandations à l'époque de Php 3 ... Je n'étais qu'au HTML / JS à cette époque.


le problème ne se serait pas posé (ex : $PAGES[$pages_ref][blocs], ça m'étonnerait que "bloc" soit une constante).
==> Non un machin associatif

Dans ce cas, le "block" doit être entre guillements (simples de préférence) pour être considéré comme une chaîne et non une constante. Ça marchera quand même, mais avec un E_NOTICE ou un E_STRICT (Je ne sais plus ...)


L'utilisation massive de variables globales dénote aussi d'un certain manque d'organisation du code. Ça ressemble plus à du code linéaire (genre bash) que du fonctionnel (php4) voire objet (php5 en partie).
==> effectivement mais est-ce vraiment un problème ?

Ça pose surtout un certain problème de logique ... Dans ce cas, tu passes à côté de tout "l'esprit" du code PHP. C'est pas vraiment un problème en soit, mais une curiosité :-)

Et puis, comme dit dans l'autre sujet, ça peut poser quelques bugs inexpliqués et difficilement décelables.

Si mais on va pas te mordre non plus / Pour une fois
:-)
developpeur developpeuricon_post

L'utilisation massive de variables globales dénote aussi d'un certain manque d'organisation du code. Ça ressemble plus à du code linéaire (genre bash) que du fonctionnel (php4) voire objet (php5 en partie).
==> effectivement mais est-ce vraiment un problème ?


Ça pose surtout un certain problème de logique ... Dans ce cas, tu passes à côté de tout "l'esprit" du code PHP. C'est pas vraiment un problème en soit, mais une curiosité :-)

C'est bien là le problème ! / PHP (1,2,3 et même 4) n'a pas été "proposé" comme language POO, déclaratif, ...
- déclarer une variable, passer des paramêtres, instancier une classe ... Tous cela ne me gène absolument pas (même je sais faire ... si, si) / Pondre 30 000 lignes en PHP3 - modifier 65% de ces lignes pour les beaux yeux de PHP4 ... et ré-écrire totallement le Bignoux pour PHP5 ... On ne peut pas séparer un développement de son histoire et de son contexte tous simplement.
AlefBurzmali AlefBurzmaliicon_post
Peut-être alors faudrait-il envisager une réécriture complète du code à la mode php 5 (le prochain php 6 ne change pas vraiment le mode de codage (namespace + utf8 en natif)), par exemple pour la prochaine version majeure (6.x) et étaler le developpement sur autant de temps qu'il faudra ... ;-)

Je pense qu'il y a quand même beaucoup à y gagner.

Message édité par : AlefBurzmali / 22-01-2008 19:25

Mercury_be Mercury_beicon_post
Citation : AlefBurzmali

Le plus simple, pour le chat du moins, c'est déditer la page chat.php et, avant la ligne

<?php
!!include!!("meta/meta.php");



mettre :

<?php // sans le <?php

$nuke_url = ( empty( $_SERVER['HTTPS'] ) ? 'http' : 'https' ) . '://' . $_SERVER['HTTP_HOST'] . dirname( $_SERVER['REQUEST_URI'] );
$meta_op =
'';



Bien entendu, ce n'est qu'une solution de secours, et il faudra attendre une correction "officielle" ... Surtout que le DOCTYPE (strict chez moi) est en désaccord avec le contenu (frame) ...



Trop fort Alef, ça marche !!!!!!!




Merci à toi... :=!





:=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :=! :-|

logo