avec, pour chaque verifyXxxx(...) quelque chose de similaire à :
<code>
function verifyLogin($l) {
return preg_match('/^[a-z0-9|_|-| ]{8,}$/i', $l);
}
</code>
cette fonction est utilisée dans un test :
<code>
$nextaction="$_SERVER[PHP_SELF]";
if (verifyAll($login, $pass, $os, $choose) === true) {
$nextaction="envoi.php";
}
</code>
en fait je rencontre TROIS problèmes :
- 1 - nextaction ne bascule pas de "$_SERVER[PHP_SELF]" à "envoi.php" ;
- 2 - si je fais un echo de verifyAll(...), la valeur retournée est 1 et
non pas true ;
- 3 - j'ai suspecté preg_match de retourner un entier plutôt qu'un
booléen (nb de fois où ça match mais on s'arrête à la première fois)
(valeur retournée = pseudo type : mixed).
A cause de cela j'ai changé mon code en :
<code>
function verifyLogin($l) {
if (preg_match('/^[a-z0-9|_|-| ]{8,}$/i', $l)) {
return true;
}
return false;
}
</code>
ce qui me paraît plus correct, je suis sûr d'avoir un booleen dans
verifyAll...
mais bon, ça ne marche pas mieux et je ne pige pas où est mon erreur ni
pourquoi echo verifyAll m'affiche 1 au lieu de true, sans doute y a
t'il, pour un echo, une traduction de type automatique ?
NB : j'ai remplacé :
if (verifyAll($login, $pass, $os, $choose) === true) {
par :
if (verifyAll($login, $pass, $os, $choose) === 1) {
(ou avec ==)
sans plus de succès.
je ne connais pas la function permettant de de retrouver le type d'une
variable :
- 1 - nextaction ne bascule pas de "$_SERVER[PHP_SELF]" à "envoi.php" ;
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
Tu peux plus simplement écrire « $nextaction = $_SERVER['PHP_SELF']; » mais en principe cela devrait vraiment être équivalent.
- 2 - si je fais un echo de verifyAll(...), la valeur retournée est 1 et non pas true ;
C'est normal. true est un booléen qui vaut 1, de même que false est un booléen qui vaut 0.
- 3 - j'ai suspecté preg_match de retourner un entier plutôt qu'un booléen [etc.]
Du coup, tout ce qui suit ne servait à rien, et amène la même réponse : true vaut 1, c'est normal.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
yvon.thoravalNO-SPAM
Olivier Miakinen <om+ wrote:
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout : <code> $nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose) === true) { $nextaction="envoi.php"; } echo "choose : ".$choose." os : " .$os." nextaction : ".$nextaction." verifyOs($os, $choose) : ".verifyOs($os, $choose)."<br/>"; </code> l'echo me donne : choose : Choisir os : Mac OS X nextaction : /register.php verifyOs(Mac OS X, Choisir) : 1
et pourtant $nextaction ne passe pas à "envoi.php", je ne rentre pas dans le if (verifyAll(...)) {...}
et ça, je viens de vérifier pour la n + unième fois, ca marche avec camino (MacOS X) mais pas avec Firefox (MacOS X ET Xindows XP). je ne comprend pas en quoi du code php peut-être browser dépendant ??? -- yt
Olivier Miakinen <om+news@miakinen.net> wrote:
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout :
<code>
$nextaction=$_SERVER['PHP_SELF'];
if (verifyAll($login, $pass, $os, $choose) === true) {
$nextaction="envoi.php";
}
echo "choose : ".$choose." os : " .$os." nextaction : ".$nextaction."
verifyOs($os, $choose) : ".verifyOs($os, $choose)."<br/>";
</code>
l'echo me donne :
choose : Choisir os : Mac OS X nextaction : /register.php verifyOs(Mac
OS X, Choisir) : 1
et pourtant $nextaction ne passe pas à "envoi.php", je ne rentre pas
dans le if (verifyAll(...)) {...}
et ça, je viens de vérifier pour la n + unième fois, ca marche avec
camino (MacOS X) mais pas avec Firefox (MacOS X ET Xindows XP).
je ne comprend pas en quoi du code php peut-être browser dépendant ???
--
yt
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout : <code> $nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose) === true) { $nextaction="envoi.php"; } echo "choose : ".$choose." os : " .$os." nextaction : ".$nextaction." verifyOs($os, $choose) : ".verifyOs($os, $choose)."<br/>"; </code> l'echo me donne : choose : Choisir os : Mac OS X nextaction : /register.php verifyOs(Mac OS X, Choisir) : 1
et pourtant $nextaction ne passe pas à "envoi.php", je ne rentre pas dans le if (verifyAll(...)) {...}
et ça, je viens de vérifier pour la n + unième fois, ca marche avec camino (MacOS X) mais pas avec Firefox (MacOS X ET Xindows XP). je ne comprend pas en quoi du code php peut-être browser dépendant ??? -- yt
Olivier Miakinen
Olivier Miakinen <om+ wrote:
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout : <code> $nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose) === true) { $nextaction="envoi.php"; }
Toutes mes confuses, je n'avais pas lu l'intégralité du code, me contentant des deux versions de la fonction VerifyLogin.
Effectivement ça me semble curieux, mais aussi je ne vois pas pourquoi tu veux être plus royaliste que le roi, et vérifier que la valeur de retour est non seulement non nulle, mais de plus de type booléen.
$nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose)) { $nextaction="envoi.php"; }
Pour paraphraser le PHP en français, je dirais que cette dernière solution signifie « est-ce que les paramètres sont corrects », que la précédente signifie « est-ce qu'il est vrai que les paramètres sont corrects » alors que ta propre proposition signifiait « est-ce que la question de savoir si les paramètres sont corrects est une proposition booléenne dont la réponse est oui ». ;-)
Olivier Miakinen <om+news@miakinen.net> wrote:
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout :
<code>
$nextaction=$_SERVER['PHP_SELF'];
if (verifyAll($login, $pass, $os, $choose) === true) {
$nextaction="envoi.php";
}
Toutes mes confuses, je n'avais pas lu l'intégralité du code, me
contentant des deux versions de la fonction VerifyLogin.
Effectivement ça me semble curieux, mais aussi je ne vois pas pourquoi
tu veux être plus royaliste que le roi, et vérifier que la valeur de
retour est non seulement non nulle, mais de plus de type booléen.
$nextaction=$_SERVER['PHP_SELF'];
if (verifyAll($login, $pass, $os, $choose)) {
$nextaction="envoi.php";
}
Pour paraphraser le PHP en français, je dirais que cette dernière
solution signifie « est-ce que les paramètres sont corrects », que la
précédente signifie « est-ce qu'il est vrai que les paramètres sont
corrects » alors que ta propre proposition signifiait « est-ce que la
question de savoir si les paramètres sont corrects est une proposition
booléenne dont la réponse est oui ». ;-)
Pourtant, cela devrait fonctionner. Il contient quoi, nextaction ?
ça, c'est tout : <code> $nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose) === true) { $nextaction="envoi.php"; }
Toutes mes confuses, je n'avais pas lu l'intégralité du code, me contentant des deux versions de la fonction VerifyLogin.
Effectivement ça me semble curieux, mais aussi je ne vois pas pourquoi tu veux être plus royaliste que le roi, et vérifier que la valeur de retour est non seulement non nulle, mais de plus de type booléen.
$nextaction=$_SERVER['PHP_SELF']; if (verifyAll($login, $pass, $os, $choose)) { $nextaction="envoi.php"; }
Pour paraphraser le PHP en français, je dirais que cette dernière solution signifie « est-ce que les paramètres sont corrects », que la précédente signifie « est-ce qu'il est vrai que les paramètres sont corrects » alors que ta propre proposition signifiait « est-ce que la question de savoir si les paramètres sont corrects est une proposition booléenne dont la réponse est oui ». ;-)
yvon.thoravalNO-SPAM
Olivier Miakinen <om+ wrote:
Pour paraphraser le PHP en français, je dirais que cette dernière solution signifie « est-ce que les paramètres sont corrects », que la précédente signifie « est-ce qu'il est vrai que les paramètres sont corrects » alors que ta propre proposition signifiait « est-ce que la question de savoir si les paramètres sont corrects est une proposition booléenne dont la réponse est oui ». ;-)
J'adimre, bravo ! très jolie formulation ;-)
en fait le problème était ailleurs, comme d'hab' ;-)
mais j'ai un autre bugg php qqpart qui commence à m'échauffer les burettes... -- yt
Olivier Miakinen <om+news@miakinen.net> wrote:
Pour paraphraser le PHP en français, je dirais que cette dernière
solution signifie « est-ce que les paramètres sont corrects », que la
précédente signifie « est-ce qu'il est vrai que les paramètres sont
corrects » alors que ta propre proposition signifiait « est-ce que la
question de savoir si les paramètres sont corrects est une proposition
booléenne dont la réponse est oui ». ;-)
J'adimre, bravo ! très jolie formulation ;-)
en fait le problème était ailleurs, comme d'hab' ;-)
mais j'ai un autre bugg php qqpart qui commence à m'échauffer les
burettes...
--
yt
Pour paraphraser le PHP en français, je dirais que cette dernière solution signifie « est-ce que les paramètres sont corrects », que la précédente signifie « est-ce qu'il est vrai que les paramètres sont corrects » alors que ta propre proposition signifiait « est-ce que la question de savoir si les paramètres sont corrects est une proposition booléenne dont la réponse est oui ». ;-)
J'adimre, bravo ! très jolie formulation ;-)
en fait le problème était ailleurs, comme d'hab' ;-)
mais j'ai un autre bugg php qqpart qui commence à m'échauffer les burettes... -- yt