Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
JOKKER666
HV veteran

liitunud: 21.09.2002
|
18.01.2010 18:16:04
PHP "if" ja "or" kasutamine |
|
|
Tere!
Selline probleem, et oleks vaja kasutada 2 tingumust 1 if lauses.
if($_COOKIE["kysitlus"]!=$valitud_kysitlus || $_POST["kysitlus"]!="vasta") |
Mõlemad argumendid eraldi töötavad. Koos, nagu näites, küpsist ei arvestata.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
EvilOne
HV vaatleja

liitunud: 25.01.2004
|
18.01.2010 18:28:34
|
|
|
OR puhul on tingimuslause tõene kui üks nendest tingimustest on tõene. Et terve tingimuslause oleks tõene, siis tuleks kasutada AND-i.
Ehk siis
if(($_COOKIE["kysitlus"] != $valitud_kysitlus) && (isset($_POST["kysitlus"]))) |
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
Deadlock
Kreisi kasutaja
liitunud: 16.07.2004
|
18.01.2010 18:36:53
|
|
|
TRUE || TRUE = TRUE
TRUE || FALSE = TRUE
FALSE || TRUE = TRUE
FALSE || FALSE = FALSE
TRUE && TRUE = TRUE
TRUE && FALSE = FALSE
FALSE && TRUE = FALSE
FALSE && FALSE = FALSE
_________________ "Believe you can, believe you can't; either way, you're right." - Henry Ford |
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
18.01.2010 19:14:17
|
|
|
Ongi nii vaja, et kui vähemalt 1 tingimustest on täidetud, läheks if lause tööle. Praegu aga töötab ainult kui on täidetud teine argument. Kui täidetud on esimene tingimus, ei tööta.
Lühidalt käitub, nagu poleks esimest tingimust üldse if lauses sees.
Nt nii töötab asi:
tsitaat: |
if($_COOKIE["kysitlus"]!=$valitud_kysitlus)
{
if($_POST["kysitlus"]!="vasta")
{
///funktsioon
}
}
|
Aga miks teha pikalt, kui peaks saama lühemalt.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
EvilOne
HV vaatleja

liitunud: 25.01.2004
|
18.01.2010 19:38:07
|
|
|
sel juhul peaks ju siis toimima asi. Kontrolli väärtused üle ja kas küpsised üldse salvestatakse arvutisse. Isiklikult soovitaks sessioone kasutada. print_r() funktsiooniga hea väärtuseid vaadata.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
18.01.2010 19:38:41
|
|
|
See, mis sa selle töötava variandina siin välja tõid, on ju klassikaline AND, mitte OR tehe ikkagi. Ehk sa siiski kontrollid kõigepealt ühe tingimuse täidetust, siis ja ainult siis, kui see on täidetud, kontrollid sa teise tingimuse täidetust. Kui see on ka täidetud, siis teed midagi. See on ju kahe asja omavaheline sidumine sidesõnaga JA, mitte VÕI ehk siis AND, mitte OR ehk && mitte ||.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
18.01.2010 20:27:15
|
|
|
Asi selles, et tegemist küsitlusega millele saab vastata 1 korra ja edasi kuvab vastused. Kui vastata siis esimese laadimisega peale vasta nuopu vajutamist ei laeta küpsist aga laetakse POST infos, et on vastatud. Ja edaspidised laadimised laetakse küpsis. OR operaatoriga peaks ju olema, nagu esimeses postis. Aga millegipärast, nagu varem ütlesin, poleksiki nagu küpsist. Samas proovisin 1kaupa neid tingimusi ja töötas. Kõige alguses echosin ka küpsise infot ja see töötab.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
18.01.2010 20:35:22
|
|
|
JOKKER666, väljasta endale mõlema kontrollitava muutuja väärtused lehele ja võrdle siis käsitsi ka järgi, lisaks võid väljutada lehele ka võrdluste tulemused.
php:
|
var_dump($_COOKIE["kysitlus"]!= $valitud_kysitlus);
|
Kui teine või neljas rida true vastuse annab siis peaks see if rakenduma.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
EvilOne
HV vaatleja

