PDA

View Full Version : [APACHE + PHP] Variabili GET e POST in localhost


Robx
30-09-2006, 15:18
Ciao, ho installato sul mio PC (Win XP Pro SP2) Apache 2.2.3 e PHP 5.2. Il problema è che in localhost non riesco a passare i valori alle variabili GET e POST attraverso un form, esse risultano infatti essere sempre vuote. Tutto ok invece da web. Ci sono particolari settaggi da fare? Grazie!

andbin
30-09-2006, 19:40
Ciao, ho installato sul mio PC (Win XP Pro SP2) Apache 2.2.3 e PHP 5.2. Il problema è che in localhost non riesco a passare i valori alle variabili GET e POST attraverso un form, esse risultano infatti essere sempre vuote. Tutto ok invece da web. Ci sono particolari settaggi da fare? Grazie!Scusa se rispondo con una domanda, ma i parametri come li prendi?? Usando gli array $_GET e $_POST?? Questi devono funzionare per forza!
Non è che stai cercando di prendere i parametri tramite normali variabili??

Mi spiego meglio: prova.php?testo=ciao

e tu stai cercando di usare $testo ???

Questo sarebbe fattibile (sebbene sconsigliato) ma solo se la direttiva register_globals è "on". Per default è "off" a partire dal PHP 4.2. Il metodo più corretto è quindi quello di usare gli array $_GET e $_POST.

Robx
02-10-2006, 14:51
Ti ringrazio della risposta!

Quello che sbagliavo era che avviavo il file html direttamente cliccandoci sopra anziché digitare a mano l'indirizzo "http://localhost..." e quindi le istruzioni php venivano ignorate :doh:

C'è un modo per rendere un po' più comodo il procedimento? Vorrei cioè che il browser sostituisse automaticamente il percorso "file:///C:/Programmi/Apache2/htdocs/" con "http://localhost/".

PS: La tua spiegazione mi è stata comunque utilissima perchè anche quei concetti non mi erano del tutto chiari. Ero stato fuorviato da un esempio trovato in rete, in cui usavano una variabile globale chiamandola "get" (scelta piuttosto infelice direi) senza fare uso degli array.

andbin
02-10-2006, 15:07
C'è un modo per rendere un po' più comodo il procedimento? Vorrei cioè che il browser sostituisse automaticamente il percorso "file:///C:/Programmi/Apache2/htdocs/" con "http://localhost/".Certo ... anzi, devi passare attraverso il protocollo http, altrimenti i file .php non verrebbero elaborati come tali!!

Non so come è stato installato/configurato il tuo Apache, comunque il modo più semplice è quello di andare nel file httpd.conf (directory \conf di Apache) e impostare la direttiva DocumentRoot in modo che punti alla directory che fa da "home" del sito.
E ovviamente far ripartire Apache

Robx
02-10-2006, 16:03
Il parametro l'ho già impostato. Vorrei però fare in modo che i file php funzionassero anche aprendoli cliccandoci sopra, e non solo digitando l'indirizzo preceduto da localhost nella barra degli indirizzi del browser. Per fare un esempio concreto: Ho impostato:
DocumentRoot "C:/programmi/apache2/htdocs"
Ho un file prova.php situato in "C:\Programmi\Apache2\htdocs"

Caso A: apro il browser e digito: "http://localhost/prova.php" -> funziona.

Caso B: clicco 2 volte sul file prova.php, il file viene aperto dal browser ma non funziona. Nella barra degli indirizzi non appare "http://localhost/prova.php" ma "file:///C:/Programmi/Apache2/htdocs/prova.php". E' normale o trascuro qualcosa?

Grazie ancora della disponibilità! :)

andbin
02-10-2006, 16:19
Il parametro l'ho già impostato. Vorrei però fare in modo che i file php funzionassero anche aprendoli cliccandoci sopraNo, non puoi. Devi sempre passare attraverso il protocollo http. Un file .php viene elaborato/eseguito dal server. Cliccando direttamente sul file .php (es. da Risorse del computer) bisogna anche vedere a cosa è associata l'estensione .php, tra l'altro!!
Usando il protocollo file://...., il browser legge il file "in locale", come se fosse una pagina web statica (come un .html). In pratica non vedresti l'elaborazione del .php ma il suo codice!!

Per vedere se tutto funziona (l'aggancio tra PHP e Apache, intendo), fai un file .php che contiene:
<?php
phpinfo ();
?>e poi aprilo attraverso il protocollo http su localhost. Se tutto è ok, ti appare la pagina con le info sul PHP.

Robx
02-10-2006, 16:52
Grazie, sei stato chiarissimo. Il php è installato correttamente, vuol dire che vincerò la pigrizia e scriverò l'indirizzo manualmente. :fagiano: