Pagina 1 di 1
downgrade a php 4
Inviato: mer 3 ott 2007, 20:23
da tojo72
volevo chiedere un consiglio...
siccome le stragrande maggioranza dei webserver utilizza ancora php 4, fare dei test in locale con php 5 di slack 12 non sempre e' utile.
per cui vorrei tornare alla versione 4 di slack 11
cosa e' meglio fare?
1) rimuovere php 5 e installare il pkg di php 4
2) rimuovere php 4, apache, mysql di slack 12 e installare quelli di slack 11
3) rimuovere php 5 e compilare php4
4) ditemi voi
volevo inoltre sapere se e' possibile avere contemporaneamente php 4 e 5 (se si in che modo e come devo agire con apache)
Inviato: mer 3 ott 2007, 20:32
da aschenaz
Ma secondo me non è strettamente necessario downgradare. Basta non usare funzioni specifiche del php5, no?
In ogni caso, se hai a disposizione una seconda macchina, faresti meglio a testare con entrambi...
Inviato: mer 3 ott 2007, 20:46
da tojo72
uno script semplice semplice come questo con php 5 non va
html:
Codice: Seleziona tutto
<HTML>
<HEAD>
<TITLE>Semplice modulo di feedback</TITLE>
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="invia_semplicemodulo.php">
<P><strong>Il tuo nome:</strong><br>
<INPUT type="text" NAME="nome_mittente" SIZE=30></P>
<P><strong>Il tuo indirizzo e-mail:</strong><br>
<INPUT type="text" NAME="email_mittente" SIZE=30></P>
<P><strong>Messaggio:</strong><br>
<TEXTAREA NAME="messaggio" COLS=30 ROWS=5 WRAP=virtual></TEXTAREA></P>
<P><INPUT TYPE="submit" NAME="invio" VALUE="Invia il modulo!"></P>
</FORM>
</BODY>
</HTML>
php a cui punta la pagina precedente:
Codice: Seleziona tutto
<?
if (($nome_mittente == "") || ($email_mittente == "") || ($messaggio == "")) {
header("Location: http://localhost/semplice_modulo.html");
exit;
}
$messaggio = "E-MAIL INVIATA DAL SITO WEB\n";
$messaggio .= "Nome del mittente: $nome_mittente\n";
$messaggio .= "Indirizzo e-mail del mittente: $email_mittente\n";
$messaggio .= "Messaggio: $messaggio\n\n";
$destinatario = "tu@iltuoemail.it";
$oggetto = "Modulo di feedback completo del sito web";
$intestazionimail = "From: Il mio sito web<> \n";
$intestazionimail .= "Reply-To: $email_mittente\n\n";
mail($destinatario, $oggetto, $messaggio, $intestazionimail);
?>
<HTML>
<HEAD>
<TITLE>Il feedback è stato inviato</TITLE>
</HEAD>
<BODY>
<H1>L'e-mail seguente è stata inviata con successo:</H1>
<P><strong>Il tuo nome:</strong><br>
<? echo "$nome_mittente"; ?>
<P><strong>Il tuo indirizzo e-mail:</strong><br>
<? echo "$email_mittente"; ?>
<P><strong>Messaggio:</strong><br>
<? echo "$messaggio"; ?>
</BODY>
</HTML>

piu' semplice di cosi... si muore... MA NON VA
in pratica "post" non passa le stringhe al file in "action"
su slack 11 questo script funzionava
Inviato: mer 3 ott 2007, 21:24
da aschenaz
In questo caso non si tratta di php4 o php5: è una questione di register_globals.
Per motivi di sicurezza, da una certa versione in poi del php4, il register_globals (che trovi in php.ini) è settato di default a 'off' e questo comporta che le variabili che passi con un form non diventano automaticamente globali e non le puoi semplicemente richiamare col nome della variabile.
Per richiamare le variabili passate da un form, devi usare $_POST["nome_variablie"] (con il metodo 'post') e $_GET["nome_variabile"] (con 'get' o con le variabili comunque passate con una query-string); oppure puoi usare $_REQUEST["nome_variabile"] che vale per entrambi i metodi.
Settare a 'on' il register_globals è assolutamente sconsigliabile: un sito, in quelle condizioni, diventa un vero colabrodo. IMHO è anche opportuno non abusare di $_REQUEST: usare $_POST o $_GET, in base alle esigenze, ti limita il campo di eventuali attacchi...
Ciao,
nino
Inviato: mer 3 ott 2007, 21:27
da tojo72
questa si che e' una risposta!!!
adesso devo uscire, ma domani ci do un occhiata meglio!
grazie

Inviato: gio 4 ott 2007, 17:57
da tojo72
nino for president
la tua risposta e' stata davvero illuminante!
e' bastato settare register_globals = On per far funzionare
vecchi script (e io che credevo che il problema stesse "solo" nella versione di php")
Settare a 'on' il register_globals è assolutamente sconsigliabile
ne ho bisogno solo per i test in locale, quindi il problema non si pone
ciao & grazie
Inviato: gio 4 ott 2007, 20:32
da aschenaz
Anche se si tratta di semplici test, sarebbe comunque meglio abituarsi al register_globals disattivato. Poi, nel caso tu debba mettere tutto on-line, che fai, modifichi tutto il codice?
Considera che ormai tutti gli hosting hanno quel flag a 'off'...