PHP4 e PHP5

z.cristiano

Utente Attivo
16 Giu 2007
145
0
16
Ciao..
Una spiegazione...

Siccome programmo sempre PHP 4 - MYSQL e ho un server mio, il mio sistemista mi ha detto che programmare PHP 4 ha il problema di sicurezza e mi consiglia di programmare e studiare la versione PHP 5.3 e quindi mi tocca comprare libri, magari dovrei comprare anche PHP 6..

Quindi, secondo te, il sistemista abbia ragione?
Anche perchè, l'altra volta avevo fatto il codice PHP 4 di

FWRITE - FOPEN - ETC che consente di creare automaticamente i file, sul mio computer funziona, mentre sul mio server no e allora, ho chiesto al sistemista di verificare questo problema e mi ha risposto che non c'è nessun problema e funziona e gli ho chiesto come e infine mi ha detto che ha provato PHP 5 e funziona bene...

Quindi per curiosità...
Il passaggio tra PHP 4 e PHP 5 è tutto cambiato attraverso le query, variabili, sintassi, etc?

Ma mi può dare qualche esempio?
Una query di PHP 4 in PHP 5?

Grazie mille
Cristiano
 
In realtà il fatto che sia orientato agli oggetti, e pure male, non c'entra nulla, infatti anche se malissimo pure la versione 4 dava qualche possibilità di programmare ad oggetti.
Il fatto è che la versione 4 non è più supportata da PHP e quindi non va assolutamente più preso in considerazione!
A parte questo non è che ci sta molto da studiare se già conosci la versione 4.
Le cose "nuove" da imparare sono la gestione dei database in PDO che è essenziale se vuoi scrivere librerie stabili e performanti e sicuramente l'approccio OOP che seppur inperfetta è sempre più importante.
Quindi un libro solo ti basta :-)
 
Ciao...
Grazie mille...
Va bene, quindi mi basta comprar eun solo libro PHP 5 e anche PHP 5 - MYSQL...

Grazie mille ancora
Buona pasqua
 
No meglio PHP5 non il 6.
Se consideri che ci sono ancora molti server in giro per la rete che usano il 4 figurati se il 6 diventerà importante in breve.
Il problema non sono le versioni del linguaggio ma le applicazioni che ci girano su.
Anche se sei un bravo sviluppatore e non lo metto in dubbio, dubito però che scriverai una nuova killer application come Facebook, anzi me lo auguro per te, ma anche in quel caso poi rischi di dover riscrivere il motore del linguaggio di scripting che usi :D
In realtà molto del lavoro che farai sarà scrivere o modificare moduli di aplicazioni esistenti, come Joomla! o Wordpress o aggiustare server perché quelle stesse applicazioni ci girino su.
Figurati che fino a tre anni fa passare a PHP 5 e MySQL 5 era una sofferenza perché significava litigare con i clienti ai quali non girava più il sito.... pianti a dirotto e parolacce!
Insomma se vuoi iniziare a leggere il 6 accomodati, il vecchio adagio impara l'arte e mettila da parte in questo campo è essenziale, ma nella pratica andare troppo avanti si rischia di non poter lavorare poi.
Se invece ti interessa davvero essere "l'uomo di punta" allora meglio del PHP impara Ruby o Python, ma soprattutto ruby.
Sono linguaggi ad oggetti puri molto più performanti del PHP, oppure (lo dico a denti stretti ma è la verità) il paradigna .NET molto usato nelle aziende.
 
se impari partendo direttamente dal 6 difficilmente non sarai in grado di sviluppare applicazioni con il 5; su Ruby concordo con MarcoGrazia
 
se impari partendo direttamente dal 6 difficilmente non sarai in grado di sviluppare applicazioni con il 5; su Ruby concordo con MarcoGrazia
E allora tanto vale che lascia stare, seguendo il tuo discorso anche tra 4 e 5 le differenze sono poche e qundi tanto vale impararsele "su strada".
Ma il 6 è ancora troppo lontano, rischia di imparare qualche cosa che poi una volta reso stabile sarà comunque differente.
Non ti sembra che per una persona che deve lavorare sia meglio stare con i tempi invece di anticiparli?
 
E quindi??
:crying:

E' sconsigliabile PHP (4 - 5 - 6)?
Cosa posso fare? Per sviluppare applicazioni con massima sicurezza?
 
