Ptite b*te :o [:shy]
Moi j’aurai un 24" bientôt
(et qui fait YuV, bon y a plus qu’à trouver le cable PS2 Yuv ad hoc :D)
Il est presque 23h, je vais à la cuisine chercher une bouteille d’eau dans le frigo. J’allume la lumière et tombe nez à nez avec 6 gros cafards se baladant sur le carrelage/Evier/table :peur:
On ne peut même plus laisser une fenêtre ouverte malgré la chaleur :o
Bien fait :o
:nexath … 20 minutes de déboguage avec la nouvelle dans mon service …
Problématique simple: mise à jour d’un enregistrement d’une base de donnée via un formulaire …
Chacun des champs du formulaire est testé, et on vérifie, par rapport à l’objet d’origine, si sa valeur est différente :
if ( array_key_exists('champ' $_POST) && ($objet->prop != $_POST['champ']) )
Cette condition fonctionne bien … Sauf que le testeur à poussé le vice et à remplacer la valeur de champ (qui est censé est une adresse sous la forme « xx rue bidule ») par xx tout court … Ca s’enregistre bien dans la base, mais à partir de là, même si on mettait comme nouvelle valeur « xx rue bidule », la condition (xx != « xx rue bidule ») était toujours false (alors qu’elle aurait du être true) :nexath …
C’est alors que je me suis rappellé une rêgle sympathique de PHP: « Si vous comparez un entier avec une chaîne, la chaîne est convertie en un nombre. » Et par défaut, lors de l’instanciation de notre objet, si on se trouve en présence d’une chaine numérique, on force le type numérique … Donc résultat notre condition était toujours vrai, tant qu’on ne changeait pas le chiffre :paf: …
Au fait, est-ce que quelqu'un sait pour debian (et dérivé) ont écrit leur propre gestionnaire de garbage sessions PHP (qui ne fonctionne pas correctement sur notre serveur, il efface un peu ce qui l'amuse) ? :o
pour tester le typage en même temps c’est !== ?
Au pire tu vires le garbage, et tu nettoies à 4h toutes les sessions expirées…
Et pour ton problème, c’est bien pour cela que j’utilise toujours === et !==. C’est dommage que PHP ne soit pas un brin typé quand même ![]()
Edité le 19/01/2009 à 13:42
Eh oui … En l’occurrence, puisque la première opérande de la comparaison était un numérique, PHP transformait la seconde en numérique également. Vu que cette seconde commençait par le même entier que la première opérande, alors les deux étaient identique alors que non …
Test rapide:
$val1 = 10;
$val2 = "10 rue truc";
echo (int)($val1 != $val2)."<br />"; // 0, alors que 1 attendus
echo (int)($val1 == $val2)."<br />"; // 1, alors que 0 attendus
echo (int)($val1 !== $val2)."<br />"; // 1
echo (int)($val1 === $val2)."<br />"; // 0
Pour le GC de Debian, je pense que je vais le réécrire à ma sauce leur bouzin qui fonctionne pas :o :ane:
Edité le 19/01/2009 à 13:49
Non. 1 n’est pas attendu. C’est juste que tu ne connais les opérateurs PHP, stout ![]()
En l’occurrence, ce code à été dévéloppé par un stagiaire, et c’est ma nouvelle recrue en poste depuis 1 semaine qui à bloqué dessus, et c’est moi qui ai trouver la cause de tout :o
Ne perds ton sang froid
tu fais des fautes d’accord, c’est qui « ai trouvé » « a bloqué » ![]()
Edité le 19/01/2009 à 17:17
Y’a un problème de droit SELinux sur le dictionnaire de Fx depuis ma réinstall de Fedora [:shy] …
Oui
surtout que ça en général, c’est un correcteur grammatical qui le gère…
ah … c’est censé être installé d’office sur les humains ? :ane:
oui, il faut installer la classe Primaire :oui:
Dernz ^^
First ^^
jore
secondz ^^
Preumz.
Preum’s :hello: