Achot: syntax error, unexpected 'if'

Hallo,

ich baue mir eine Mail zusammen und möchte gerne nur die Felder haben, wo auch etwas drin steht, da ich sonst zu große Lücken in der Mail habe.

$data['adresse']     = 

$username . "<br>" 
  								
if (strlen($name) > 0):
  . $name . "<br>"
endif; 
  								
if (strlen($vorname) > 0):
  . $vorname . "<br>"
endif;
  								
. $strasse . "<br>" 
. $plz . " " .  $ort;

Wenn ich dieses so mache, erhalte ich folgende Meldung:

Parse error: syntax error, unexpected 'if' (T_IF)

wie kann ich sonst meine Mail zusammen bauen?

akzeptierte Antworten

  1. Hallo Achot,

    es fehlt ein Semikolon.

    Bis demnächst
    Matthias

    --
    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
    1. Hallo,

      du meinst hinter dem jeweiligen "<br>" ? Habe ich versucht, Fehlermeldung bleibt.

  2. Hallo Achot,

    $data['adresse']     = 
    
    $username . "<br>" 
      								
    if (strlen($name) > 0):
      . $name . "<br>"
    endif; 
      								
    if (strlen($vorname) > 0):
      . $vorname . "<br>"
    endif;
      								
    . $strasse . "<br>" 
    . $plz . " " .  $ort;
    

    Das kannst du so nicht machen. Bevor du ein if einleitest, musst du die Verknüpfung beenden und im if dann eine neue beginnen, etwa so:

    $data['adresse']     = $username . "<br>";
    
    if (strlen($name) > 0) {
      $data .= $name . "<br>";
    }
    
    if (strlen($vorname) > 0) {
      $data .= $vorname . "<br>";
    }
    
    $data .= $strasse . "<br>" . $plz . " " .  $ort;
    

    LG,
    CK

    1. Hallo,

      etwa so:

      Und wenn man dann noch mit den Variablennamen nicht durcheinander kommt, kann das sogar klappen…

      Gruß
      Kalk

      1. Hallo Tabellenkalk,

        etwa so:

        Und wenn man dann noch mit den Variablennamen nicht durcheinander kommt, kann das sogar klappen…

        Die Wortwahl „etwa” war durchaus Absicht 😉 ein wenig muss dem Leser ja auch zu tun verbleiben. 😜

        LG,
        CK

    2. Hallo,

      danke dir für deine Hilfe, musste dein Code etwas ändern:

      ALT:

      $data['adresse']     = $username . "<br>";
      
      if (strlen($name) > 0) {
        $data .= $name . "<br>";
      }
      
      if (strlen($vorname) > 0) {
        $data .= $vorname . "<br>";
      }
      
      $data .= $strasse . "<br>" . $plz . " " .  $ort;
      

      Neu:

      $data['adresse']     = $username . "<br>";
      
      if (strlen($name) > 0) {
        $data['adresse'] .= $name . "<br>";
      }
      
      if (strlen($vorname) > 0) {
        $data['adresse'] .= $vorname . "<br>";
      }
      
      $data['adresse'] .= $strasse . "<br>" . $plz . " " .  $ort;
      

      Deiner hat zu einer Fehlermeldung geführt. Hab das ['adresse'] noch mit angehängt, dann kommen die Daten richtig bei mir an.

      1. Hallo,

        musste deinen Code etwas ändern:

        Ach⁉️

        Gruß
        Kalk

  3. Tach!

    Wenn ich dieses so mache, erhalte ich folgende Meldung:

    Parse error: syntax error, unexpected 'if' (T_IF)

    wie kann ich sonst meine Mail zusammen bauen?

    Indem du gültige Syntax schreibst. Du kannst nicht einfach einen String anfangen und dann mit Control-Statements (if etc.) was anderes machen und dann den Ausdruck, der den String zusammenbaut fortsetzen. Du musst die Operationen jeweils einzeln und syntaktisch vollständig notieren.

    Strings erweitern kann man zum Beispiel so:

    $foo = $foo . 'bar';

    oder so:

    $foo .= 'bar';

    dedlfix.

  4. Du könntest sowas machen:

    $data = sprintf(
      "%s\n%s\n%s", 
      $username, 
      strlen($name) ? 
      $name : '', 
      $vname ? $vname : ''
    );
    

    Und bei dieser Gelegenheit mal über ein Templatesystem nachdenken.

    MfG