Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    156

    foreach e indici contenenti spazi

    salve,
    ho notato un cortamente strano di php che non mi sembra sia riportato nel manuale.

    ho un form con delle input text cosi:
    codice:
    ...
    <label for="diritto privato">diritto privato:</label><input type="text" name="diritto privato" id="diritto privato" value=""> 
    ...
    con questo codice php recupero i dati (non ditemi che è inutile creare una seconda variabile per salvare i valori )
    Codice PHP:
    foreach ($_POST as $k => $value)
    {
      
    $value     strtolower(trim($value));
      
    $post[$k] = get_magic_quotes_gpc()    ? $value    addslashes($value);

    se faccio un print_r($post), ho questo:
    codice:
    Array
    (
        ...
        [diritto_privato] => 'blabla'
        [send] => invia
    )
    sapete da cosa è data questa cosa??
    Matteo

  2. #2
    sono le variabili inviate in post tramite il form

  3. #3
    E' perfettamente normale. Lo spazio fa parte dei caratteri non ammessi nel nome delle variabili e l'array risponde alle stesse specifiche.

    Quindi gli array e i loro indici sono soggetti alle stesse regole previste per i nomi delle variabili. Php sostituisce il carattere non ammesso con un underscore.




    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    156
    quindi non è consigliabile nemmeno sistemare la cosa in questo modo?!
    Codice PHP:
    foreach ($_POST as $k => $value)
    {
      
    $value        strtolower(trim($value));
      
    $k            str_replace("_"," ",$k);
      
    $post[$k]    = get_magic_quotes_gpc()    ? $value    addslashes($value);

    :master:
    Matteo

  5. #5
    Se non lo passi via POST o GET potrebbe anche funzionare... ma perche' usarlo se non e' ammesso? Domani una versione diversa di php o un diverso settaggio di non so che, potrebbero costringerti a rivedere lo script.

    Magari windows e' tollerante e linux no.... come per i nomi di file. sinceramente io userei l'underscore al posto dello spazio. Lo stesso vale per i nomi di campo e di tabelle, per i caratteri accentati...

    Se vuoi che il tuo script sia portabile tra i vari sistemi operativi e release segui le regole.... hai solo da guadagnarci tu.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.