php substr

  • Hallo Zusammen,


    folgendes Problem:

    Bei der ersten Codezeile wird der mit Post übergebene Wert G1CountryHelp vollständig und richtig an $G1CountryText übergeben.


    Ich möchte aber nur die ersten zwei Stellen von links des Strings übergeben erhalte aber "NULL" zurück.



    Code
      $G1CountryText = $_POST['G1CountryHelp'];
                $G1CountryText = $_POST['substr(G1CountryHelp, 0, 2)'];


    Gruß Robert

  • Ich habe ja schon viele verrückte Codezeilen gesehen, aber das hier

    Code
    $G1CountryText = $_POST['substr(G1CountryHelp, 0, 2)'];

    gehört auf jeden Fall unter die Top 10


    Code
    $G1CountryText = substr($_POST['G1CountryHelp'], 0, 2);
  • Ein bisschen Erklärung für tobbyR5 wäre schon hilfreich ;)


    Code
    $G1CountryText = $_POST['G1CountryHelp'];


    Mit $_POST bekommst du Inhalte, die die über ein Formular übertragen hast (ganz flapsig gesagt). Soweit, so gut.

    Diesen Inhalt weißt du der Variable $G1CountryText zu - immer in der Hoffnung, das etwas übertragen wurde.

    Da wäre eine Kontrolle noch gut, ob etwas reinkommt (sonst kommen Fehlermeldungen).

    Code
    // $G1CountryText = $_POST['substr(G1CountryHelp, 0, 2)'];   // tut nicht
    $G1CountryText = substr($G1CountryText, 0, 2);

    Jetzt kannst du die Funktion substr auf die Variable $G1CountryText anwenden und den Inhalt mit den ersten 2 Zeichen "ausschneiden". Da brauchst du kein wildes $_POST

    Du weisst den beschnittenen Inhalt der Variable $G1CountryText wieder der Variable $G1CountryText zu. Das geht, wenn einem klar ist, was man macht und wenn man den kompletten Inhalt eh nicht mehr benötigt.


    Es macht am Anfang auch mehr Sinn, Schritt für Schritt die Anweisungen aufzubauen.


    Man könnte auch alles in einer Zeile machen, wie m.scatello vorschlägt. Das geht gut und wird man auch machen, wenn man die entsprechende Routine hat. Aber für dein Einsteig besser in mehreren Zeilen und dann kann man auch entsprechende Kontrollausgaben machen :)

  • Nur zur Klarstellung. Natürlich kommen die Werte aus einem Formular. Sonst würde Post ja auch keinen Sinn machen.


    Das der gewünschte Inhalt übermittelt wird ist auch klar - Ich hatte doch geschrieben, "Bei der ersten Codezeile wird der mit Post übergebene Wert G1CountryHelp vollständig und richtig an $G1CountryText übergeben."


    Die beiden Codezeilen sollen nacher im Script auch nicht zusammen stehen. Es war nur der Test ob der Wert von Post übergeben wird und um zu dokumentieren, das Werte da sind.


    Was jetzt nun daran Top Ten verdächtig ist, wenn man bei einem Befehl mal die Syntax vetrauscht kan ich nicht nachvollziehen. Trotzdem danke für den Hinweis.


    Robert

  • Eigentlich wird mit

    Code
    $_POST['substr(G1CountryHelp, 0, 2)'];

    der Value mit dem Key substr(G1CountryHelp, 0, 2) aus dem Array $_POST gesucht, sofern vorhanden.

    Und ja, das ist tatsächlich ein gültiger Array-Key Bezeichner unter PHP.

    ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!