empty oder isset
keinplan
- php
Hallo
Möchte mit folgenden Befehl überprüfen ob ein Cookie vorhanden ist oder eine Session:
if (!isset($_COOKIE['1']) OR !isset($_SESSION['1'])){
Anweisung
}
Wenn Vookie mit dem NAmen 1 oder eine Session vorhanden ist soll er die Anweisung ausführen.
Dies macht er aber nicht, nur wenn ich sage
if (isset($_COOKIE['ml1']) OR isset($_SESSION['log'])){
}
else
{
Anweisung
}
dann macht er es?!?
Wieso?
Ich möchte einfach das er automatisch auf eine Seite springt und diese lädt sobald einer nicht eingeloggt ist.
Wie mache ich das am besten?
Habe es bis jetzt mit dem isset gemacht, aber das ist sicher nicht optimal oder?
Danke
Hallo,
if (!isset($_COOKIE['1']) OR !isset($_SESSION['1'])){
ist – ungeachtet der verschiedenen keys – nicht das negierte von
if (isset($_COOKIE['ml1']) OR isset($_SESSION['log'])){
Daher ein kleiner Ausflug in die Boolsche Algebra:
http://de.wikipedia.org/wiki/De_Morgansche_Gesetze
Gruß
Olaf
ich weis schon das dass Ausrufezeichen eine Verneinung ist.
Deshalb wollte ich es am Anfang so machen, wenn KEIN Cookie gesetze ist, soll er die Anweisung machen...
Dies geht aber nicht, deshalb mache ich es gerade so:
Wenn die EIN Cookie gesetzt ist, dann mache normal weiter, ansonsten mache die Anweisung !!!!!!
Also habe ich dies schon richtig verstanden. Nur funktioniert es nicht, wenn ich es mit der Verneinung mache, und das ist meine Frage warum?
Hallo,
ich weis schon das dass Ausrufezeichen eine Verneinung ist.
das habe ich nicht bezweifelt, jedoch:
> if (!isset($_COOKIE['1']) OR !isset($_SESSION['1'])){
> Anweisung
> }
diese Anweisung wird ausgeführt, wenn der Cookie nicht gesetzt ist ODER die Session nicht gesetzt ist.
(Nur wenn BEIDE gesetzt sind, wird die Anweisung nicht ausgeführt.)
> if (isset($_COOKIE['1']) OR isset($_SESSION['1'])){
> } else {
> Anweisung
> }
der if-Zweig wird ausgeführt, wenn der Cookie ODER die Session gesetzt sind, also wird die Anweisung im else-Zweig nur ausgeführt, wenn WEDER Cookie NOCH Session gesetzt sind.
Also sind diese beiden Codeschnipsel unterschiedlich. Ich wollte bloss wissen, ob dieser Sachverhalt klar ist.
Gruß
Olaf
hallo,
if (!isset($_COOKIE['1']) OR !isset($_SESSION['1'])){
Wenn Vookie mit dem NAmen 1 oder eine Session vorhanden ist soll er die Anweisung ausführen.
Dies macht er aber nicht
Weil du das genaue Gegenteil angewiesen hast. Eventuell hilt es dir weiter. dich mal um den Einsatz des Ausrufezeichens zu bemühen. In dem von dir verwendeten Zusammenhang ist es ein verneinendes Zeichen. Du gibst also vor: "wenn _kein_ Cookie ... oder _keine_ Session ... dann mache folgendes:".
if (isset($_COOKIE['ml1']) OR isset($_SESSION['log']))
Das ist die exakte Gegenpostion. Sie bedeutet: "wenn Cookie ... oder Session ... dann mache folgendes:" Und das willst du offenbar auch haben.
Ich möchte einfach das er [...]
Ähm ... wer ist denn "er"? Bei mir befindet "er" sich gelegentlich kurz unterhalb der Gürtellinie, und auf Computereingaben reagiert "er" aufgrund fehlender Beziehungen zu meiner Elektronik überhaupt nicht. Auf andere Reize schon ...
Grüße aus Berlin
Christoph S.