Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Outo vertailuongelma

Sivun loppuun

hauki [28.04.2008 23:05:03]

#

Kirjautumissysteemiä teen ja mulla on lause:

if($tiedot[1] == $salasana){
jotain;
}

echo tulostaa saman arvon, mutta vertalu ei ole tosi. Mitä vois olla pielessä.

Antti Laaksonen [28.04.2008 23:12:43]

#

Kokeile kirjoittaa:

if (trim($tiedot[1]) == $salasana) {

Näin taulukon rivin lopussa olevat mahdolliset rivinvaihdot eivät häiritse vertailua.

Wizard [29.04.2008 00:01:46]

#

Heikko vertailu: laita

if($tiedot[1] === $salasana) { jotain; }

hauki [29.04.2008 07:34:08]

#

Antin homma oli toimiva. Kiitos avusta, ois menny jonkun aikaan ennenkuin olisin ite keksiny.

hauki [29.04.2008 08:49:24]

#

Ton trim funktion avulla ratkes monta muutakin ongelmaa, jossa on ollu ylimääräsiä rivinvaihtoja.

Wizard [29.04.2008 09:45:54]

#

Kannattaisi ehkä lukea tämä: https://www.php.net/manual/en/language.operators.comparison.php

Voit saada oikean tuloksen vertailullakin, mutta sinun pitää käyttää oikeita merkkejä oikea määrä.

-W-

Antti Laaksonen [29.04.2008 09:56:59]

#

Miten noilla vertailuoperaattoreilla voi ottaa huomioon ylimääräiset rivinvaihdot?

Vertailu === hyväksyy vähemmän kuin vertailu ==, eli jos edes vertailun == tulos ei ole tosi, ei myöskään vertailun === tulos ole tosi.

Wizard [29.04.2008 10:55:58]

#

Luin tuon asian väärinpäin eli haluttiin tosi tuosta vertailusta alunperin.

Kuullostaa tuokin aika vaaralliselta: ehkä olisi syytä kiinnittää huomiota siihen miten ja missä muodossa tuo taulukko sekä muut muuttujat alustetaan?

Vertailut on joko TRUE tai FALSE ja siihen muotoon pitää saada muuttujat suoraan. Jos muuttujissa on jotain muuta ylimääräistä, niin oletuksena palautetaan kyllä FALSE joka pitäisi olla HYVÄN OHJELMOINNIN LÄHTÖKOHTA ILMAN POIKKEUKSIA.

Tietoturvaa, onko sitä? Se taitaa nykyään kaikessa koulutuksessa ja oppaissa unohtua...sitten ihmetellään jälkeenpäin kun perusasiatkin on hakusissa.

-W-

hauki [29.04.2008 16:40:37]

#

Tosiaan onnistuu myös laittamalla käyttäjätiedot muotoon:
käyttäjä|salasana|

kun se oli aiemmin
käyttäjä|salasana

jollon siihen tuli rivinvaihto,jota en sitten millään huomannut.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta