Ho creato un sito in php4 e con la versione 5 ho riscontrato già un primo problema: "Undefined variable: HTTP_POST_VARS ...".
Dove posso trovare informazioni sulla retrocompatibilità tra php5 e php4?
Grazie
:bye:
Ho creato un sito in php4 e con la versione 5 ho riscontrato già un primo problema: "Undefined variable: HTTP_POST_VARS ...".
Dove posso trovare informazioni sulla retrocompatibilità tra php5 e php4?
Grazie
:bye:
Dà un'occhiata
nel php.ini setta la seguente direttiva:
register_long_arrays = On
comunque non usare più quello stile.
:bye:
Salve ragazzi, dato che dovevo reinstallare tutto, avendo cambiato scheda madre, ho fatto la scelta di installare apache 2 , Php5 e Mysql 5.
Ho solo un problema:
le variabili normalmente definite in modo associativo (es $pippo = 1 oppure $pluto="sono pluto") non vengono rilevate visualizzando un errore del tipo "Notice: Undefined variable: prefix_azienda"
Ho provato a impostare il parametro nel php.in : register_long_arrays = on
MA NON SUCCEDE NULLA. Ho cercato in tutte le impostazioni del php.ini e non ho trovato nulla... chi può aiutarmi?
Ultima domanda: Ma come si dovrebbero definire le variabili in PHP5 ? Io so comne si fa in jva, in Visual Basic in Asp e in Jsp .. ma in PHP5 (ovviamente è solo una curiosità dato che preferisco il metodo associativo classico).
Grazie in anticipo
non credo che il problema derivi dalla valorizzazione delle variabili, che non ha subito cambiamenti, ma piuttosto dal fatto che gli errori di tipo NOTICE in PHP4 non venivano mostrati di default, cosa che invece avviene in PHP5.
Quindi controlla se effettivamente a quella variabile non è stato assegnato alcun valore. Ti ricordo che ad ogni esecuzione di uno script PHP tutte le variabili, tranne $_SESSION, vengono perse.
:bye:
La strada è sbagliata: gli errori di tipo NOTICE nel PHP5 che ho installato NON venivano mostrati di default, ho dovuto io chiedere di mostrarmi tutti gli errori compreso i NOTICE. Il primo stato era che le pagine in php mi venivano presentate tuttte bianche e alla richiesta del codice html vedevo le righe di PHP del primo file incluso.
Le pagine che sto testando sono siti gia pubblicati e funzionanti sia in locale (prima dell'aggiornamento a PHP5) sia quelli pubblicati sul web, onde per cui non c'entra il fatto che la variabile si impostata davvero o no e nemmeno il discorso sulle variabili di sessione. Ti ringrazio e spero che abbiate altre indicazioni per risolvere l'arcano.
P.S. non sono un genio ma sono 7 anni che programmo in PHP.
potrebbe dipendere da una variazione del register_global?
potresti riportare una parte del codice che ha smesso di funzionare, magari dicendo quali righe danno il NOTICE?
Sono come S. Tommaso :angel:, se non vedo non credo :)
:bye:
come S. Tomasicchio vorrai dire ;D
dannazione, mi avete scoperto :coolsmiley:
Ok faccio un sunto...
Pagina index.php
<?php
session_start();
// variabili di navigazione
session_register("var1");
session_register("var2");
session_register("var3");
include("./_include/config.php");
...
?>
All'interno di config.php:
$prefix_azienda = "xxx"
Il risultato:
Notice: Undefined variable: prefix_azienda in G:\Generale\www\xxxx\index.php on line 23
il ; nell'assegnazione è solo una svista riportando il codice, vero?
L'assegnazione è la riga 23?
OK!!
prima parte pagina index.php
<?php
session_start();
// variabili di navigazione
session_register("xxxx");
session_register("yyyy");
....
include("./_include/config.php");
include("./_include/".$prefix_azienda."_dll.php");
parte del file config.php
<?php
/* parametri del database */
$db_server = "localhost";
$db_username = "xxxx";
$db_password = "xxxx";
$db_name = "xxxx";
// dati accesso default
$dbute_server = "localhost";
$dbute_username = "xxxx";
$dbute_password = "xxxx";
$dbute_name = "xxxx";
// costanti posiozione cartelle
$nome_azienda = "Carta dei Servizi"; // prefisso file azienda
if (!isset($prefix_azienda)) $prefix_azienda = "cser"; // prefisso file generali
$prefix_admin = "xyz0"; // prefisso file administrator
$prefix_table = "xyz1"; // prefisso tabelle generiche
$prefix_tab = "xyz2"; // prefisso tabelle
$prefix_ana = "xyz3"; // prefisso anagrafiche
?>
La prima variabile che utilizza è la $prefix_azienda quando cerca di includere il file ".$prefix_azienda."_dll.php
ed ovviamente visto che da' errore proprio su quella variabile produce:
Notice: Undefined variable: prefix_azienda in G:\Generale\www\Cartaservizi2006\index.php on line 23
Warning: include(./_include/_dll.php) [function.include]: failed to open stream: No such file or directory in G:\Generale\www\Cartaservizi2006\index.php on line 23
Warning: include() [function.include]: Failed opening './_include/_dll.php' for inclusion (include_path='.;C:\php5\pear') in G:\Generale\www\Cartaservizi2006\index.php on line 23
Fatal error: Call to undefined function connect_db() in G:\Generale\www\Cartaservizi2006\index.php on line 26
Prova a mettere dopo
include("./_include/config.php");
l'istruzione:
var_dump($GLOBALS);
exit();
e leggi tutte le variabili settate.
:bye: