Perte de session sur LG COOKIE KP 500

Etrange soucis d’authentification sur une petite application de mon cru lorsque j’y accédais depuis le navigateur d’un GSM LG Cookie KP 500 (user agent : LG-KP500 Teleca/WAP2.0 MIDP-2.0/CLDC-1.1)
Après un login réussi l’utilisateur est redirigé vers le menu ou vers la page à laquelle il tentait d’accéder. Malheureusement dans ce cas-çi l’utilisateur était bien redirigé vers la bonne page mais une fois arrivé dessus il n’était plus reconnu comme authentifié et le formulaire de login était donc de nouveau proposé.

En fait le cookie contenant l’identifiant de session n’était simplement pas setté pour une raison mystérieuse. Mystérieuse car dans beaucoup d’autres cas tout fonctionnait correctement. Aucune problème apparent depuis un BlackBerry, Firefox 3.5, Safari, Opéra,… J’ai donc exploré plusieurs pistes avant de trouver la bonne. J’ai d’abord cru que le navigateur n’acceptait pas les cookies, envisagé de transmettre le PHPSESSID dans l’url (bof bof), j’ai également pensé à un soucis causé par le Wap lui-même ou par le proxy du provider (Base), j’ai créé des pages de test toutes simples sur lesquelles les cookies et les variables stockées en session pouvaient être retrouvées sans aucun soucis et ai donc commencé à m’arracher les cheveux.

Finalement,… après avoir fait des recherches dans toutes les directions envisagées j’ai commenté une ligne de mon code : un setcookie() utilisé par mon système de gestion des traductions pour rendre persistant le choix de la langue d’une visite à l’autre. Et là paf “Eureka” ça a marché…

Ma conclusion est que étrangement le navigateur du LG Cookie n’arrivait à stocker qu’un seul cookie pour le domaine sur lequel se trouvait mon application… J’ai donc pû corriger le problème en retirant simplement l’appel à ce setcookie dans le cas précis qui m’occupait. Tout fonctionne maintenant comme sur des roulettes.
Si vous avez d’autres pistes de correction je reste preneur malgré tout ;-) Après tant de recherche je manquait vraiment de courage que pour chercher une solution véritablement élégante et passe-partout.

Ils auraient mieux fait d’appeler leur GSM le “Cookies” !

Erreur javascript ‘expected identifier, string or number’ sous IE

Dernièrement, après une mise à jour mineure, des personnes utilisant Internet Explorer se sont plaintes d’un fonctionnement anormal du site sur http://www.apyro.com . Internet Explorer m’a rapidement informé de la nature de l’erreur de façon très claire comme à son habitude : ‘expected identifier, string or number’. Firefox, Chrome, Opera et Safari ne présentent aucune erreurs sur les pages affectées sous IE.

Le code posant problème est le suivant :

var Config = {
urlAppend : '',
}

En fait en PHP j’ai pris l’habitude de toujours mettre la virgule de séparation même à la fin du dernier champs afin d’éviter de l’oublier lors de l’ajout d’un élément en fin de tableau par exemple.

$tableau = array(
1 => 'hello',
2 => 'world',
);

Cela ne pose bien entendu aucun problème à PHP. Cela ne pose d’ailleurs aucun problème non plus en javascript avec la plupart des navigateurs mais bien entendu il faut que cela coince sous IE (6 & 7, je n’ai pas testé avec IE8) …

Pour une fois heureusement la solution ne nécessite pas de hack ou autre supercherie, il suffit de retirer la dernière virgule et tout rentre dans l’ordre.

var Config = {
urlAppend : ''
}

J’espère que cela permettra à certains d’éviter de perdre trop de temps à débugger cette erreur.

More Articles

Tonight… on this small planet, we’re gonna rock civilization

Installer Windows XP sans lecteur CD

Drupal drush

De la peinture en string ficelle

Good cheap fast

Android Party

MySql case sensitive ?

Claroline 1.9 est enfin disponible