Php Onverklaarbare false if

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een beetje ten einde raad wat het probleem kan zijn met dit gevalletje...

Stukje code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
public function setNewPassword($password, $repeatedPassword){
        if(empty($password))                return Admin::PASSWORD_NOT_FILLED;
        if(strlen($password) < 5)           return Admin::PASSWORD_TO_SHORT;

        FB::info($password.', '.$repeatedPassword);
        
        //if($password != $repeatedpassword)  return Admin::PASSWORD_INCORRECT_REPEATED;
        $this->password = md5($password);

        return True;
    }


$password en $repeatedPassword zijn hetzelfde... Controleer dit nog eens extra met FB::info...
Toch geeft hij return PASSWORD_INCORRECT_REPEATED

Als ik $password = $password doe geeft hij uiteraard wel True.

Hoe kan het dat deze twee net gelijk zijn terwijl ze daadwerkelijk hetzelfde ingegeven zijn in de fields

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:12
spaties? Doe eens een var_dump over beide apart?

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

1 = is natuurlijk een asignment, let daar mee op.
Hoe roep je de functie aan?
Je hebt die controle gecomment he?
Anders gebruik je strcomp

"... deze twee net gelijk... " ? net of niet?

[ Voor 14% gewijzigd door Guillome op 12-04-2010 18:47 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

Verwijderd

zijn php variabelen niet case sensitive?
code:
1
if($password != $repeatedPassword)  return Admin::PASSWORD_INCORRECT_REPEATED;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Code comment was nog van een testje, uiteraard is hij nu weer uncomment.

Deze functie wordt door de AdminManager opgeroepen:
$admin = new Admin($id);
$vNewPassword = $admin->setNewPassword($in['password'], $in['repeatedPassword']);

if($vNewPassword !== True) return $vNewPassword;

Ga even op php.net strcomp zoeken en proberen, laat zometeen het resultaat weten

[EDIT]Nee variabelen zijn niet case-sensitive en zelfs al zouden ze zijn waren ze correct... helaas...[/code]

[ Voor 13% gewijzigd door Verwijderd op 12-04-2010 18:52 ]


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

En wat djluk zegt?

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
met strcomp werkt het wel... Al wil ik wel graag weten waarom if het niet doet...

Ga nu de vardump doen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vardump resultaat: string(4) "test" string(4) "test"

Exact hetzelfde dus...

[ Voor 20% gewijzigd door Verwijderd op 12-04-2010 18:58 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:12
strcmp doet valles, o.a. entities en locales verwerken waardoor dat niet een handige tool is om een 1 op 1 vergelijk te doen, je wilt gewoon 2 strings vergelijken en dat doe je met == of === als de types ook nog zeker gelijk zijn en je dat wilt checken.

[edit]Als dat gelijk is dan zou ik je aanroep checken.

[ Voor 10% gewijzigd door djluc op 12-04-2010 18:59 ]


Acties:
  • 0 Henk 'm!

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Verwijderd schreef op maandag 12 april 2010 @ 18:51:
[EDIT]Nee variabelen zijn niet case-sensitive en zelfs al zouden ze zijn waren ze correct... helaas...[/code]
wel dus ;)

On track


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu doet hij het ineens wel... Zeer raar... Volgens mij niets veranderd aan de code voor zover ik zie.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
public function setNewPassword($password, $repeatedPassword){
        if(empty($password))                return Admin::PASSWORD_NOT_FILLED;
        if(strlen($password) < 5)           return Admin::PASSWORD_TO_SHORT;
        
        FB::info($password.', '.$repeatedPassword);

        if($password != $repeatedPassword) return Admin::PASSWORD_INCORRECT_REPEATED;
        
        $this->password = md5($password);

        return True;
    }


Verder geen andere bestanden op gehad dus begrijp nu niet waarom het nu ineens wel werkt...

Acties:
  • 0 Henk 'm!

Verwijderd

case sensitive ...


originele post:
if($password != $repeatedpassword) return Admin::PASSWORD_INCORRECT_REPEATED;

werkende post:
if($password != $repeatedPassword) return Admin::PASSWORD_INCORRECT_REPEATED;

[ Voor 4% gewijzigd door Verwijderd op 12-04-2010 19:06 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
$repeatedpassword bestond inderdaad niet.

Dit had je overigens kunnenmoeten zien op 1 van de volgende manieren:
1 - Een E_NOTICE over de variabele met typo
2 - Een indicatie in je IDE.

offtopic:
Offtopic feest, laat de vaste 42 posts maar komen: Hashen in een security context moet _altijd_ met salt. :>

[ Voor 22% gewijzigd door Voutloos op 12-04-2010 19:08 ]

{signature}


Acties:
  • 0 Henk 'm!

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Tip: error_reporting(E_ALL)

On track


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
djluc schreef op maandag 12 april 2010 @ 18:58:
strcmp doet valles, o.a. entities en locales verwerken
Ik heb hier geen PHP bij de hand, maar stcmp('&eacute;','é') geeft dus 0 (aka equal) :? Dat lijkt me behoorlijk ongewenst gedrag (hoewel het vaak wel handig kan zijn, maar dan wil ik dat of specificeren middels een extra (optionele) parameter, of een andere functie daarvoor hebben, of gewoon lekker ouderwets zelf regelen voor ik strcmp aanroep).

[ Voor 34% gewijzigd door RobIII op 12-04-2010 19:18 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Betere tip: error_reporting(E_ALL | E_STRICT)

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nog betere tip: error_reporting(-1)

Dan heb je alle errors, ongeacht nieuwe/andere constantes in de toekomst. :) En ja, er is geen constante voor deze magische -1, dat zou namelijk te logisch zijn. :X

{signature}


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Nog betere tip: voutloos programmeren!

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • ctrlaltdelbe
  • Registratie: Juli 2005
  • Laatst online: 17-09 12:55
Guillome schreef op maandag 12 april 2010 @ 20:19:
Nog betere tip: voutloos programmeren!
Dat wil ik je wel een keer zien doen :9

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

PHP:
1
echo "Hello world;


:D

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Ik ben trots op je!
Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /Users/wouter/hello.php on line 4

On track


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Tip van flip: Gooi altijd boven in je binnenkomst bestand het volgende:
PHP:
1
error_reporting(E_ALL);


Die helpt je een beetje met debuggen :)

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Hoe is dat nou mogelijk wouter? :( shit :(

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Guillome schreef op maandag 12 april 2010 @ 22:47:
Hoe is dat nou mogelijk wouter? :( shit :(
Niet van de LOI... :+

Acties:
  • 0 Henk 'm!

  • ctrlaltdelbe
  • Registratie: Juli 2005
  • Laatst online: 17-09 12:55
WouZz schreef op maandag 12 april 2010 @ 22:37:
[...]


Ik ben trots op je!


[...]
I rest my case :+

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Geen lol? :o

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 00:31

MueR

Admin Tweakers Discord

is niet lief

PHP:
1
return Admin::PASSWORD_TO_SHORT;

En zonder typo:
PHP:
1
return Admin::PASSWORD_TOO_SHORT;


:Y

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Beetje laat maar scherp!

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router

Pagina: 1