if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW)) || ($PHP_AUTH_USER!= "sala") || ($PHP_AUTH_PW!= "sana"))
osaako joku sanoa onko tuossa jotain vikaa?
kun ei päästä minua sisään tunnuksella sala ja salasanalla sana...?
osaako joku sanoa onko tuossa jotain vikaa?
kun ei päästä minua sisään tunnuksella sala ja salasanalla sana...?
Vastaukset 5
Vanhimmat
Nykyään eivät $PHP_AUTH_USER ja vastaavat toimi vaan pitää käyttää superglobaaleja. Katso http://fi2.php.net/features.http-auth
homma kusee:
Parse error: syntax error, unexpected T_LOGICAL_OR
virhe siis heti tuossa alussa....
ja nyt muutin siis tuon alun tällaiseksi:
if (!isset($_SERVER['PHP_AUTH_USER'])) OR (!isset($_SERVER['PHP_AUTH_PW']))
OR ($_SERVER['PHP_AUTH_USER'] != "sala") OR ($_SERVER['PHP_AUTH_PW'] != "sana")
Katsohan noita sulkuja siinä se vika.
Pitää olla
if (ehto OR isset(x) OR ehto3) siis ehtolause kokonaan sulkujen sisään.
if ((!isset($PHP_AUTH_USER)) ||...
Avaavien ja päättävien sulkujen sijainti kannattaa laskea oikein, noin kirjoitettu if-lausehan päättyy jo ennen || -operandia, joka pitäisi sisällyttää samaan if-lauseeseen.
Noita sisennysvirheitä tulee koodatessa helposti, mutta kokenut koodari osaakin etsiä ensimmäiseksi sellaisia ;-)
Hyvä tapa olisi koodausvaiheessa jakaa if-lauseen jokainen ja/tai-ehto eri riville, jolloin sisennysvirheiltä välttyy varmemmin (voihan valmiiksi testatun lauseen tiivistää myöhemmin harvemmille riveille, jos haluaa funktion pienempään tilaan).
juu siinä suluissahan se :) täytyykin varmaan täst lähtien tosiaan jakaa useammalle riville...
on vaan tullut tavaksi vääntää pieneen tilaan kun
string -merkkijonoa jakaessa ei onnistukaan se jakaminen ihan noin vaan.