Ik heb een extreem raar probleem met PHP. Ik ben bezig met een login script. Bij het registreren maak ik via random een salt voor die user, die ik in de MySQL table opsla. We hebben dus de tabel users met daarin id, username, password en salt.
Wat er nu uitkomt is dit:
verander in:
wordt 2 wél ge-echo't, maar dan echo't ie twee voor elke waarde, tenzij ik dit neerzet:
Dan werkt het wel.
Kortom het probleem, hij wil ze niet vergelijken. Wat doe ik fout? Het betreft een wampserver met php 5.3.8
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
| //Prevent injection $_POST['password'] = stripslashes($_POST['password']); $info['password'] = stripslashes($info['password']); // Set variable from database $salt = $info['salt']; //crypt user-input $pass = crypt($_POST['password'], $salt); //Output for debugging echo $pass; echo "</br>"; echo $info['password']; echo "</br>"; } //gives error if the password is wrong if ( $pass == $info['password'] ) { //Just testing if it works. echo '2'; else { //If password is wrong, close die('Incorrect password, please try again.'); } |
Wat er nu uitkomt is dit:
Ik heb beide output's ff als xxxx opgeschreven. Neem van mij maar aan dat ze exact hetzelfde zijn. Toch komt er incorrect password uit, dus ze zijn volgens php niet hetzelfde. Als ikquote: outputxxxxxxxxxxxxx
xxxxxxxxxxxxx
Incorrect password, please try again.
PHP:
1
| if ( $pass == $info['password'] ) { |
verander in:
PHP:
1
| if ( $pass != $info['password'] ) { |
wordt 2 wél ge-echo't, maar dan echo't ie twee voor elke waarde, tenzij ik dit neerzet:
PHP:
1
| if ( $pass != 'xxxxxxxxx' ) { |
Dan werkt het wel.
Kortom het probleem, hij wil ze niet vergelijken. Wat doe ik fout? Het betreft een wampserver met php 5.3.8
[ Voor 0% gewijzigd door Beatboxx op 22-10-2011 15:39 . Reden: spatie+foute variable(lost probleem niet op) ]