Compu: Wie lang kann eine String Variable max sein ?

Hi,

Ich füge nach und nach Text einer Variablen hinzu um sie dann später in der mail() Funktion nutzen zu können:

$bewerberdaten = "<b>Auf Stelle aufmerksam geworden durch:</b> ".ucfirst($_POST['aufmerksamdurch']."<br />\n".
                   "<b>Bewerbung für den Bereich:</b> ".ucfirst($_POST['bereich'])."<br />\n".
                   "<b>Bewerbung als:</b> ".ucfirst($_POST['bewerbungals'])."<br />\n".
                   "<b>Vorname:</b> ".ucfirst($_POST['vorname'])."<br />\n".
                   "<b>Nachname:</b> ".ucfirst($_POST['nachname'])."<br />\n".
                   "<b>Email:</b> ".$_POST['email']."<br />\n".
                   "<b>Unternehmen:</b> ".$_POST['unternehmen']."<br />\n".
                   "<b>Straße:</b> ".ucfirst($_POST['strasse'])."<br />\n".
                   "<b>PLZ:</b> ".$_POST['plz']."<br />\n".
                   "<b>Ort:</b> ".ucfirst($_POST['ort'])."<br />\n".
                   "<b>Land:</b> ".$_POST['land']."<br />\n".
                   "<b>Telefon:</b> ".$_POST['telefon']."<br />\n".
       "<b>Geburtsdatum:</b> ".$_POST['geb_tag'].".".$_POST['geb_monat'].".".$_POST['geb_jahr']."<br />\n".
       "<b>Schulbildung:</b> ".$_POST['schulbildung']."<br />\n".
       "<b>Englischkenntnisse (Wort):</b> ".$_POST['englischkenntnisse_in_wort']."<br />\n".
       "<b>Englischkenntnisse (Schrift):</b> ".$_POST['englischkenntnisse_in_schrift']."<br />\n".
       "<b>Studium:</b> ".$_POST['studium']." abgeschlossen: ".$_POST['studium_mit']."<br />\n".
       "<b>Berufsausbildung:</b> ".$_POST['berufsausbildung']." Abschluss: ".$_POST['berufsausbildung_mit_abschluss']."<br />\n".
       "<b>Ausgeübte Tätigkeit</b>: ".$_POST['taetigkeit']."<br />\n".
          "<b>Berufserfahrung</b>: ".$_POST['berufserfahrung']."<br />\n".
       "<b>Habe Mitarbeiter geführt</b>: ".$_POST['mitarbeiterfuehrung']."<br />\n".
       "<b>Anzahl der Mitarbeiter</b>: ".$_POST['mitarbeiterzahl']."<br />\n".
       "<b>Zeitraum</b>: ".$_POST['zeitraum']."<br />\n".
       "<b>Position</b>: ".$_POST['position']."<br />\n";

Nun gibt er mir bei der letzten Zeile immer die Fehlermeldung "Parse error: parse error, unexpected ';' in d:\pages\apply.php on line 485" aus. Line 485 wäre die letzte Zeile.
Aber da müsste alles Stimmen. Ist die Variable zu lang?

Danke

  1. Hi,

    entweder du verwendest
    $bewerberdaten = "<b>Auf Stelle aufmerksam geworden durch:</b> ".ucfirst($_POST['aufmerksamdurch']."<br />\n".
    $bewerberdaten .= "<b>Bewerbung für den Bereich:</b> ".ucfirst($_POST['bereich'])."<br />\n".
    $bewerberdaten .= "<b>Bewerbung als:</b> ".ucfirst($_POST['bewerbungals'])."<br />\n".
    $bewerberdaten .= "<b>Vorname:</b> ".ucfirst($_POST['vorname'])."<br />\n".

    oder
    $bewerberdaten = "<b>Auf Stelle aufmerksam geworden durch:</b> ".ucfirst($_POST['aufmerksamdurch']."<br />\n.
                       <b>Bewerbung für den Bereich:</b> ".ucfirst($_POST['bereich'])."<br />\n.
                       <b>Bewerbung als:</b> ".ucfirst($_POST['bewerbungals']).<br />\n.[...]";

    Der Inhalt der Variable befindet such zwischen " und ". Alle weiteren " dazwischen sind nicht zulässig. mit ". unterbrichst du die zeichenkette um eine Variable einzufügen. Mit ." setzt du sie fort. Bei dir sind jedoch in jeder zeile neue ".

    1. Hi,

      nein das mit dem Punkt ist schon richtig. Das mache ich immer so.
      Es ist nur eine Aneinanderreihung.
      Ich frage mich nur, ober der String dann zu lang ist, weil er auf einmal nicht mehr mit dem ";" klarkommt.

      Danke

      1. akzeptiert der auch den Zeilenumbruch zwischen . und "?
        Der String wird nicht zu lang sein, ich habe mir eine base64-Codierung einer Datei mit 1600 Zeilen á 75 Zeichen pro Zeile ausgeben lassen.

  2. Hi

    $bewerberdaten = "<b>Auf Stelle aufmerksam geworden durch:</b> ".ucfirst($_POST['aufmerksamdurch']."<br />\n".

    IMHO gibt es keine zu Langen Strings, Dui hast einfach ein ) vergessen nach $_POST['aufmerksamdurch']
    Fehlermeldungen erscheinen häufig nicht da wo man sie erwartet.
    Für den Parser fehlte bis zum Schluss einfach eine Klammer und als das Semikolon vor dieser kam, kam der Fehler.

    Sowas findet man, indem man zeilenweise auskommentiert...

    ciao
    romy

    1. DANKE!

      Da wäre ich nicht draufgekommen.

      Gruß Compu

      1. Da wäre ich nicht draufgekommen.

        ..und ich brauche definitiv zu lange ;)

        Gruß,
          soenk.e

  3. Ich füge nach und nach Text einer Variablen hinzu um sie dann später in der mail() Funktion nutzen zu können:

    $bewerberdaten = "<b>Auf Stelle aufmerksam geworden durch:</b> ".ucfirst($_POST['aufmerksamdurch']."<br />\n".

    Nun gibt er mir bei der letzten Zeile immer die Fehlermeldung "Parse error: parse error, unexpected ';' in d:\pages\apply.php on line 485" aus. Line 485 wäre die letzte Zeile.
    Aber da müsste alles Stimmen. Ist die Variable zu lang?

    Nein, PHP-Textvariablen sind wahrscheinlich nur durch den zu Verfügung stehenden Speicher begrenzt. Garantieren kann ich Dir in jedem Fall die Funktionsfähigkeit bis über 86k, damit habe ich nämlich jede Woche in http://kino-fahrplan.de/programm/film zu tun :)

    Bei solchen unerklärlichen Syntaxfehlern ist es immer sinnvoll, den Fehler einzukreisen, d.h. mit Kommentaren Stück für Stück des Codes rauszunehmen, solange bis kein Fehler mehr kommt.
    Fang' einfach mal an, klammere die untere Hälfte in einen Kommentar-Block, dann die unteren drei Viertel usw. Du wirst am Ende mit Erstaunen feststellen, daß der Fehler gaaaaaanz woanders liegt (sogar in dieser Antwort noch vorhanden ist) und auch nichts mit einem Semikolon zu tun hat. Du hast schlichtweg was Rundes vergessen.. :)

    Davon unabhängig: Tu' Dir selbst einen Gefallen und gib' NIEMALS von außen kommende Daten direkt aus, benutze IMMER htmlentities(). Andernfalls kann jedermann x-beliebigen HTML-, CSS- oder Javascript-Code eingeben und damit möglicherweise Deine Seiten zerschießen.
    Im vorliegenden Fall mag das nicht so schlimm sein, gravierend ist es in jedem Fall bei Foren oder Gästebüchern.

    Gruß,
      soenk.e