hawkmaster: innerhalb von echo <?php if( ... mit eval?

Hallo zusammen,
auf einer Webseite gibt es mehrere Textfelder. Momentan sind diese statisch auf dem Form.

  
<input name="AppDir" type="text" value="<? if(!empty($dirarr['AppDir'])){ echo $dirarr['AppDir'];} ?>" />  

Jetzt möchte ich dies gerne dynamisch machen.
Ich habe es so versucht.

  
echo"  
<input name=\"$row[DirName]\" type=\"text\" value=\"";  
eval(<?php if(!empty($dirarr['AppDir'])){ echo $dirarr['AppDir'];} ?>);  
echo"/>";  

Die Zeile mit dem eval() ist jedoch falsch.
Kann mir jemand einen Tipp geben wie man das schreiben muss?

vielen Dank und viele Grüße
hawk

  1. Kann mir jemand einen Tipp geben wie man das schreiben muss?

    Kannst du bitte beschreiben, was du eigentlich vor hast - ich verstehe den Sinn hinter deinem Unterfangen nicht und wofür du eval() benötigst.

  2. Hi,

    echo"
    <input name="$row[DirName]" type="text" value="";
    eval(<?php if(!empty($dirarr['AppDir'])){ echo $dirarr['AppDir'];} ?>);
    echo"/>";

    
    > Die Zeile mit dem eval() ist jedoch falsch.  
      
    Sie ist vor allem vollkommen sinnfrei.  
    Es gibt absolut keinen ersichtlichen Grund, an so einer Stelle zu eval zu greifen.  
      
    Wenn du eine Ausgabe von einer Bedingung abhängig machen willst - dann schliesse das vorherige Ausgabestatement vorher ab, schreibe dann dein if/else und davon abhängig Ausgaben - und fahre anschliessend mit den nächsten Ausgaben fort.  
      
    Da du dich, nachdem du das erste echo-Statement abgeschlossen hast, bereits in einem "PHP-Bereich" befindest, ist es dann auch nicht nötig, diesen "noch mal" mittels <?php zu öffnen; es kann stattdessen "ganz normal" mit dem if weitergehen, wie mit jedem anderen Statement/Befehl auch.  
      
    MfG ChrisB  
      
    
    -- 
    „This is the author's opinion, not necessarily that of Starbucks.“
    
    1. Hallo
      danke euch beiden.
      Ihr habt natürlich völlig recht.
      Es war absolut quatsch was ich da machen wollte.

      Jetzt klappt es.
      vielen Dank und viele Grüße
      hawk

  3. Hi Hawkmaster,

    eval(<?php if(!empty($dirarr['AppDir'])){ echo $dirarr['AppDir'];} ?>);
    Die Zeile mit dem eval() ist jedoch falsch.

    ChrisB und suit haben ja schon gesagt (und ich schliesse mich der Meinung an), dass eval() hier nicht zweckmaessig ist. Falsch ist die Zeile - das sei der Vollstaendigkeit wegen ergaenzt - weil eval() keinen PHP-Code, sondern einen String als Parameter braucht, der dann als Code interpretiert wird. Eine Zeile wie oben zerschiesst bereits den Parser, weil sie (voellig unabhaengig von der Implemetierung von eval()) gar kein syntaktisch korrekter PHP-Code ist.

    viele Gruesse,
    der Bademeister