Hallo daar!

(Sorry voor de titel, ik kon niks duidelijkers verzinnen)


/**
             * In het volgende blok code wordt $bv2Notice een waarde gegeven
             * 
             * @value false:    Goed wachtwoord en sterk, geen melding
             * @value possible: Goed wachtwoord, maar kan sterker (toon melding)
             * @value special:  Slecht wachtwoord, komt voor in de lijst van de 20 meest gebruikten wachtwoorden (toon melding)
             * @value true:     Slecht of te zwak wachtwoord, ww moet veranderd worden (toon melding)
             */
            
            if ($bPassword_valid == true) { //goed en sterk wachtwoord
                $oStatus->toggle_bit(4);
                $bv2Notice = false;
            } elseif ($bPassword_valid == possible) { //goed wachtwoord, maar kan sterker
                $oStatus->toggle_bit(4);
                $bv2Notice = possible; //melding voor sterker wachtwoord
            } elseif ($bPassword_valid == special) { //Wachtwoor is een van de 20 meest gebruikte wachtwoorden
                $bv2Notice = special;
            } else { //slecht of te zwak wachtwoord
                $bv2Notice = true;
            }
        }
        
        //test-output
	echo (real)$bPassword_valid, '<br>';
        echo $_POST['password'], '<br><br>';
        
        echo (real)$bv2Notice;


Dit script gebruik ik om een password te valideren (tenminste, dit is het deel waar het om gaat).
Nu krijg ik dit als output:

2
ravian88

0


Maar dat kan niet, want de waarde van $bPassword_valid == possible, dan kan $bv2Notice onmogelijk false zijn!

Kunnen jullie me helpen?

Groetjes Ravi
Zet de errors eens aan.
Helemaal bovenin je script.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest
?>
Wat is possible? Is dat een voorgedefinieerde constante? Anders mis je een paar quotes.... (zelfde voor special natuurlijk)
[code file="boolv2.php"]
<?php
/**
* Boolv2
* @category boolean's
* @author Ravithrasworld
* @version 2
*
* @var possible
* @uses Als er geen concrete beslising is tussen true & false.
* @since 1
* @var special
* @uses Als er iets speciaals aan de hand is, de waarde is 2
* @since 2
*/
define('possible',2,false);
define('special',3,false);
?>
[/code]
Dan klopt het toch wat je krijgt? possible is als constante gedefinieerd met waarde 2 en dat is wat er geprint wordt.

[size=xsmall]Toevoeging op 01/12/2013 13:54:00:[/size]

Correctie: gebruik bij de eerste check "$bPassword_valid === true", en niet het dubbele = teken. Elke niet lege waarde is bij een dubbel = teken namelijk gelijk aan true, bij een driedubbel is alleen true ook echt gelijk aan true.

Reageren