liitunud: 25.01.2004
|
18.01.2010 20:39:55
|
|
|
mina teeks sellise asja ikkagi sessioonidega. tekita sessioonis mingite väärtuste jada, lae sinna erinevad väärtused sisse ja siis saad ju kontrollida, kas teatud väärtus eksisteerib või mitte. Kui kõik on vastatud siis tekita alles küpsis.
vbla eksin, aga ise teeksin nii.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
18.01.2010 21:00:20
|
|
|
EvilOne, oleneb kuidas soov läheneda, ise teeksin üldse kogu asja JS'is ja lõpus saadaks alles vastuse serverile salvestamiseks.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
19.01.2010 17:48:44
|
|
|
Mina olen võhik ja teen esimest korda.
Aga vaatasin mikk36 koodiga ja millegipärast arvabki, et küpsist pole. Samas kui panen ainult:
if($_COOKIE["kusitlus"]!=$valitud_kysitlus)
siis oleks nagu küpsis olemas ja töötab ka.
Ja echo $_COOKIE["kusitlus"]; näitab ka, et olemas.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
19.01.2010 17:50:24
|
|
|
Mis sul siis need neli rida vastuseks andsid?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
19.01.2010 19:39:27
|
|
|
NULL
bool(true)
NULL
bool(true)
ja esimene kuva peale vastamist kui post info ka
NULL
bool(true)
string(5) "vasta"
bool(false)
Algul kusjuures tegin selle küsitluse ip listiga. Aga ühes serveris on mingi teema, et vist asub kast sisevõrgus vms, et näeb kõiki külastajaid sama ip ga.
Aga nüüd tahaks juba sportlikust huvist asja tööle saada.
EDIT
proovisin
var_dump(isset($_COOKIE["kysitlus"]));
echo $_COOKIE["kusitlus"];
var_dump annab false
aga echo näitab õiget asja.
Äkki salvestan küpsist valesti..
setcookie("kusitlus", $_POST["kysimus"], $aegumine);
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
19.01.2010 20:24:07
|
|
|
var_dump(isset($_COOKIE["kysitlus"]));
echo $_COOKIE["kusitlus"]; |
Vähem vaja üritada eesti keelest äõäöü tähti koodis emuleerida y jms tähtedega, ei teki huvitavaid segadusi
Sul on praegu täpselt nii, et kontrollid isset kysitlus ja siis teed echo kusitlus
u ja y on suht erinevad asjad Nagu ma saan sellest, et echo kusitlus peale kuvas õiget väärtust, siis vaheta igal pool koodis $_COOKIE['kysitlus'] ära $_COOKIE['kusitlus'] ja asi hakkab tööle
Ja pealegi koodis on ka ilusti näha et setcookie('kusitlus'..) teed.
Võta kasutusele ingliskeelne termin mis on kindlalt samas kirjastiilis vms, millel ei tekiks sul kahte kirjapilti kysitlus vs kusitlus
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
19.01.2010 21:10:36
|
|
|
Kurja, mul on tähed ikka õigesti. Aga mikk36 postist kopeerisin käsud ja seal olid segamini hoopis. Var_dump sellepärast ka valesti.
Asi oli mul natuke halvasti mõeldud. Lahendasin asja sellega, et tõstsin if ja else funktsioonid ringi. Sest enne millegipärast ei mõelnud seda, et 1 tingimus on koguaeg täidetud ja kõik töötab õigesti :/.
Sry.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
19.01.2010 21:13:00
|
|
|
JOKKER666 kirjutas: |
Kurja, mul on tähed ikka õigesti. Aga mikk36 postist kopeerisin käsud ja seal olid segamini hoopis. Var_dump sellepärast ka valesti.
Asi oli mul natuke halvasti mõeldud. Lahendasin asja sellega, et tõstsin if ja else funktsioonid ringi. Sest enne millegipärast ei mõelnud seda, et 1 tingimus on koguaeg täidetud ja kõik töötab õigesti :/.
Sry. |
Minu postituses olid segamini järelikult seetõttu et teema esimeses postituses on juba valed siis.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
JOKKER666
HV veteran

liitunud: 21.09.2002
|
19.01.2010 22:58:17
|
|
|
Õige jah, ma vahepeal proovides erinevaid asju, muutsin millegipärast.
Järgmise korrani.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
42 |
|
tagasi üles |
|
 |
|