Toon posts:

[php] if statement werkt niet goed

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben een site aan het maken voor school.
Ik wil graag gegevens uit een formulier vergelijken met de gegevens uit een (postgres) database.

de gegevens die ik wil vergelijken zijn een klantnummer en een passwoord.
bij het vergelijken van de klantnummers gaat alles goed, maar als ik de passwords wil vergelijken, gewoon met :
PHP:
1
2
3
4
5
6
7
8
if($pass == $pass2)
{
    echo "goed";
}
else
{
   echo "fout";
}


dan is het altijd false.

Als ik die twee passwords echo dan zijn ze precies het zelfde.

weet iemand waar dit aan zou kunnen liggen??
ik denk dat het iets met de datatypes te maken heeft. (dat is tenminste het enigste wat ik kan verzinnen)

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
bekijk de lengte es van de 2 variabelen....misschien wordt een wachtwoord ongewild aangevuld met spaties...

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 15-07 20:09

dArtagnan

Een voor allen, allen voor een

probeer eens:

PHP:
1
2
3
4
5
6
7
8
9
10
<?
if(trim($pass) == trim($pass2)) 
{ 
    echo "goed"; 
} 
else 
{ 
   echo "fout"; 
}
?> 

Dit zorgt ervoor dat de eventuele spaties aan het begin en eind verwijdert worden

Verwijderd

Hoofdletters?

Verwijderd

ja zou ook kunnen, strtolower gebruiken. Echo even "-$pass-"; en "-$pass2-" vlak voor de if statement en kijk wat erin zit.

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 23-08 15:30

TheDane

1.618

ik zou eigenlijk strcasecmp() gebruiken.

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-08 19:22
Als je wilt dat de datatyes ook gelijk moeten zijn gebruik dan : ===. (3 ='en dus)

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

btw.. ik merk soms ook dat if statements teveel in melkaar ook niet lekker werkt.. probeer dan eens CASE te gebruiken
PHP:
1
2
3
4
5
6
7
8
9
10
11
switch ($variabele){
case '0' :
hier je php code
break;
case 'etc' : 
php code
break;
default :
php code als ELSE
break;
}

dit zal misschien niet hier werken, maar je kunt andere misschien hiervoor gebruiken..

misschien nutteloze tip, maar wellicht kan je het gebruiken :Y)

suc6

[ Voor 5% gewijzigd door gitaarwerk op 17-03-2003 20:12 ]

Ontwikkelaar van NPM library Gleamy


Verwijderd

trim je password die je uit de db krijgt (waarschijnlijk gebruik je type varchar of zoiets)... postgres pad strings met spaties tijdens de inster als die kleiner is dan de grootte van het gedefinieerde veld ... (http://developer.postgres...s/datatype-character.html)
Veel db doen dit (bv de oudere versies van mssql)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Gitaarwerk schreef op 17 March 2003 @ 20:12:
btw.. ik merk soms ook dat if statements teveel in melkaar ook niet lekker werkt..


niet lekker als in: het doet niet wat je wilt? Dan doe je het zelf verkeerd, php zal hierin echt niet buggen hoor. En intern zal het ook wel omgezet worden naar een reeks if/else if statements (hopelijk nog in een binair zoekboom systeem ;)), dus dat zal niet veel uitmaken :)

maar goed, dit komt dus neer op een simpele debug vraag, en is derhalve niet P&W waardig

[ Voor 9% gewijzigd door .oisyn op 17-03-2003 20:29 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.