[Php-it] Ritornare HTML e PHP in una funzione

Matteo C. - MIF matteo.c at mif.it
Tue Jul 4 15:19:05 CEST 2006


spacemarc ha scritto:
> Ho una funzione esterna:
>
> function permessi() {
>          global $permessi, $codice ;
>            if ($permessi == "upload") {
>                           $codice ='<td>Upload file - echo
> "Dimensione massima: " . $maxfilesize/1024 . " KB";</td>
>        <td>
>        <input type="file" name="userfile"> Attuali chmod per la
> directory $file_dir.": "; substr(sprintf(\'%o\',
> fileperms($uploaddir)), -3); echo $upload_msg; </td>';
>
> } elseif ($permessi == "letturestampe") {
> $codice = "altro codice HTML con altro codice PHP";   
> }
> }
>
>
> La richiamo con "permessi()" ma ovviamente laddove c'è del PHP me lo
> stampa invece che interpretarlo. Dove sbaglio? Mi consigliate,
> eventualmente, qualche altro modo più pratico? grazie, Marcello
Da quanto vedo ci sono un po' di errori logici e di sintassi.
Non puoi assegnare un valore ad una variabile e contemporaneamente fare 
un echo all'interno dell'assegnazione, senza che la funzione si comporti 
in modo errato.
Devi decidere prima se vuoi che la funzione mandi direttamente in output 
la variabile, la ritorni alla fine, o entrambe le cose.
Personalmente scriverei la funzione così:

    function permessi() {
       
        global $permessi, $codice ;
       
        if ($permessi == "upload") {
           
            $codice ='<td>Upload file - Dimensione massima: ' . 
$maxfilesize/1024 . ' KB;</td>';
            $codice .='<td><input type="file" name="userfile">';
            $codice .='Attuali chmod per la directory '.$file_dir.': 
'.substr(sprintf('%o', fileperms($uploaddir)), -3).$upload_msg.'</td>';

        } elseif ($permessi == "letturestampe") {
           
            $codice = "altro codice HTML con altro codice PHP";
           
        }
       
        return $codice;
       
    }

CIAO!

Matteo



More information about the Php-it mailing list