[opgelost] Probleem met if, elseif en waarden
(Sorry voor de titel, ik kon niks duidelijkers verzinnen)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* 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;
* 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:
Quote:
[/quote]2
ravian88
ravian88
Maar dat kan niet, want de waarde van $bPassword_valid == possible, dan kan $bv2Notice onmogelijk false zijn!
Kunnen jullie me helpen?
Groetjes Ravi
Gewijzigd op 01/12/2013 16:55:19 door Haubebla haubebla
Helemaal bovenin je script.
Niks veranderd
Wat is possible? Is dat een voorgedefinieerde constante? Anders mis je een paar quotes.... (zelfde voor special natuurlijk)
Code (boolv2.php) (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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);
?>
/**
* 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);
?>
Toevoeging op 01/12/2013 13:54:00:
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.
Bedankt!