Con massima sicurezza cosa intendi?
PHP non va bene per applicazioni supersicure, o meglio andrebbe pure bene ma è troppo complicato renderlo una cassaforte mentre è relativamente semplice renderlo instabile.
4, 5 o 6, dipende da cosa vuoi fare.
  • 4 sicuramente da dimenticare, non viene più sviluppato e sono sempre meno i server che lo supportano, purtroppo e qui lo dico poi fate come vi pare, Altervista lo supporta ancora, ho provato a chiedere nel forum tempo fa ma mi hanno quasi linciato, ho chiesto a Danesin (il vecchio e non più "paron") in privato e mi ha detto solo che sono scelte condivise (da chi?).
    Ora senza voler parlare male per forza di chi in Italia permette ancora lo sviluppo delle applicazioni in PHP gratuitamente, credo comunque che bisogna adeguarsi all'evoluzione, quindi 4 via!
  • 5 è lo stato dell'arte. Con le differenze che c'è tra 5.2.x e 5.3.x.
    La prima è l'ovvia prosecuzione della 4, miglioramento del supporto OOP, miglioramento, anzi avanzato supporto ai database, miglioramento delle vecchie funzioni tenute per questioni di compatibilità, aggiunta di altre cose di cui si sentiva il bisogno come ad esempio i filtri per i form.
    La 5.3.x è propedeutica alla 6, per come la vedo io è così al momento anche se viene comunque sviluppata non certo per insegnamento ma nella speranza che arrivino presto grosse applicazioni per essa.
    Solo il porting delle applicazioni permetterebbero il lancio della versione che sicuramente ha in embrione un cambiamento epocale, come ad esempio il suporto al formato utf-8 non ancora implementato però, o il supporto per i namespace.
  • 6 be guarda ti rimando alla pagina del manuale che ne parla http://it.php.net/manual/en/internals2.ze3.php simpatico vero? Una pagina vuota :D
Lo sviluppo del PHP è legato a quello che fa la società Zend che sta dietro il PHP stesso, se esce la versione 3 di Zend allora forse avremo la 6, ma prima che arrivi sui server passeranno comunque anni.
Il consiglio che ti do è di studiare le differenze tra 4 e 5, perché la 5 è adesso e la 4 non esiste più.
Ma di iniziare a guardare la 6, perché se come dicono sarà un cambiamento epocale allora è una versione importante, ma non sarà per domani però.
Magari segui i gruppi di discussione sul PHP, soprattutto quelli in inglese e poi di iscriverti alla mailinglist del grusp http://www.grusp.it/ e seguire i PHPDay.
 
E allora tanto vale che lascia stare, seguendo il tuo discorso anche tra 4 e 5 le differenze sono poche e qundi tanto vale impararsele "su strada".

Alla fin fine è proprio "su strada" che si impara, i libri li vedo più come una risorsa per la consultazione, ma per imparare ci vuole la pratica.
Tra PHP 4 e 5 le differenze non son poche, ma iniziare dalla versione più vecchia non avrebbe senso.
 
Appunto, PHP è più insicuro di altri linguaggi, per usare le parole di Antirez: la sicurezza non puo' essere affidata alla capacita' di non dimenticare mai un escape. [1] il problema appunto è che basta dimenticarsi qualche cosa e la sicurezza se ne va a farsi benedire.
Casi classici il $_POST (o $_GET) passato direttamente ad una variabile o peggio all'interno di una funzione senza un controllo su ciò che contiene, oppure la gestione delle sessioni che non è proprio perfetta ma anzi fa abbastanza schifo, basta pensare alla gestione del tempo di latenza che non è modificabile o meglio non funziona.
Io e un mio collega siamo diventati scemi dovendo implementare un sistema di timing che dopo 60 minuti faceva scadere la sessione ma tutto senza usare i cookie proprio per dare una maggiore sicurezza all'applicazione.
Niente. Alla fine abbiamo dovuto controllare l'ora di connessione noi tramite un file sul server, file che viene controllato ad ogni chiamata e confrontato con l'ora immediata, se la supera di 60 minuti la sessione scade.
Sistema pazzesco che fa perdere tempo anche alla macchina, pensa che ad ogni chiamata deve aprire il file e confrontarlo! Ma non c'è modo di fare altrimenti, ti basta leggere sulla pagina del manuale del PHP [2] tutti i commenti relativi al problema per capire che il bugs persiste.
E vogliamo parlare della gestione delle date? No vero?
Certo molto lavoro è stato fatto, ma moltissimo ne resta da fare è stato superato lo scoglio per cui tutti si erano messi contro chi non faceva che proporre nuove funzionalità (anche idiote) ma nessuno correggeva i vecchi bugs.
La versione 5 si può dire che è il nuovo corso, le funzioni solo C like style e finalmente solo quello. Non più nomi CamelCase e altri separati con l'underscore, menate certo, ma quando ti devi ricordare il nome di mille funzioni non lo sono più tanto, menate.
Ora i nomi di funzione compositi sono costruiti con il sistema dell'underscore, fanno eccezione i nomi abbreviati e insomma, quelli consolidato come i nomi delle funzioni di stringa, che so substr invece che sub_string oppure addcslash invece che add_c_slash.
E così pure la "purga" relativa alla priorità del passaggio dei parametri di una quasiasi funzione: prima il valore da cercare poi la stringa dove cercarlo, prima ogni funzione la feceva come gli pareva ed era facilòe sbagliarsi e creare un bug subdolo da trovarsi.
Insomma un bel guazzabuglio e lo è ancora, basta leggersi i bugs report per capire il caos che c'è dietro.
  • Fixed safe_mode validation inside tempnam() when the directory path does not end with a /). (Martin Jansen)
  • Fixed a possible open_basedir/safe_mode bypass in session extension identified by Grzegorz Stachowiak. (Ilia)
  • Improved LCG entropy. (Rasmus, Samy Kamkar)
