tutorials.de Buch-Aktion 05/2012
Seite 1 von 3 123 LetzteLetzte
Like Tree6Danke
ERLEDIGT
NEIN
ANTWORTEN
40
ZUGRIFFE
681
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    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:
    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;

    Das funktioniert einwandfrei!

    Jetzt möchte ich das ganze um eine weitere Prüfung erweitern.
    Das ganze sieht dann so aus:
    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;

    Das funktioniert jetzt nicht mehr!
    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;}

  2. #2
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    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)
     

  3. #3
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    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;}

  4. #4
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von dwex Beitrag anzeigen
    Nein das GET stimmt schon - genauso wie in der Bedingung davor.
    Falls Du es noch nicht gesehen hast, ich hatte meinen Beitrag bearbeitet als Du geantwortet hast.
    Zitat Zitat von Raisch Beitrag anzeigen
    ich glaube, Du solltest dich nochmal mit XOR auseinander setzen.

    Wenn Du nur prüfen willst ob eine Bedingung zutrifft reicht OR.

    Gruß
     

  5. #5
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    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;}

  6. #6
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    Genau das ist mein Problem mit OR funktioniert es nämlich auch nicht.
    Hast du alle XOR durch OR ersetzt oder nur das letzte?

    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:
    Code :
    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
    Die letzte Spalte ist das Ergebnis
     
    In order to understand recursion, one must first understand recursion.

  7. #7
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    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;}

  8. #8
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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.

  9. #9
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    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;}

  10. #10
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    das mit and kann doch nicht funktionieren - oder?
    Vielleicht probierst du es einfach mal aus?
    einfach nur crack hat schon recht.

    es können doch nicht alle wahr sein -
    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.
     
    In order to understand recursion, one must first understand recursion.

  11. #11
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von rd4eva Beitrag anzeigen
    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:
    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?
     

  12. #12
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    Nur AND wird auch nicht die Lösung sein. Ich glaube ich habe begriffen was er machen will.
    Naja momentan haben wir alle die richtige Lösung.
    Weiß ja keiner so genau was er nun eigentlich vor hat.
     
    In order to understand recursion, one must first understand recursion.

  13. #13
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von rd4eva Beitrag anzeigen
    Naja momentan haben wir alle die richtige Lösung.
    Weiß ja keiner so genau was er nun eigentlich vor hat.
    Haste auch wieder Recht.
     

  14. #14
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    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.

  15. #15
    Avatar von Lime
    Lime Lime ist gerade online frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    371
    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

  1. Seltsames Div verhalten
    Von nchristoph im Forum CSS
    Antworten: 5
    Letzter Beitrag: 11.11.10, 11:04
  2. Merkwürdiges Verhalten
    Von mkoeni1 im Forum Hosting & Webserver
    Antworten: 1
    Letzter Beitrag: 29.08.07, 10:23
  3. Anfängerfrage => Verhalten?
    Von Nico im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 11.08.05, 12:26
  4. Div verhalten IE und Mozilla
    Von js-mueller im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 16.08.04, 22:33
  5. Merkwürdiges Verhalten von <img> und <?php
    Von FBI im Forum Coders Talk
    Antworten: 2
    Letzter Beitrag: 08.07.04, 12:32