08/11/2010 18:09:51
Siete veramente stati gentilissimi!Se dovessi avere ancora problemi posso contare su di voi *ç* Grazie tantissimo!
Ora mi metto li in attesa per vedere quando posso fare l'upload dei file anche perchè ho la land che attende XD
Tra l'altro domanda lampo: usando gdrcd extreme/aranlab ci potrebbero essere problemi di compatibilità del codice php? Perchè per esempio su altervista era possibile settare l'utilizzo di php4 o php5 ed avendo io programmato in php4 ho il timore che qualcosa non vada ç_ç
08/11/2010 18:19:28 e modificato da gdrking il 08/11/2010 18:26:59
Aruba, nella versione Linux non abilita il php4 dicendo:
08/11/2010 18:53:15
08/11/2010 21:00:20
Ed eccomi di nuovo, tanto per curiosità mi sono messa li a spulciare il vademecum di aruba ed ho trovato questo post
La nuova versione di PHP e' stata notevolmente potenziata grazie al motore Zend Engine 2, oltre a numerose nuove funzionalita' implementate.
Gli sviluppatori della piattaforma hanno tenuto in grande considerazione la necessita' di compatibilita' verso le applicazioni e gli script creati per la versione precedente, ma alcune differenze nel motore rendono necessarie alcune modifiche al vecchio codice ed alcuni accorgimenti nella scrittura del nuovo. Direttamente dalle pagine di supporto di php.net, riportiamo i punti salienti: tutti i links si aprono in nuova finestra.
Cambiamenti non compatibili (fonte completa, php.net)
* Ci sono alcune nuove parole chiave riservate.
* strrpos() e strripos() ora utilizzano l'intera stringa come argomento di ricerca.
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
* L'uso illegale degli offset delle stringhe causa E_ERROR invece di E_WARNING. Un esempio di utilizzo illegale è: $str = 'abc'; unset($str[0]);.
* array_merge() è stata cambiata per accettare solo array. Se viene passata una variabile che non è un array, un E_WARNING viene lanciato per ogni parametro. Prestare attenzione, poiché il codice può cominciare ad emettere E_WARNING improvvisamente.
* La variabile server PATH_TRANSLATED e' stata modificata: vedere anche la descrizione di $_SERVER['PATH_TRANSLATED'] nel manuale.
* Un oggetto senza proprietà non è più considerato "vuoto".
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// Viene eseguito
}
?>
* In alcuni casi le classi devono essere dichiarate prima dell'utilizzo. Questo succede solo se è usata qualcuna delle nuove caratteristiche di PHP 5 (come le interfacce). In caso contrario il comportamento è quello vecchio.
<?php
//funziona senza errori:
$a = new a();
class a {
}
//emette un errore:
$a = new b();
interface c{
}
class b implements c {
}
?>
* get_class(), get_parent_class() e get_class_methods() ora restituiscono il nome di classi/metodi come sono dichiarati (case-sensitive) il che può portare a problemi in vecchi script che si basano sul comportamento precedente (il nome di classe/metodo era sempre restituito a caratteri minuscoli). Una soluzione possibile è quella di cercare queste funzioni negli script ed utilizzare strtolower(). Questa modifica alla sensibilità di maiuscole/minuscole si applica anche alle costanti magiche predefinite __CLASS__, __METHOD__, e __FUNCTION__. I valori sono restituiti esattamente come dichiarati (case-sensitive).
* ip2long() ora restituisce FALSE quando un IP address non valido è passata come argomento alla funzione, e non più -1.
* Se esistono funzioni definite in un file incluso, queste possono essere utilizzate nel file principale indipendentemente dal fatto che siano prima di return() o dopo. Se il file è incluso due volte, PHP 5 emette un errore fatale poiché le funzioni erano già dichiarate. Si raccomanda di utilizzare include_once() invece di controllare se il file è stato già incluso e fare un return condizionato all'interno del file incluso.
Inoltre:
-Non si puo' riassegnare $this : l'esempio che segue funziona su PHP4 (mostra "OK"), mentre produce un "fatal error" sotto PHP5:
<?
class a
{
var $text;
function a() { $this->text = 'OK'; }
}
class b
{
var $text = 'NOT OK';
function b() { $this = new a(); }
}
$myClass = new b();
echo $myClass->text;
?>
-Non sono piu' consentiti commenti al codice con questa sintassi
<?=//commento?>
-Constructors e reference, attenzione, il seguente esempio funziona sotto PHP4 mentre produce un avviso E_NOTICE su PHP5. In questo caso il problema si risolve rimuovendo &
<?
class MyClass { function MyClass() { echo('OK'); } }
$myObj = null;
$myObj &= new MyClass();
?>
In PHP5 sono inoltre disponibili nuove funzioni , ad esempio in merito al trattamento array:
* array_combine() - Crea un array utilizzando un array per le chiavi e un altro per i valori.
* array_diff_uassoc() - Calcola la differenza tra array con la possibilità di controllare gli indici mediante una funzione di callback fornita dall'utente
* array_udiff() - Calcola la differenza tra array utilizzando una funzione callback per la comparazione dei dati
* array_udiff_assoc() - Calcola la differenza tra array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback
* array_udiff_uassoc() - Calcola la differenza tra array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback. La verifica degli indici è fatta utilizzando una funzione di callback
* array_walk_recursive() - Applica una funzione utente in modo ricorsivo ad ogni elemento di un array
* array_uintersect_assoc() - Calcola l'intersezione di array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback
* array_uintersect_uassoc() - Calcola l'intersezione di array con la possibilità di verificare gli indici. Sia i valori che gli indici sono comparati utilizzando funzioni di callback
* array_uintersect() - Calcola l'intersezione di array. I valori sono comparati utilizzando una funzione di callback
Se usate applicazioni di terze parti, cms, portali, forums, guestbook, ecc, assicuratevi che l'applicazione sia compatibile con PHP5 presso il supporto-casa madre dell'applicazione o script in questione.
-------------------------------------
Praticamente vengono spiegati i vari fatal error cui si può andare incontro utilizzando il php 4.9 e nn il 5.
Essendo abbastanza testona mi sono messa li e nel mio dominio su altervista ho tolto l'opzione che mi permette di avere il php 4 sostituendolo col 5.
Mi è praticamente esplosa la land!
Volevo capire se c'erano degli accorgimenti per evitare la cosa, per esempio è possibile PAGANDO utilizzare il php 4.9? Sul vademecum ho trovato giusto quello che ho inserito sull'argomento...
Ho notato poi che a parte la scheda.php dove mi spara un fatal error potente del tipo
Fatal error: fatal flex scanner internal error--end of buffer missed in /membri/sito/scheda.php on line 522
l'errore più frequente è il non funzionamento dei form che vanno a modificare i dati nel database.Sto compilando una lunga lista solo che se non mi vengono fuori dei fatal error la maggior parte delle volte non so cosa toccare per far funzionare il tutto....
Help!
08/11/2010 21:38:39
09/11/2010 00:42:56
di base linux o windows può cambiare molto poco in regime di hosting.
Nel caso di aruba la differenza è maggiore dato che (inspiegabilmente) diverse librerie php non sono caricate su ambiente windows.
Ma non sono librerie comunemente usate e in un'ottica gdrcd è irrilevante.
09/11/2010 09:18:17
Oki credo di aver capito, almeno in parte XD
Stamattina speranzosa ho trasferito i file del gdr su auruba tramite ftp! (Yeah!) Unica cosa non mi si connette al db sebbene io inserisca i dati corretti nella sezione pass/password.inc.php
Continua a darmi errore nella linea 2 di Open2.php che sarebbe quella dove sono specificati i dati per il collegamento al db.
Su altervista bastava lasciare
09/11/2010 10:27:34 e modificato da ft_staff il 09/11/2010 10:28:34
hai sostituito la dicitura localhost con l'ip del server del db ?
edit: Eventualmente, riporta anche l'errore così capiamo se è effettivamente di connessione e non magari un problema sintattico ;-)
09/11/2010 12:26:39
Si era quello il problema e sono riuscita a risolvere, ora la nota dolente, il sito non funziona.Ma nulla!Nemmeno la index!!!!
Mi da questo errore
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:Inetpubwebssitoindex.php on line 27
E alla righe 27 ho già individuato di cosa si tratta
09/11/2010 12:58:15
Forse non è concesso il comando SQL in questione.
Prova a modificare la riga di esecuzione della query
Discussione seguita da
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Hosting e Server Elenco Forum
outrunstaff ha risposto alla discussione: Project OutRun PbC