1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Unterschiedliche Behandlung von ctype_digit() und strval() (PHP-Funktionen)

Dieses Thema im Forum "Allgemeines" wurde erstellt von Sergeij_Molotow, 15. Juni 2014.

  1. Sergeij_Molotow

    Registriert seit:
    14. Juni 2014
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo liebe Gemeinde,

    ich habe ein Problem mit einer PHP-Funktion, die ich in einem Seitentemplate von Wordpress benutze. Ich weiß, ich sollte die Frage in einem PHP-Forum stellen, aber vielleicht findet sich jemand, der mir auf Anhieb einen Tipp geben kann.

    Ich habe ein Seitentemplate, an dessen Beginn ich einen REQUEST abfange. Hauptsächlich erfasse ich dort verschiedene IDs, die ich mit der GET-Methode an die gleiche Seite sende.

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Das Problem befindet sich hier:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Nach mehreren Tests, mit var_dump und manuellem Debugging, gibt mir diese Überprüfung - trotz das in der URL eine Zahl für diese Variable steht - ein FALSE aus. Bei allen anderen Überprüfung klappt es.

    Die URL kommt von wp_redirect(), etwas später aus dem Skript. Zum Beispiel hier:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich bin relativ unerfahren damit, bin also für fachliche Hinweise hoffen, die mir das Problem erklären... Ich hoffe, das Problem kannst du reproduzieren. Falls du mehr Infos brauchst, lass es mich bitte wissen.

    Ich sitze schon seit 4 Stunden dran und komme nicht weiter...

    Danke für deine Hilfe im Voraus.

    Gruß
    Sergeij
     
  2. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    #2 Melewo, 15. Juni 2014
    Zuletzt bearbeitet: 15. Juni 2014
  3. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Deine Problem-Codezeile ist aber richtig, wenn das Ergebnis nicht wie erwartet, so liegt ein anderer Fehler vor:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  4. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.361
    Zustimmungen:
    589
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    grummle ist dein code grausam zu php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    hth
     
  5. Sergeij_Molotow

    Registriert seit:
    14. Juni 2014
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo Melewo und r23,

    @r23: Bezüglich des Codes: ich steck ja grad in der Entwicklung. Kannst du mir noch sagen, was grausam ist? Ich habe so eine Ahnung, was du meinst, würde es aber genau wissen wollen.
    Is_numeric akzeptiert auch Kommazahlen (lt. PHP-Doku), was ich als ID niemals übergeben werde. Ich will auf positive Ganzzahlen überprüfen, deshalb auch der Umweg über strval(). :)

    @Melewo: Ok, also bei mir ist die Message ID entweder 0,1,2 oder 3 und er liefert mir nur(!) bei dieser Überprüfung trotz Zahl ein False. Ich versteh das nicht, weil bei den anderen ID-Prüfungen, die die ID mit der selben Methode übergeben bekommen funktioniert es.

    Also ich sehe bei euch eher die Tendenz IF-Schleifen zu benutzen. Ist das Switch deshalb eher ungeeignet?

    Danke an euch!
    Gruß
    Sergeij
     
  6. Sergeij_Molotow

    Registriert seit:
    14. Juni 2014
    Beiträge:
    15
    Zustimmungen:
    0
    Ich vermute den Fehler ganz ehrlich auch eher bei wp_redirect(). Denn die anderen GET-Variablen (canceluser_ID etc.) werden über Links gesendet, während ich die Message_ID mit wp_redirect() übergebe... :/

    Gruß
    Sergeij
     
  7. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.361
    Zustimmungen:
    589
    man nimmt nichts - rein gar nichts - ungeprüft an

    Beispiel
    $the_request = $_GET;


    Die OWASP Top 10 ist mittlerweile anerkannter Branchenstandard und eine der bekanntesten Übersichten über Sicherheitsschwachstellen von Webanwendungen


    OWASP Top 10
    http://blogrettung.de/allgemein/owasp-top-10-jetzt-auch-in-deutsch/


    Dafür gibt es dann is-int in php...

    http://www.php.net/manual/de/function.is-int.php
     
  8. Sergeij_Molotow

    Registriert seit:
    14. Juni 2014
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo r23,

    vielen Dank für die Hinweise. Ich werde die Punkte mal ändern.

    Is_int hatte ich auch schon im Visir, war mir nur unsicher, weil es dem Variablentyp prüft, aber nicht ganz genau den Inhalt (was ctype_digit() in Verbindung mit Strval() macht).

    Das $_Request wird dann bald aus meinem Code verschwinden... :)

    Gruß
    Sergeij
     
  9. Sergeij_Molotow

    Registriert seit:
    14. Juni 2014
    Beiträge:
    15
    Zustimmungen:
    0
    Leute,

    ich habe meinen Fehler vom Startpost gefunden. Und zwar steckt er hier
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Fuck Copy & Paste! :) Ich lasse die Message ID darauf prüfen, ob es einen passenden User dafür gibt. :) Klar, dass das ab und zu ein False ergibt... :)

    Gruß
    Sergeij
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden