Visualizzazione risultati 1 fino 5 di 5

Discussione: Ambiente di Test e AV

  1. #1
    Guest

    Predefinito

    Allora ragazzi....
    volevo chiedere un parere per prevenire eventuali casini.

    Ho installato PHP 4.2.3 nel mio PC
    facendo delle prove con il passaggio dei dati da una pagina all'altra (pag1.php --> pag2.php) mi sono accorto che devo usare , in locale, il sistema:

    $_POST['nome_campo'];

    Su AV invece posso usare entrambi i sistemi:
    $_POST['nome_campo']; oppure
    $nome_campo;

    studiando qua e la ho trovato un articolo su freephp.it che dice che questo fattore dipende dal settaggio di register_globals su php.ini e che è sconsigliato mettere tale valore su On

    Cosa mi consigliate di fare ?
    Io preferirei usare $_POST['nome_campo'] , almeno si capisce meglio che il dato è passato da una pagina.... ma sono alla prime armi con PHP e non vorrei iniziare col piede sbagliato!

    Thanks

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da zsquare
    Ho installato PHP 4.2.3 nel mio PC
    Mi pare (mi pare!) che dalla 4.2 in poi sia l'impostazione di default, quindi ti consiglio di usare $_POST['nome_campo']; :o

  3. #3
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    $_POST['campo'] è senz'altro il modo migliore, quindi vai così;
    in generale è meglio usare sempre gli array superglobals (come $_POST) perchè funzionano sempre, mentre l'altra modalita funziona solo se è attivo register_globals (che nelle ultime versioni di php e disabilitato di default, e comunque, come tu stesso riporti, sconsigliato).
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  4. #4
    Guest

    Predefinito

    register_globals aveva introdotto alcune falle della sicurezza negli script quindi anche se non è stato tolto per compatibilità con i vecchi script è stato disabilitato.
    Ovvio che ti conviene sempre usare le variabili di sistema più sicure visto che da li passano molte informazioni , oltre al fatto che come hai detto tu sono più pratiche.

    Ti do una dritta: alcuni server non sono stati upgradati (mannaggia i neologismi) e usano ancora vecchie versioni del PHP, virusbye su freephp aveva fatto una proposta (presa dal sito del PHP ) e cioè di realizzare questo hack:
    [code:1:11cb5ceda1]
    if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
    [/code:1:11cb5ceda1]

    questo prima di valutare il contenuto dell'array $_POST, in pratica verifichi l'esistenza dell'array e se questo non esiste (vecchie versioni di PHP prima della 4.0.2) lo crei con dentro il valore contenuto nella register_globals, quindi prosegui con lo script come se nulla fosse.

  5. #5
    Guest

    Predefinito

    io personalmente mi trovo benissimo con il $nomevariabile

    per essere sicuro che tutto continui a funzionare se stai usando il metodo del "$nomevariabile" allora puoi mettere in cima alla tua pagina questo ciclo qui che ti becca tutto ciò che è registrato nei vari arrays e te lo trasforma in semplici variabili:

    $types_to_register = array('GET','POST','COOKIE','SESSION','SERVER');
    foreach ($types_to_register as $type) {
    $arr = @${'HTTP_' . $type . '_VARS'};
    if (@count($arr) > 0) {
    extract($arr, EXTR_OVERWRITE);
    }
    }

    quindi se anche disabilitano o abilitano il REGISTER_GLOBALS nelle nuove versioni per te a livello di scripts la cosa rimane indifferente.

    e soprattutto non devi preoccuparti di capire dov'è il dato che cerchi, è nel GET ?, nel POST ?

    no...è semplicemente : $NOMEVARIABILE

    :D :D :D

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •