Annonce

#1 2015-01-01 13:58:00

routard
Membre
Inscription : 2011-11-08
Messages : 11

PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Bonjour,
J'ai un message d'alerte en bas de toutes les pages de la dernière version du script waewsletter (mais le script fonctionne normalement a priori) dans un encadré rouge.
Bug ? Problème de config ? Comment le résoudre ? Je suis sous PHP 5.5.18 (voir mon phpinfo http://www.relaispourlavie-valdoise.net/phpinfo.php)
Merci pour le passage vers HTML5 et PHP 5.4+ !

    PHP Notice: Undefined offset: 1 in ~/includes/class.sessions.php on line 508
    Backtrace:
    #0 Session->encode_ip() called at [~/includes/class.sessions.php:129]
    #1 Session->session() called at [~/admin/pagestart.php:29]
    #2 require() called at [~/admin/index.php:12]
    PHP Notice: Undefined offset: 2 in ~/includes/class.sessions.php on line 508
    Backtrace:
    #0 Session->encode_ip() called at [~/includes/class.sessions.php:129]
    #1 Session->session() called at [~/admin/pagestart.php:29]
    #2 require() called at [~/admin/index.php:12]
    PHP Notice: Undefined offset: 3 in ~/includes/class.sessions.php on line 508
    Backtrace:
    #0 Session->encode_ip() called at [~/includes/class.sessions.php:129]
    #1 Session->session() called at [~/admin/pagestart.php:29]
    #2 require() called at [~/admin/index.php:12]

D'autre part, lorsque je cherche à lire certaines données dans la base de données (je récupère les données de la table nl_log pour lister les anciennes newsletter), les caractères accentués ne passent pas (pourtant j'ai défini le charset utf-8 en en-tête de mes pages php et je fait un "set names utf-8" pour chaque connexion sql).

Dernière modification par routard (2015-01-01 18:36:15)

Hors ligne

#2 2015-01-01 18:44:36

routard
Membre
Inscription : 2011-11-08
Messages : 11

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Je suis passé en 'DEBUG_LEVEL_QUIET' en attendant mais ça ne résoud pas le problème :-)

Je suis sous IPv6, ça ne serait pas un problème d'IPv4 au vu de la fonction "encode_IP" concernée ?

Dernière modification par routard (2015-01-01 18:46:59)

Hors ligne

#3 2015-01-01 18:55:07

routard
Membre
Inscription : 2011-11-08
Messages : 11

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Je me répond tout seul... la fonction attend une IPv4 xxx.xxx.xxx.xxx avec le point '.' comme séparateur
Mais les IPv6 sont formatées sur 8*2 octets séparées par deux points ":" ... donc la fonction explode ne fonctionne pas :-)

Hors ligne

#4 2015-01-01 19:32:01

routard
Membre
Inscription : 2011-11-08
Messages : 11

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Suite...

J'ai modifié la fonction encode_IP :

function encode_ip($dotquad_ip)
{
    if(filter_var($dotquad_ip, FILTER_VALIDATE_IP,FILTER_FLAG_IPV4))
    {
        $ip_sep = explode('.', $dotquad_ip);
        return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
    }
    elseif(filter_var($dotquad_ip, FILTER_VALIDATE_IP,FILTER_FLAG_IPV6))
    {
        return str_replace(':','',$dotquad_ip);
    }
    else
    {
        return null;
    }
}

Pour prendre en compte l'IPv6, il faut également modifier la colonne 'session_ip' de la table 'wa_sessions' dans la base de données. Elle est en char(8), il faut la passer en char(32).

De plus, la fonction decode_IP dans class.sessions est obsolète (elle n'est de toutes façons pas utilisée) et la fonction 'sessions' qui contient le filtre d'IPv4 à la ligne 97 toujours dans le même fichier class.sessions doit être complétée avec un filtre IPv6.

Voilà voilà

Dernière modification par routard (2015-01-01 20:09:27)

Hors ligne

#5 2015-01-01 23:39:41

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Salut,

Merci pour le retour. Le bogue des ip a été corrigé dans la version de développement il y a quelques temps. Le système de sessions a en effet été largement modifié. Ce bogue n'a pas d'incidence.
De même, le script a été modifié pour travailler en UTF-8 à partir des prochaines versions.

Pour votre problème : Les caractères accentués s'affichent comment ?

Le développement peut être suivi à cette adresse :
https://github.com/wascripts/wanewslett … ts/develop

Je vais bientôt sortir la version 2.4-beta3 mais je veux d'abord ajouter le support des connexions smtp sécurisées.

Bonne année smile


PHP et MySQL, un duo gagnant !

Hors ligne

#6 2015-01-02 01:41:07

routard
Membre
Inscription : 2011-11-08
Messages : 11

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Salut,
OK merci pour ta réponse. Tu sais quand la beta3 doit sortir à peu près ? La mise à jour depuis la beta2 sera-t-elle automatique (je demande pour savoir si je dois attendre ou pas, car j'ecris des scripts qui interfèrent avec wanewsletter et autant pas faire le job pour rien ;-) ) ? Et pour SQL ? Tu passes sous Mysqli ?
Pour les accents c'est les habituels "?". Je capte pas là alors que d'habitude c'est.simple à régler. Tout mon site est déclaré en utf8. Et même quand je déclare un set names utf8 pour chaque connexion SQL c'est la même chose.
Tant mieux si tout WA passe en utf8 parce que j'ai commencé à regarder pour régler mon problème, mis y'a du latin1 de l'ISO et de l'utf8 un peu partout mélangé et j'ai laissé tombé (j'aurais dû regarder la feuille de route).
Merci pour ton boulot et bonne année !

Dernière modification par routard (2015-01-02 05:01:23)

Hors ligne

#7 2015-01-03 17:13:03

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Honnètement, je peux pas donner de date. Dans le deuxième moitié du mois de janvier dans l'idéal.

Pour la connexion aux bases mysql, j'utilise l'extension mysqli oui.

Pour le problème des accents, il faut vérifier tout le processus.
1. vérifier que les données sont correctement codées dans la base de données (ça se vérifie simplement avec phpmyadmin. Si les caractères accentués s'affichent correctement, c'est bon).
2. vérifier que la connexion à la base de données est en utf-8 (SET NAMES utf8) (je suis pas sùr que mysql accepte "utf-8" en alias de "utf8")
3. vérifier que la page déclare bien utiliser l'utf-8


PHP et MySQL, un duo gagnant !

Hors ligne

#8 2015-01-05 23:26:52

routard
Membre
Inscription : 2011-11-08
Messages : 11

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Bonsoir,
Autre question : la secretaire doit envoyer des mail mais n'y connait rien en html :-)
J'ai vu ici
http://forum.webnaute.net/viewtopic.php?id=5025
que l'intégration de CKEditor était possible mais avec les versions actuelles (WA, CKEditor et CKFinder) ça ne fonctionne plus (tout est OK mais les mails ne partent jamais).
Est-ce que l'intégration de CKEditor est prévue dans la prochaine version ?
Merci :-)

Hors ligne

#9 2015-01-10 16:45:17

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : PHP Notice sur toutes les pages (version 2.4-beta2) + erreur d'accents

Pas dans la version 2.4 en tout cas.
J'avais étudié un peu l'intégration de tinymce dans wordpress par exemple et c'était relativement complexe, du coup, j'ai laissé de côté. hmm


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums