if und xor - unlogisches Verhalten

Vielleicht probierst du es einfach mal aus?
einfach nur crack hat schon recht.


Und wieso nicht?
Wenn $_POST['action'] nicht 'new' und nicht 'change' ist und $_GET['action'] nicht 'delete' und nicht 'deletepicture' ist dann (haben wir wohl eine ungültige Parameterübergabe) und die Behauptung ist wahr.
Die Art und Weise wie du prüfst erinnert mich irgendwie an doppelt und dreifache Verneinung.
Warum einfach wenns auch kompliziert geht.
Nur AND wird auch nicht die Lösung sein. Ich glaube ich habe begriffen was er machen will.

Teste es mal damit:
PHP:
if( ( $_POST['action'] != 'new' && $_POST['action'] != 'change' ) || ( $_GET['action'] != 'delete' && $_GET['action'] != 'deletepicture' ) )
{
    echo 'Ungültige Parameterübergabe - das Script wurde aus Sicherheitsgründen angehalten.';
    exit;
}

Gruß

//EDIT
Müssen $_POST['action'] und $_GET['action'] an der Stelle beide gesetzt sein?
 
So wie ich seinen Versuch auffasse, versucht er - falls eine der vier Bedingungen "false" ist - den Vorgang abzubrechen.

Entweder du löst es in einer IF, oder aber du machst einfach vier verschachtelte If-Bedingungen, dadurch kannst du sogar individuelle Fehlermeldungen ausgeben. (Macht nicht immer Sinn)

Eine Lösung kenne ich aber auch nicht.
Ich kenne selber nur AND und OR. Was ist XOR? Die Kombination davon? Also "und-oder"?
 
XOR steht für explizit or und bedeutet, dass die Operation dann true zurück gibt, wenn genau eine Bedingung davon richtig ist, also sieht das so aus:
Code:
 a b | a xor b
-----+---------
 0 0 |       0
 0 1 |       1
 1 0 |       1
 1 1 |       0
oder für die Mathematiker unter uns: xor(a, b) = {(0,0,0),(0,1,1),(1,0,1),(1,1,0)}
 
XOR steht für explizit or und bedeutet, dass die Operation dann true zurück gibt, wenn genau eine Bedingung davon richtig ist, also sieht das so aus:
Code:
 a b | a xor b
-----+---------
 0 0 |       0
 0 1 |       1
 1 0 |       1
 1 1 |       0
oder für die Mathematiker unter uns: xor(a, b) = {(0,0,0),(0,1,1),(1,0,1),(1,1,0)}
Steht es nicht für exclusive or und ist immer wahr, wenn eine ungerade Zahl von Bedingungen wahr sind?

Gruß
 
Ah okay, also eine explizite Wahl zwischen zwei Varianten...

PHP:
if($username == "PHP" XOR $username == "MySQL") { //do it }

Blöde Frage, aber wo liegt jetzt der Unterschied zu OR? Würde ja in meinem Beispiel auch funktionieren...

Gibts eigentlich auch eine UND/ODER-Funktion?
 
Ah okay, also eine explizite Wahl zwischen zwei Varianten...

PHP:
if($username == "PHP" XOR $username == "MySQL") { //do it }

Blöde Frage, aber wo liegt jetzt der Unterschied zu OR? Würde ja in meinem Beispiel auch funktionieren...

Gibts eigentlich auch eine UND/ODER-Funktion?
OR gibt true zurück wenn eines der Beiden oder auch Beide true sind, XOR nur wenn eines true ist aber nicht wenn Beide true sind.

Gruß
 
Demnach ist OR eigentlich ein UND+ODER? Das ist mir neu. Gut zu wissen, das könnte mögliche Fehler natürlich bei Seite schaffen...
 
Zurück