• Moderatore

    Problema con un form

    Ciao a tutti

    Ho provato a mettere in locale uno script trovato su un libro, ma il risultato è diverso da quello descritto.

    Ho il file form.php

    <html>
    <head>
    <title>Il form</title>
    </head>
    <body>			 
    
    <form action="script.php">	
     
    <h3>Inserisci il tuo nome 
    <input type="text" name="nome" size="20" maxlength="20"></h3>
    						
    <h3>Inserisci il tuo cognome 
    <input type="text" name="cognome" size="20" maxlength="20"></h3>
    
    <input type="submit" value="Invia">
    
    </form>
    
    </body>
    </html>
    
    

    ed il file script.php

    
    <?php	
    $a = $_REQUEST;
    print("<b>Parametri del form HTML:</b><br><br>");
    foreach ($a as $k => $v)
    {print "<b>$k</b>: $v<br>";}		
    ?>
    
    

    Dopo aver inserito i dati Nome e Cognome, dopo l'invio mi restituisce:

    Parametri del form HTML:

    nome: Mario
    cognome: Rossi
    pma_lang: it-utf-8
    pma_charset: iso-8859-1
    pma_collation_connection: utf8_unicode_ci
    pma_theme: original

    Cosa sono quelle ulteriori 4 righe inaspettate?
    Come faccio a toglierle?


  • User Attivo

    Ciao,
    la variabile predefinita $_REQUEST contiene il contenuto (scusa il gioco di parole) di $_GET, $_POST e $_COOKIE.
    Quando invi il form oltre ai dati passati tramite GET questi dati vengono memorizzati dentro $_REQUEST insieme a quelli di dei cookie. Probabilmente ciò è dovuto ad una qualche impostazione del server o di php che avvia automaticamente una sessione.

    Un parametro che puoi controllare con la funzione phpinfo() è:
    session.auto_start
    Se è su On puoi modificarlo a Off dal php.ini

    Al momento altri non mi vengono in mente altri parametri...

    Per correggere invesce solamente il codice ti basta sostituire a $_REQUEST le variabili $_GET o $_POST a seconda di quale metodo di invio dati stai utilizzando (Nel tuo caso, non essendo specificato, è GET)

    Alessandro


  • Moderatore

    Ho controllato session.auto_start ed è su off.

    Comunque, ho sostituito $_REQUEST con $_GET ed adesso tutto funziona regolarmente.

    Per usare request hai detto che probabilmente bisognerebbe modificare le impostazioni del server o di php...
    ma che vantaggi avrei ad usarlo?
    o meglio, in quali casi sarebbe utile?