|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
PHP e register_globals
Apro questa discussione per cercare di capire una cosa che fin'ora mi ha fatto dannare!
SCUSATE SE IL POST E' LUNGO, VOLEVO CERCARE DI SPIEGARMI, CERCATE DI LEGGERLO PER INTERO NON E' DI DIFFICILE COMPRENSIONE Sto cercando di muovere i primi passi in php, sto utilizzando il libro PHP4 Guida per lo sviluppatore , (cliccate e cercate il titolo fra Linguaggi e programmazione) qualcuno lo conosce o lo usa o lo ha usato in passato? Se qualcuno ha due minuti di tempo da dedicarmi provi per cortesia a lanciare il seguente programma: <HTML> <HEAD></HEAD> <BODY> <FORM METHOD=GET ACTION="text.php"> Scrivi qualcosa qui: <INPUT NAME="author" TYPE="TEXT"> <BR> <BR> <INPUT TYPE=SUBMIT> </FORM> </BODY> </HTML> salvato come text.html e poi il seguente: <HTML> <HEAD></HEAD> <BODY> Il testo scritto è: <?php echo $author; ?> </BODY> </HTML> salvato come text.php Questo programma è banalissimo ma non funziona, almeno non sul mio pc! Prima di consigliarmi di seguire le istruzioni per installare un webserver sul mio pc o di seguire passo passo quello scritto in questo o quell'altro sito, vorrei che provaste a far girare sul vostro pc questo codice che ho postato! Nel file .php uso una variabile "author" della quale ne voglio il valore $author. Tale file .php viene aperto quando si clicca sul pulsante submit grazie alla seguente riga messa nel primo file text.html: <FORM METHOD=GET ACTION="text.php"> il metodo usato è GET ed effettivamente in coda all'indirizzo del secondo file (.php) si legge ?author="testo immesso nella casella di testo del primo file", la variabile viene cioè attaccata correttamente alla coda dell'indirizzo della pagina aperta, ma non viene però poi visualizzata nella finestra aperta! Compare infatti la scritta: Il testo scritto è: senza quindi il valore della variabile author! In sostanza il secondo file (.php) utilizza una variabile (variabile author) il cui valore viene assegnato nel primo file (.html). Da quello che ho capito in questi giorni, per poter far funzionare questo esempio bisogna settare su on il register_globals: register_globals=on nel file php.ini che solitamente si trova nella directory c:\windows. Questo è anche scritto all'ultima pagina del primo capitolo nel mio libro, potete trovare il formato pdf cliccando qui. Vorrei precisare che nel mio caso è stata segiuta l'installazione di Internet Information Server seguendo pari pari i passi presenti su questo capitolo (io uso Windows XP e ho seguito i passi presenti per Windows 2000 che comunque credo siano corretti perchè infatti non ho problemi con il webserver ma con l'installazione php). Il fatto è che questo registro io l'ho settato proprio su on, ma ugualmente il programma non funziona!! Ho provato ad installare varie versioni di php: 4.0.2, 4.2.3, 4.3.2 ma non ho ottenuto risultati utili!! Volevo che qualcuno provasse a farlo girare per vedere se è un problema della mia installazione! O se qualcuno mi sapesse dire qualcosa in più sul parametro register_globals! Ho scaricato i codici sorgente di tutti gli esempi presenti nel mio libro e ho provato ad eseguirne due o tre. La maggior parte degli esempi usa proprio queste variabili globali e quindi la maggior parte di questi esempi non funziona!!! Aprendo il file php.ini ho poi in un secondo momento letto questa cosa: ; - register_globals = Off [Security, Performance] ; Global variables are no longer registered for input data (POST, GET, cookies, ; environment and other server variables). Instead of using $foo, you must use ; you can use $_REQUEST["foo"] (includes any variable that arrives through the ; request, namely, POST, GET and cookie variables), or use one of the specific ; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending ; on where the input originates. Also, you can look at the ; import_request_variables() function. ; Note that register_globals is going to be depracated (i.e., turned off by ; default) in the next version of PHP, because it often leads to security bugs. ; Read http://php.net/manual/en/security.registerglobals.php for further ; information. In sostanza se ho capito bene si dice che questo registro è meglio settarlo su off per questioni di sicurezza e che nelle prossime versioni di php tale registro non esisterà più proprio per migliorare la sicurezza del linguaggio!! MA ALLORA IO STO STUDIANDO SU UN LIBRO CHE FA DEGLI ESEMPI SCORRETTI E IN UN PROSSIMO FUTURO NON UTILIZZABILI oppure sono solo un po' in paranoia? AIUTATEMI PLEASEEEEEEEEEEEEEEEE!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
UPPETE!!
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
Quote:
esatto!!!!!!!!!!!!! al posto di $author usa $_GET['author'], infatti dalle nuove versioni di php dovresti usare gli array $_GET, $_POST ecc.
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Grazie della risposta prima di tutto!!
Ho provato ad usare la funzione che mi hai detto tu, il codice del secondo esempio ora è il seguente: <HTML> <HEAD></HEAD> <BODY> Il testo scritto è: <?php $_GET["author"]; ?> </BODY> </HTML> ma lanciando il primo file non ci sono variazioni rispetto al comportamento avuto in precedenza! Non funziona, ho provato anche le virgolette singole all'intenro della parentesi, ma non ho risolto nulla! Forse ho sbagliato ad utilizzare la funzione GET (che non conosco)!?! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Ho provato anche così:
<HTML> <HEAD></HEAD> <BODY> Il testo scritto è: <?php echo $_GET['author']; ?> </BODY> </HTML> ma non riesco a farlo funzionare!!!!! |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Jun 2002
Messaggi: 1
|
devi scrivere
echo $_GET["author"]; doppie apici nn singole! |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Ho provato anche con le virgolette aperte e chiuse: ""!
Ma non funziona ugualmente!! Eppure in coda all'indirizzo del secondo file c'è la variabile con il valore corretto!! Non capisco dove sia il problema!! Dovrebbe funzionare!! |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
Quote:
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Niente, non funziona!!!
Ma a voi funziona, vorrei sapere questo!! |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
devi scrivere anche <input type="submit">
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Allora per non fare confuzione posto il codice così come è adesso!
Primo file: <HTML> <HEAD></HEAD> <BODY> <FORM METHOD="get" ACTION="text.php"> Scrivi qualcosa qui: <INPUT NAME="author" TYPE="TEXT"> <BR> <BR> <INPUT TYPE="SUBMIT"> </FORM> </BODY> </HTML> Secondo file: <HTML> <HEAD></HEAD> <BODY> Il testo scritto è: <?php echo $_GET["author"]; ?> </BODY> </HTML> Così come è scritto a me non funziona!! C'è qualcuno a cui funziona? Se sì, allora significa che evidentemente il mio problema è nell'installazione di php sul mio pc! A qualcuno funziona scritto così come è? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
UPP!!
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
ho fatto un copia e incolla del codice in due file e tutto funziona perfettamente.
ciao |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Grazie mille .. volevo sentire proprio questo!!
Significa che la procedura di installzione che ho fatto seguendo le istruzioni del libro non va bene, almeno per la versione di php che ho scaricato io e per il sistema operativo che utilzzo!! Proverò a fare una nuova installazione!! Grazie a tutti!!! |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bologna
Messaggi: 1004
|
Per mancanza di tempo non ho potuto ancora provare ad installare nuovamente PHP sul mio pc, intanto volevo chiedere a qualcuno un consiglio per un buon manuale!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:33.



















