• User Attivo

    Ciao, prova con $_POST['val1'] e $_POST['val2'], al posto di $val1 e $val2


  • User Newbie

    Grazie mels......funziona!!!

    A questo punto ti chiedo:
    Il codice che avevo scritto io era forse per php4? Io sto usando il 5.3!
    Lo script è stato preso da un libro del 2005 e mi sembra si riferisca a php4. Puo' essere?


  • User Newbie

    Scusate.... devo mettere un RISOLTO da qualche parte o non si usa?


  • User Attivo

    Credo che "grazie" sia sufficiente, se qualcuno ha qualche problema simile, entra qui e capisce che è risolto 😉
    Non so le differenze tra PHP4 e PHP5, ma quando passi i dati da un form POST, è come se tutte le variabili del formulario andassero a costituire un'array associativo $_POST, così le richiami con $_POST['name'], dove "name" è il name che hai dato nell'HTML agli input


  • User Newbie

    Ok per la "netiquette" e grazie ancora.

    Per concludere presumo che lo stesso discorso valga per il GET e quindi $_GET['var']...al di là del fatto sia meno "sicuro". Dico bene?


  • User Attivo

    Dici bene. Il GET personalmente lo uso solo quando per passare informazioni da una pagina all'altra uso un link anzichè un form.


  • User Newbie

    Vorrei porre un'altra questione sempre relativa al passaggio dati:
    Ho questa form con un campo di testo e due radio button per scegliere se ottenere la lunghezza della stringa digitata
    oppure la stringa digitata al contrario:

    
    <HTML>
    <HEAD>
    <TITLE>Modulo di input generico</TITLE>
    </HEAD>
    <BODY>
    
    <FORM METHOD="post" ACTION="visualizza_input.php">
    
    <P><strong>Campo di testo:</strong><br>
    <TEXTAREA NAME="testo" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA>
    </p>
    
    <P><strong>Funzioni di manipolazione delle stringhe:</strong><br>
    
    <INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br>
    
    
    <P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P>
    
    </FORM>
    
    </BODY>
    </HTML>
    
    

    ed il file php:

    
    <?php
    $risultato = $funzione($_POST['testo']);
    ?>
    
    <HTML>
    <HEAD>
    <TITLE>Risultati di input generico</TITLE>
    </HEAD>
    <BODY>
    
    <? echo "$risultato"; ?>
    
    <p><a href="modulo_generico.html">Torna al modulo!</a></P>
    
    </BODY>
    </HTML>
    
    

    In output mi da l'errore:

    
    Notice: Undefined variable: funzione in /var/www/visualizza_input.php on line 8  Fatal error: Function name must be a string in /var/www/visualizza_input.php on line 8
    
    

    Ho provato a sostituire $funzione con $_POST['funzione'] ma non funziona.
    Grazie da subito per l'eventuale aiuto....


  • User Attivo

    strlen e strrev ti arrivano come testi, non credo che sia possibile utilizzarli come le funzioni srtlen() e strrev(),
    prova con:

    [PHP]
    $risultato = $_POST['testo'];
    if($_POST['funzione'] == "strrev")
    {
    $risultato = strrev($risultato);
    }
    if($_POST['funzione'] == "srtlen")
    {
    $risultato = strlen($risultato);
    }
    [/PHP]


  • User Newbie

    Si infatti....il codice che hai scritto era la mia seconda scelta...e naturalmente funziona.

    Come dicevo nel msg precedente , questi esempi li ho presi da "php per esempi" di Julie Meloni - Jackson libri.
    Il libro si riferisce al php4.
    Quindi se con php4 si poteva fare , vorrei capire perche' con php5 non s ipuo' piu'.......:rollo:

    per completezza posto i codici completi come da testo del libro:
    file html:

    
    <HTML>
    <HEAD>
    <TITLE>Modulo di input generico</TITLE>
    </HEAD>
    <BODY>
    
    <FORM METHOD="post" ACTION="visualizza_input.php">
    
    <P><strong>Campo di testo:</strong><br>
    <TEXTAREA NAME="testo1" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA>
    </p>
    
    <P><strong>Funzioni di manipolazione delle stringhe:</strong><br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="md5" checked> md5<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="strtoupper"> stringa in maiuscolo<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="strtolower"> stringa in minuscolo<br>
    <INPUT TYPE="radio" NAME="funzione" VALUE="ucwords"> stringa con le prime lettere delle parole in maiuscolo</P>
    
    <P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P>
    
    </FORM>
    
    </BODY>
    </HTML>
    
    

    file php4:

    
    <?php
    
    
    $risultato = $funzione($testo1);
    
    ?>
    
    <HTML>
    <HEAD>
    <TITLE>Risultati di input generico</TITLE>
    </HEAD>
    <BODY>
    
    <? echo "$risultato"; ?>
    
    <p><a href="modulo_generico.html">Torna al modulo!</a></P>
    
    </BODY>
    </HTML>
    
    

    Ecco...se tu melis o qualcun'altro sapesse togliermi questa curiosita' gliene sarei grato.
    Comunque grazie ancora e ciao.


  • ModSenior

    Ciao edo64,
    non si tratta di un problema di versione di PHP, bensì di configurazione.
    Trovi una spiegazione dettagliata, con il motivo per cui quella direttiva è stata per lungo tempo consigliata su OFF, ed è stata rimossa con PHP 5.4 qui:
    http://www.giorgiotave.it/forum/scripting-e-risorse-utili/99967-pillola-consigli-sul-perche-mantenere-register_globals-su-off.html


  • User Newbie

    Ciao TheDarkIta.....grazie....mi hai dato un bell'input.
    Andando a leggere in file php.ini infatti , nella sezione apposita, dice:

    "Using form variables as globals can easily lead
    to possible security problems..."

    Cerchero di capire bene come si gestiscono queste super variabili o array che dir si voglia...
    Grazie ancora...