Lola17: Leerzeichen entfernen am Anfang&Ende

Hallo :)

Ich möchte gerne in meinem Skript, dass die Leerzeichen am Anfang und am Ende entfernt werden. Das habe ich bis jetzt, aber ich finde den Fehler nicht:

if (isset($_POST['email']))
{
$eingabe = $_POST['email'];
echo " eMail Adresse : $eingabe";
echo "<br>Länge ihrer eMail Adresse: " . strlen($eingabe);
$email = trim($eingabe);

}
Wie muss ich den Befehl schreiben und was ist falsch?
Schon mal danke für eure Hilfe.

  1. Tach!

    Ich möchte gerne in meinem Skript, dass die Leerzeichen am Anfang und am Ende entfernt werden. Das habe ich bis jetzt, aber ich finde den Fehler nicht:

    Beschreibe bitte den Fehler, den du hast. (Kleiner Tipp: Um Nicht-Buchstaben besser sichtbar zu machen, kann man urlencode() missbrauchen.)

    Wie muss ich den Befehl schreiben und was ist falsch?

    Um nur Leerzeichen zu entfernen, müsste ein solches als zweiter Parameter von trim() angegeben werden, denn per Default entfernt es alle Whitespace-Zeichen.

    $eingabe = $_POST['email'];

    Es ist nicht direkt falsch, aber in der Regel unnötig, $_POST- und $_GET-Werte in andere Variablen umzukopieren.

    echo " eMail Adresse : $eingabe";

    Falsch ist hingegen - solange es sich nicht nur um eine vorübergehend eingefügte Kontrollausgabe handelt - den Kontextwechsel nicht zu beachten. Das führt dann zu solchen vermeidbaren Fehlern wie diesem: http://heise.de/-1869515.

    dedlfix.

    1. Tach!

      Ich möchte gerne in meinem Skript, dass die Leerzeichen am Anfang und am Ende entfernt werden. Das habe ich bis jetzt, aber ich finde den Fehler nicht:

      Beschreibe bitte den Fehler, den du hast. (Kleiner Tipp: Um Nicht-Buchstaben besser sichtbar zu machen, kann man urlencode() missbrauchen.)

      Wie muss ich den Befehl schreiben und was ist falsch?

      Um nur Leerzeichen zu entfernen, müsste ein solches als zweiter Parameter von trim() angegeben werden, denn per Default entfernt es alle Whitespace-Zeichen.

      $eingabe = $_POST['email'];

      Es ist nicht direkt falsch, aber in der Regel unnötig, $_POST- und $_GET-Werte in andere Variablen umzukopieren.

      echo " eMail Adresse : $eingabe";

      Falsch ist hingegen - solange es sich nicht nur um eine vorübergehend eingefügte Kontrollausgabe handelt - den Kontextwechsel nicht zu beachten. Das führt dann zu solchen vermeidbaren Fehlern wie diesem: http://heise.de/-1869515.

      dedlfix.

      hey :D Also mein Fehler ist einfach, dass es mit dem Befehl, den ich angegeben habe, nicht funktioniert. Die Leerzeichen werden nicht weggelassen.

      Ok danke für die Antwort schonmal, aber ich hab das leider immer noch nicht richtig verstanden. Ich habe ja den Befehl geschrieben:
      $email = trim($eingabe); reicht das? Und wie muss ich das mit dem Default schreiben? ich kenn default nur bei einer switch abfrage mit einem Doppelpunkt aber das geht da nicht.

      Lg Lola17

      1. Om nah hoo pez nyeetz, Lola17!

        Bitte zitiere sinnvoll, nur das worauf du dich gerade beziehst. Es ist weder notwendig noch erwünscht, das komplette Vorposting wieder anzuführen.

        hey :D Also mein Fehler ist einfach, dass es mit dem Befehl, den ich angegeben habe, nicht funktioniert. Die Leerzeichen werden nicht weggelassen.

        "Funktioniert nicht" funktioniert nicht als Fehlerbeschreibung.

        Welche Warnmeldungen gibt es, wenn du das error-reporting voll aufdrehst?

        Ok danke für die Antwort schonmal, aber ich hab das leider immer noch nicht richtig verstanden. Ich habe ja den Befehl geschrieben:
        $email = trim($eingabe); reicht das? Und wie muss ich das mit dem Default schreiben? ich kenn default nur bei einer switch abfrage mit einem Doppelpunkt aber das geht da nicht.

        Es ist sinnvoll das Handbuch zu lesen.

        Viele Funktionen können mit optionalen Parametern aufgerufen werden, lässt man sie weg, so werden sie mit bestimmten default-Werten initialisiert.

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Boot und Bootes.

      2. Tach!

        hey :D Also mein Fehler ist einfach, dass es mit dem Befehl, den ich angegeben habe, nicht funktioniert. Die Leerzeichen werden nicht weggelassen.

        Dann kann ich nur sagen, dass du was falsch machst, was im gezeigten Code nicht zu sehen ist.

        Nochmal genauer formuliert, was ich wollte: "Funktioniert nicht" ist schwer nachvollziehbar, wenn das Problem nicht nachvollziehbar ist. Dazu gehört, dass die problematischen Eingabedaten bekannt sind und die Art und Weise, wie du den Fehler feststellst.

        $email = trim($eingabe); reicht das?

        Ja, nun steht in $email ein String ohne Whitespace am Anfang und Ende.

        Und wie muss ich das mit dem Default schreiben?

        Siehe PHP-Handbuch, trim() kennt zwei Parameter. Nur einen muss man übergeben. Wenn man den zweiten weglässt, nimmt die Funktion die ebenfalls im Handbuch aufgeführten Zeichen - das nenne man "als Default".

        dedlfix.