E' in homepage [3] relativamente all'ultima versione stabile della serie 5.2.x la .13 appunto, dove si parla ancora di bugs relativi al safe_mode la più grande scemenza del PHP dopo le variabili globali (te le ricordi le $_HTTP_ECCETERA?)

Eppure si usa e molto anche. Punti di forza le migliaglia di applicazioni realizzate in PHP pronte da usarsi, ma ve li ricordate i bugs di PHPBB uno dei primi forum o dei vari PHPNUKE e fratelli, uno dei primi CMS; secoli fa certo, ma una delle applicazioni in tal senso più usate come Joomla! erano un colabrodo fino a pochi giorni fa e forse lo sono ancora.
Non voglio dire che la colpa è tutta del PHP, i programmatori ce la mettono tutta a sbagliare da soli ma certo il linguaggio gli da una mano.
Però è sicuramente il più usato, il più intuitivo, è gratuito e si trova su quasi ogni server in rete, l'accoppiata PHP/MySQL è davvero una gran cosa e per questo soltanto vale la pena studiarlo e stargli dietro.

[1] http://antirez.com/post/33
[2] http://it.php.net/manual/en/function.session-cache-expire.php
[3] http://it.php.net/
 
Non più nomi CamelCase e altri separati con l'underscore, menate certo, ma quando ti devi ricordare il nome di mille funzioni non lo sono più tanto, menate.
Una volta ho pensato lo stesso di Java che tra classi e metodi ha creato una specie di enciclopedia
 
Io credo che il problema, Java a parte, sia dovuto allo scarso controllo che c'era ai tempi della versione 4 del linguaggio; bello da vedersi con tutte quelle funzioni dedicate ma poi chi controllava tutto?
Prendi le Ming che dovevano permettere l'integrazione con Flash, funzionano certo ma ne è fortemente sconsigliato l'uso per via dello scarso o nullo controllo in fase di sviluppo.
Credo che il problema del PHP alla fine sia il fatto che si porta dietro ancora funzionalità come le Ming appunto sconsigliandone l'uso, ma buttatele nel gabinetto dico io.
Ne vuoi un'altra? Ok, le funzioni per i pdf, quelle ufficiali credo siano persino state eliminate, non so nemmeno chi le abbia mai veramente usate, comunque oggi nel PECL trovi le ottime Haru e le pure buone PDFlib se non ricordo male come si chiamano.
Le prime sono veramente ben fatte, le seconde anche ma devi stare attento alle funzioni deprecate (ci risiamo?) il tutto poi dentro una libreria che per scopi commerciali è a pagamento e anche salata, peggio per loro.
Io uso le Haru, mille volte meglio della buona fpdf ma è ancora nel PECL e chissà quanto ci resterà
Io ho un mio server di produzione se mi servono le Haru me le compilo ma in giro non si trovano e quindi vai di FPDF e simili, comoda certo ma mi tocca scaricarmi la libreria e linkarla, la Haru una volta compilata dal PECL è nel PHP. C'è una bella differenza.
E ancora! Nella pagina che ti spiega come installare una libreria PECL dopo ti dice che una volta compilata l'estensione la devi "linkare" nel file php.ini, giusto; oppure usare la funzione dl() (dynamic link) che però....
This function has been removed from some SAPI's in PHP 5.3.
Al solito in PHP la mano destra non sa cosa fa la sinistra al limite si spera che nella versione 5.3 non serva il pecl... :rolleyes: