Mostra risultati da 1 a 2 di 2

Discussione: Guida aperta: modifiche vecchi script php: PHP_SELF, variabili, direttive etc

  1. #1
    Data registrazione
    Feb 2010
    Località
    NCC1701
    Messaggi
    3,822
    Grazie dati 
    1,307
    Grazie ricevuti 
    1,323
    Ringraziato in
    996 post

    Guida aperta: modifiche vecchi script php: PHP_SELF, variabili, direttive etc

    Ciao a tutti!

    ero indeciso se postare qui o su Programmare, si grazie - Questa è la sezione Programmare, si grazie essendo relativo anche alla programmazione in linguaggio PHP, ma visto che si parlerà anche in via generale di settaggi e variabili su Hosting o Server ho deciso di postarlo quì. Poi il buon Asterix nel caso può sempre spostarla se avrà il piacere di leggerla.

    Sto riprendendo dei vecchi miei script php, e sto riscontrando parecchi errori con la versione attuale di PHP. Vediamo come riuscire a correggerli insieme.

    PREMESSE


    Se dovete fare un sito internet, sia semplice che con dei complessi script PHP è meglio, prima di metterlo online, testarlo con strumenti offline. Personalmente utilizzo con soddisfazione XAMPP che è per Linux, Windows, mac os X e Solaris ed è gratuito - Per favore controlla ogni singola licenza prodotto per avere una visione d'insieme, di cosa è consentito e cosa non è. Nel caso di uso commerciale per favore dai un’occhiata alle licenze (specialmente di MySQL), per XAMPP in sé è consentito l’uso commerciale - e anche in versione portable per win, quella che consiglio.

    Cosa significa Guida aperta? Significa che è una guida dove altri possono aggiungere tips & tricks, consigli e protezioni di sicurezza.

    Come faccio a sapere le caratteristiche PHP del mio sito? Crea uno script php con il comando
    Codice HTML:
    Only registered members can view HTML code.
    fate l'upload ed eseguitelo. Avrete tutte le informazioni che vi servono, comprese le direttive settate.

    Che differenza c'è tra hosting e vps? Un hosting è uno spazio web "condiviso" con altri, non c'è la possibilità di modificare direttive o aggiungere moduli. Un vps è un vero e proprio server anche se virtuale (non è una macchina fisica), di solito anche con un IP fisso, con o senza un pannello di controllo dove si può modificare direttive e aggiungere o togliere moduli (esempio mod_ssl). Le differenze sono anche di prezzo, visto che il vps costa di più ma si ha molta più libertà di azione. Il provider vi darà una determinata quantità di ram, uno spazio disco e un tot di traffico dati.
    Più del vps è il cosiddetto housing, ovvero un PC dedicato dove viene installato il sistema operativo ed eventuale pannello di controllo e il provider da la connessione internet. Costo molto più alto ma si ha il controllo totale su tutto, si ha la la totalità del disco, ram e cpu. Viene dato solitamente un determinato numero di GB al mese compresi nel canone, gli altri sono a pagamento.

    INIZIAMO

    Iniziamo a dire che inizialmente i miei scripit davano parecchi errori, perché la sintassi dei comandi php era nella forma
    <?
    e non
    <?php
    dopo alcune ricerche sul manuale php ho scoperto la funzionalità (direttiva)
    Codice HTML:
    Only registered members can view HTML code.
    che identifica anche i comandi "ridotti" come <?

    Continuiamo con il PHP_SELF. A che serve? Da quello che ho capito serve per avere il nome dell'attuale script in esecuzione.

    Un esempio di utilizzo è quello di metterlo in un form all'interno di uno script che, nel caso sia rinominato lo script, può essere utilizzato comunque.

    Nelle vecchie versioni di php la variabile PHP_SELF non viene assegnata automaticamente dal PHP 4.2.0 perché per default sul php.ini c'è
    Codice:
    Only registered members can view code.
    per problemi di sicurezza. Questo settaggio serviva per assegnare automaticamente le variabili non definite.
    Dico serviva perché essendo una funzionalità deprecata dalla PHP 5.4.0 è stata proprio rimossa.
    Si potrebbe anche emulare la register_global, ma è preferibile utilizzare il metodo che adesso vi descrivo.

    Il problema con i vecchi script è che PHP_SELF, e tutte le altre variabili, non vengono assegnate automaticamente, quindi ci sarà un "Notice: Undefined variable: PHP_SELF in link on line numero riga" (esempio relativo a PHP_SELF).
    Dal PHP 4.1.0 sono state fatte le cosiddette matrici superglobali (variables_order = "EGPCS" di default). In questo momento ci focalizzeremo su $_SERVER con l'indice PHP_SELF, quindi avremo sui vecchi script, per esempio
    Codice HTML:
    Only registered members can view HTML code.
    utilizzando le matrici superglobali
    Codice HTML:
    Only registered members can view HTML code.
    Per le altre variabili bisogna assegnarle preventivamente oppure fare un controllo se la variabile c'è o non c'è e programmare di conseguenza con un if else.

    Visto che stiamo parlando anche di FORM (o di GET) allora consiglio l'utlizzo della funzione htmlspecialchars che converte in "formato HTML" certi caratteri: la e commerciale '&' che diventa '&amp;', i doppi apici in '&quot;' e '<' e '>' in '&lt;' e '&gt;' come default.
    Codice:
    Only registered members can view code.
    il parametro quote_style di default è ENT_COMPAT ma è possibile anche mettere ENT_QUOTES che trasforma anche il singolo apice in
    Codice:
    Only registered members can view code.
    oppure ENT_NOQUOTES che che non converte gli apici. Dipende da che cosa volete.

    Chiaramente "se mi sbaglio mi corigerete" (cfr. Papa Giovanni Paolo II che diverrà Santo il 27 aprile 2014, 16 ottobre 1978)

    Mi aspetto da Voi ulteriori consigli, sopratutto di sicurezza, o qualsiasi cosa che può aiutare per modificare vecchi script PHP da condividere come da tradizione di CT!

    Se si tratta di mera programmazione di script php su Programmare, si grazie - Questa è la sezione Programmare, si grazie con il nuovo prefix PHP (grazie ) mentre nel caso di settaggi su server / hosting quì (cfr. Asterix).



    Fonte principale: Manuale PHP in italiano
    Ultima modifica di Kirk78; 24-11-13 alle 19: 40.

  2. # ADS
    Google Adsense Circuito Adsense
    Data registrazione
    da sempre
    Località
    mondo google
    Messaggi
    molti
     
  3. #2
    Data registrazione
    Feb 2010
    Località
    NCC1701
    Messaggi
    3,822
    Grazie dati 
    1,307
    Grazie ricevuti 
    1,323
    Ringraziato in
    996 post

    session_register

    Ciao webmaniaci,

    alle volte la funzione session_register() potrebbe non essere disponibile (pare sia deprecata e/o eliminata dipende dagli hosting o dal provider). Una soluzione potrebbe essere quella di crearla noi in questa maniera:

    Codice:
    Only registered members can view code.

Tags per questo thread

Segnalibri

Regole di scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Cookies:direttiva 2009/136/CE (E-Privacy)

Il sito utilizza cookies propri e di terze parti per maggiori informazioni faq - Termini di servizio - Cookies
Il forum non puo' funzionare senza l'uso dei cookies pertanto l'uso della community è vincolato dall'accettazione degli stessi, nel caso contrario siete pregati di lasciare la community, proseguendo la navigazione acconsenti all’uso dei cookie