• User Newbie

    [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


  • User Attivo

    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.


  • User Newbie

    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&#58;**</legend><INPUT TYPE="text" NAME="Email" VALUE="" SIZE="55"></fieldset> 
    
    <fieldset><legend>**l'Url del tuo sito&#58;**</legend><INPUT TYPE="text" NAME="urlsito" VALUE="http&#58;//" SIZE="55"></fieldset> 
    
    <fieldset><legend>**l'Url del tuo Banner&#58;**</legend><INPUT TYPE="text" NAME="urlbanner" VALUE="http&#58;//" 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&#58;//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&#58;**</legend> <textarea name="message" rows="5" cols="55">
      Messaggio &#40;opzionale&#41;
     </textarea></fieldset>
    
    
     <fieldset>
      <legend>**Hai letto [url="http&#58;//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&#40;"[email protected]"&#41;;
    $title        = "Richiesta servizio Scambio Banner Gratuito";
    $Email        = "$Email";
    $usrnme       = htmlspecialchars&#40;$usrnme&#41;;
    $urlsito      = "$urlsito";
    $urlbanner    = "$urlbanner";
    $check        = "$check";
    $message      = "
    
    Accetta le condizioni? $check
    
    Nome&#58; $usrnme
    
    E-Mail&#58; $Email
    
    Url sito&#58; $urlsito
    
    Url banner&#58; $urlbanner
    
    $message";
    
    $Parms = "&mail=$mail=title=$title";
    
    $Parms = "&Validity=Invalid&Action=$Action";
    
    if &#40;$Email != ""&#41; mail&#40;$mail, $title, $message, "From&#58; $Email"&#41;;
    
    
    $SETUP&#91;siteurl&#93; = "http&#58;//www.dibattiti.com/forum/viewtopic.php?t=253";
    
    if &#40;$url&#41; &#123;
    
    $lines_array = file&#40;$url&#41;;
    $lines_string = implode&#40;'', $lines_array&#41;;
    eregi&#40;"<head>&#40;.*&#41;</head>", $lines_string, $head&#41;;
    
    
    ?>
    

    Basta che mi fai un esempio e poi faccio da solo... grazie mille


  • User Attivo
    
    $Email        = $_POST&#91;'Email'&#93;; 
    $usrnme       = htmlspecialchars&#40;$_POST&#91;'usrnme'&#93;&#41;; 
    $urlsito      = $_POST&#91;'urlsito'&#93;; 
    $urlbanner    = $_POST&#91;'urlbanner'&#93;; 
    $check        = $_POST&#91;'check'&#93;; 
    
    

  • User Newbie

    ah, ecco dove sbagliavo 😛

    Li modificavo tutti, anche i primi ^^

    Grazie mille davvero, ora provo 😉


  • User Newbie

    Ok, funziona alla perfezione 😉

    Grazie ancora per il tuo prezioso aiuto!