-
07.02.12 16:55 #1
Hallo Leute,
ich habe ein (für mich) unlogisches Verhalten einer if-Abfrage.
Ich prüfe in einer if-Abfrage ob eine der Bedingungen wahr ist.
Die Abfrage sieht so aus:Das funktioniert einwandfrei!PHP-Code:if($_POST['action'] != 'new' XOR $_POST['action'] != 'change' XOR $_GET['action'] != 'delete') {
echo "Ungültige Parameterübergabe - das Script wurde aus Sicherheitsgründen angehalten.";
exit;
}
Jetzt möchte ich das ganze um eine weitere Prüfung erweitern.
Das ganze sieht dann so aus:Das funktioniert jetzt nicht mehr!PHP-Code:if($_POST['action'] != 'new' XOR $_POST['action'] != 'change' XOR $_GET['action'] != 'delete' XOR $_GET['action'] != 'deletepicture') {
echo "Ungültige Parameterübergabe - das Script wurde aus Sicherheitsgründen angehalten.";
exit;
}
Egal was ich übergebe meine if Abfrage ist immer wahr und somit wird der echo-Text ausgegeben.
Entweder hab ich Tomaten auf den Augen oder ich bin etwas doof geworden in letzer Zeit.
Kann jemand Helfen?
Vielen Dank im Voraus!Geändert von dwex (07.02.12 um 16:58 Uhr)
Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
Hallo dwex,
...
//EDIT
ich glaube, Du solltest dich nochmal mit XOR auseinander setzen.
Wenn Du nur prüfen willst ob eine Bedingung zutrifft reicht OR.
GrußGeändert von Raisch (07.02.12 um 17:04 Uhr)
-
07.02.12 17:02 #3
Nein das GET stimmt schon - genauso wie in der Bedingung davor.
Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
-
07.02.12 17:10 #5
Genau das ist mein Problem mit OR funktioniert es nämlich auch nicht.
Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
Hast du alle XOR durch OR ersetzt oder nur das letzte?Genau das ist mein Problem mit OR funktioniert es nämlich auch nicht.
Davon abgesehen würde ich dir auch ganz schwer vom XOR abraten.
Weißt du eigentlich wieviele Möglichkeiten es gäbe damit das Statement true bzw. false zurück gibt?
Hier hast du mal die Wahrheitstabelle dafür:
Die letzte Spalte ist das ErgebnisCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
A | B | C | D | ((A ^ B) ^ C) ^ D ---+---+---+---+------------------- 0 | 0 | 0 | 0 | 0 0 0 0 | 0 | 0 | 1 | 0 0 1 0 | 0 | 1 | 0 | 0 1 1 0 | 0 | 1 | 1 | 0 1 0 0 | 1 | 0 | 0 | 1 1 1 0 | 1 | 0 | 1 | 1 1 0 0 | 1 | 1 | 0 | 1 0 0 0 | 1 | 1 | 1 | 1 0 1 1 | 0 | 0 | 0 | 1 1 1 1 | 0 | 0 | 1 | 1 1 0 1 | 0 | 1 | 0 | 1 0 0 1 | 0 | 1 | 1 | 1 0 1 1 | 1 | 0 | 0 | 0 0 0 1 | 1 | 0 | 1 | 0 0 1 1 | 1 | 1 | 0 | 0 1 1 1 | 1 | 1 | 1 | 0 1 0
In order to understand recursion, one must first understand recursion.
-
07.02.12 17:39 #7
Ich hatte natürlich alle OR durch XOR ersetzt.
Mir ist das mit der Wahrheitstabelle schon klar aber als ich das ursprünglich programmiert habe hat das mit OR auch schon nicht funktioniert - deshalb bin ich auf XOR ausgewichen.Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
07.02.12 17:45 #8
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Da muss doch auch letztendlich ein and hin und kein or:
Code PHP:1 2 3 4
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; }
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
07.02.12 17:49 #9
es können doch nicht alle wahr sein - das mit and kann doch nicht funktionieren - oder?
Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
Vielleicht probierst du es einfach mal aus?das mit and kann doch nicht funktionieren - oder?
einfach nur crack hat schon recht.
Und wieso nicht?es können doch nicht alle wahr sein -
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.In order to understand recursion, one must first understand recursion.
-
Nur AND wird auch nicht die Lösung sein. Ich glaube ich habe begriffen was er machen will.
Teste es mal damit:
Code PHP:1 2 3 4 5
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?
-
Naja momentan haben wir alle die richtige Lösung.Nur AND wird auch nicht die Lösung sein. Ich glaube ich habe begriffen was er machen will.
Weiß ja keiner so genau was er nun eigentlich vor hat.
In order to understand recursion, one must first understand recursion.
-
-
07.02.12 19:18 #14
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Ich fordere zur Klärung des Sachverhaltes eine Wahrheitswerttabelle. Dann können wir auch weiterhelfen
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
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"?
Ähnliche Themen
-
Seltsames Div verhalten
Von nchristoph im Forum CSSAntworten: 5Letzter Beitrag: 11.11.10, 11:04 -
Merkwürdiges Verhalten
Von mkoeni1 im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 29.08.07, 10:23 -
Anfängerfrage => Verhalten?
Von Nico im Forum Flash PlattformAntworten: 3Letzter Beitrag: 11.08.05, 12:26 -
Div verhalten IE und Mozilla
Von js-mueller im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 16.08.04, 22:33 -
Merkwürdiges Verhalten von <img> und <?php
Von FBI im Forum Coders TalkAntworten: 2Letzter Beitrag: 08.07.04, 12:32



6Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren