- Home
- Categorie
- Coding e Sistemistica
- PHP
- [info] Blocco variabili esterne
-
[info] Blocco variabili esterne
Salve a tutti, spero possiate darmi una mano:
Mi sono trasferito da poco in un nuovo hosting che ha una versione superiore a php 4.2.0 (nn so di preciso quale ho, devo controllare ma è irrilevante al problema)
A partire da questa versione, per rendere sicuri gli script, c'è un blocco nell'accesso alle variabili esterne. Ciò però mi ha bloccato il funzionamento di alcuni form.
Per poter risolvere il problema ho dovuto sbloccarli inserendo dentro la DocumentRoot un file denominato .htaccess con al suo interno la direttiva "php_flag register_globals on". Mi hanno detto però che risolvendo in questo modo si va a scapito della sicurezza degli script.Come posso modificare i miei form per fare in modo che funzionino anche con il blocco attivo? Tenere sbloccate queste variabili che rischi comporta?
I form sono presenti sono questi: [url=http://www.dibattiti.com/forum/invite.php]Invita un amico/e-mail anonime e [url=http://www.dibattiti.com/forum/richiesta.php]Richiesta scambio banner gratuito
(ognuno dei due form naturalmetne è formato da due pagine, uno per la compilazione e uno per inviare)
Grazie a tutti per l'attenzione
-
Nelle pagine che prendono i dati del form devi cambiare le variabili.
Se ad esempio nel form c'è un campo nome che tu usavi come $nome dovrai usarlo come $_GET['nome'] o $_POST['nome'] a seconda del tipo di form.
E' una cosa molto semplice e se hai pochi script ti conviene farlo.
-
Grzie infinite per l'aiuto però... ho provato ma non ci sono riuscito
Forse sbaglio qualcosa...
Ti posto i codici:
Quetsa è la pagina col form da compilare ([url=http://www.dibattiti.com/forum/richiesta.php]richiesta.php)
<table align=center><td><form action="richiestasend.php" method="POST"> <input type="HIDDEN" name="Subject" value=""> <input type="HIDDEN" name="Validity"> <fieldset><legend>**Scrivi il tuo nome:**</legend><INPUT TYPE="text" NAME="usrnme" VALUE="" SIZE="55"></fieldset> <fieldset><legend>**la tua E-Mail:**</legend><INPUT TYPE="text" NAME="Email" VALUE="" SIZE="55"></fieldset> <fieldset><legend>**l'Url del tuo sito:**</legend><INPUT TYPE="text" NAME="urlsito" VALUE="http://" SIZE="55"></fieldset> <fieldset><legend>**l'Url del tuo Banner:**</legend><INPUT TYPE="text" NAME="urlbanner" VALUE="http://" SIZE="55"></fieldset> <fieldset><legend>**Se il banner si trova nel tuo hard disk usa questo form, copia l'url diretta e incollala qui sopra**</legend> <iframe src="http://lnx.murodigitale.com/index2.php" scrolling="no" allowtransparency="true" frameborder="0" width="364" height="90">Aggiorna il tuo browser per www.MuroDigitale.com!</iframe> </fieldset> <fieldset><legend>**Messaggio:**</legend> <textarea name="message" rows="5" cols="55"> Messaggio (opzionale) </textarea></fieldset> <fieldset> <legend>**Hai letto [url="http://www.dibattiti.com/forum/viewtopic.php?t=867"]il regolamento e lo accetti in ogni sua parte?**</legend> No<input type="radio" name="check" value="No"/> Si <input type="radio" name="check" value="Si"/> </fieldset> <INPUT TYPE="submit" VALUE="Invia la richiesta"> <INPUT TYPE="reset" VALUE="Cancella tutto"></td></table>
Quetsa è la pagina che invia l'email ([url=http://www.dibattiti.com/forum/richiestasend.php]richiestasend.php)
<?php $mail = htmlspecialchars("[email protected]"); $title = "Richiesta servizio Scambio Banner Gratuito"; $Email = "$Email"; $usrnme = htmlspecialchars($usrnme); $urlsito = "$urlsito"; $urlbanner = "$urlbanner"; $check = "$check"; $message = " Accetta le condizioni? $check Nome: $usrnme E-Mail: $Email Url sito: $urlsito Url banner: $urlbanner $message"; $Parms = "&mail=$mail=title=$title"; $Parms = "&Validity=Invalid&Action=$Action"; if ($Email != "") mail($mail, $title, $message, "From: $Email"); $SETUP[siteurl] = "http://www.dibattiti.com/forum/viewtopic.php?t=253"; if ($url) { $lines_array = file($url); $lines_string = implode('', $lines_array); eregi("<head>(.*)</head>", $lines_string, $head); ?>
Basta che mi fai un esempio e poi faccio da solo... grazie mille
-
$Email = $_POST['Email']; $usrnme = htmlspecialchars($_POST['usrnme']); $urlsito = $_POST['urlsito']; $urlbanner = $_POST['urlbanner']; $check = $_POST['check'];
-
ah, ecco dove sbagliavo
Li modificavo tutti, anche i primi ^^
Grazie mille davvero, ora provo
-
Ok, funziona alla perfezione
Grazie ancora per il tuo prezioso aiuto!