Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Variable per $Post übergeben - Fehler!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Variable per $Post übergeben - Fehler!

    Hallo,

    vielleicht kann mir ja jemand helfen.

    Der Hintergrund:
    Ich übergebe eine Variable Namens Papier per HTML Formular an eine neue PHP Seite.
    Hier lese ich die Variable mit:
    $papier = htmlspecialchars($_POST["Papier"]);

    aus.

    Hier wird sie auch korrekt angezeigt:

    echo ('Papier: ' . $papier . '<br>');

    Jetzt das Problem,

    ich durchsuche einen Array mit $papier und erhalte kein Ergebnis. Nehme ich statt $papier Standart (so heißt der Eintrag in dem Array) erhalte ich das korrekte Ergebnis.

    Code:

    $tmp2 = $papierxy[Standart]["$staffel"]; -> ok ich erhalte eine korrekte Ausgabe

    $tmp = $papierxy[$papier]["$staffel"]; -> ich erhalte keine Ausgabe


    Hat jemand einen Schimmer was da falsch ist?

    Schonmal Danke Sarah

  • #2
    guck dir bitte mal Zeichen für Zeichen an, was du wirklich in der Variablen $papier stehen hast - ich vermute ja, dass mindestens noch ein Leerzeichen oder ein Zeilenumbruch dran hängt .... - im übrigen ist
    PHP-Code:
     $papierxy[Standart]["$staffel"]; 
    falsch - oder zumindest nicht korrekt ... du meinst sicher
    PHP-Code:
     $papierxy["Standart"][$staffel]; 
    - Standart wird von PHP als definierte Konstante verstanden, die es wohl nicht gibt - und dich rettet nur das PHP-Standardverfahren - eine Konstante wird durch einen String ersetzt, wenn sie nicht gefunden wurde - eine Annahme , die oft stimmt, aber vermieden werden sollte - wohingegen die Variable in den Double-Quotes Unsinn ist - wenn du eine Variable hast, dann kannst du sie auch direkt verwenden, wozu die Double-Quotes

    ich empfehle dir auch, Error-Reporting voll aufzudrehen und die Ausgabe sämtlicher Fehler zu erzwingen ... dann siehst du wahrscheinlich besser, was bei dir schief liegt

    PHP-Code:
    error_reporting(-1);
    ini_set("display_errors",true); 
    - dies bitte möglichst ganz oben in deinen Code einbauen
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #3
      Hallo,
      wie der Kollege schon richtig gesagt hat, String Variablen bitte immer in Anführungszeichen angeben. Ob doppelte oder einfache ist dem Fall egal, funktioniert beides.

      Was ich eher vermute, was dein Problem ist: Entweder die Variable, die du per POST bekommst, enhtält einen ganz anderen Inhalt als den erwarteten, oder es unterscheidet sich nur in der Schreibweise, also Groß- und Kleinschreibung. Z. B. ist für PHP Standard und sTandArd nicht das selbe. Das sind 2 völlig andere Strings. Ich würde dir sicherheitshalber folgenden workaround empfehlen:
      PHP-Code:
      ucfirst(strtolower($papier)); 
      Dann sollte es auch klappen. Deine Angaben sind auch leider etwas ungenau. Gib uns doch bitte mal ein vollständiges Beispiel. Also wie sieht dein Formular aus und was gibst Du da alles ein? Mit diesen Infos können wir Dir besser helfen. Aktuell können wir auch nur Vermutungen anstellen.

      Kommentar


      • #4
        Guten Morgen,

        tausend Dank für Eure Hilfe. Die Übeltäter waren zwei Leerzeichen, die im Formular noch mitübergeben wurden.

        THX + Have a nice day

        Kommentar

        Lädt...
        X