Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17

    URL in form mail in base alla pagina dalla quale si invia

    Ciao ragazzi, ho il seguente problema. Ho un file php già precompilato per le invio delle email dal form presente nella mia pagina html.
    Il form contiene i seguenti campi:

    Nome
    Cognome
    Indirizzo
    Email
    Oggetto
    Messaggio


    Collegato al suo file esterno di php, le mail arrivano regolarmente. Ad esse però vorrei aggiungere una funzione, ossia quella di far comparire nelle mail l'indirizzo URL della pagina dalla quale è stato compilato ed inviato il form.
    Mi è stato detto di inserire questa stringa nella pagina html
    <input type="hidden" name="url" value="<?php echo $_SERVER['PHP_SELF']; ?>" />
    L'ho inserita in fondo al form ma nella mail mi appare solo il campo url: senza niente scritto a fianco.
    Dov'è che sbaglio? scusate ma di php non ne so niente.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ma echo $_SERVER['PHP_SELF']; cosa ti stampa???

    se ti stampa l'url giusto allora sbagli quando vai a recuperare i dati, ma visto che la parte in cui vai a recuperare i dati te l'avevo gia chiesta (qui ) e te non la posti come facciamo ad aiutarti????

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    scusami, sono un'idiota! non so per quale motivo ma poi alla fine non ti ho risposto più e ho aperto due nuovi topic. Chiedo scusa...

    ti passo qui i due codici che mi hai chiesto. Il primo è il form che ho all'interno della pagina hml

    codice:
    <form id="dummy" action="formEmail/inviamail.php" method="post">
    <div class="L">Nome:</div>
    <div class="B">
    <input type="text" name="nome" id="name" />
    </div>
    <div class="L">E-Mail:</div>
    <div class="B">
    <input type="text" name="email" id="email" />
    </div>
    <div class="L">Oggetto messaggio:</div>
    <div class="B">
    <input type="text" name="oggetto" id="subject" />
    </div>
    <div class="L">Messaggio:</div>
    <div class="B">
    <textarea name="messaggio" rows="5" cols="20" id="message"></textarea>               </div>
    <div class="L"> </div>
    <div class="B">
    <input type="submit" value="Submit" name="submit" class="button"/>
    <input type="reset" value="Reset" class="button"/>
    </div>
    </form>
    Questo invece è il codice php che ho trovato ed editato
    codice:
    <?php
    $email=$_POST['email'];
    
    #######################################
    #     IMPOSTAZIONI DA CONFIGURARE     #
    #######################################
    
    //(1) indirizzo email del destinatario del modulo
    $destinatario = "email";
    
    //(2) indirizzo email del mittente, campo FROM
    //    non toccare se desiderate che l'indirizzo email inserito nel modulo sia
    //    riportato nel campo DA del messaggio che sar&agrave; ricevuto.
    //    Se invece desiderate un campo fisso annullare la prima riga e abilitare
    //    la seconda inserendo la dicitura desiderata (per annullare mettere //
    //    all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
    $nome_mittente = "$email";
    // $nome_mittente = "Dal Modulo";
    
    //(3) oggetto del messaggio
    $oggetto_email = "Modulo inviato dal sito...;
    
    //(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
    //    (valori possibili: "y" e "n")
    $all_free = "n";
    
    //(5) se avete messo "n" al punto (4) inserire tra virgolette, separati
    //    da virgola, i nomi dei campi da rendere OBBLIGATORI
    //    Esempio: $campi_req = array("nome","telefono","via");
    $campi_req = array("nome","email");
    
    //(6) controllo validit&agrave; del campo email. (valori possibili: "y" e "n")
    $obbligo_email = "y";
    
    //(7) obbligare l'utente ad accettare le condizioni.
    //    (valori possibili: "y" e "n")
    $accetta_condizioni = "n";
    
    //(8) URL della pagina di ringraziamento
    $pagina_grazie = "http://www.tuo_sito.tld/pagina_ringraziamento.htm";
    
    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty = "http://www.tuo_sito.tld/errore_campi.html";
    
    //(10) URL della pagina errore email
    $pagina_error_email = "http://www.tuo_sito.tld/errore_mail.htm";
    
    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni = "http://www.tuo_sito.tld/errore_condizioni.htm";
    
    //(12) URL della pagina errore invio non autorizzato (mancanza di referer)
    $pagina_error_referer = "http://www.tuo_sito.tld/errore_referer.htm";
    
    
    #######################################
    #  FINE IMPOSTAZIONI DA CONFIGURARE   #
    #######################################
    
    //ora e data
    $ora = date ("H:i:s"); 
    $data = date ("d/m/Y");
    
    //intestazione email che arriva al destinatario
    $corpo = "
    Modulo inviato il $data alle ore $ora
    Riepilogo dati:\n\n";
    
    //============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================\
    
    
    ########### CODICI ###########
    
    //variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){  
    $_POST = &$HTTP_POST_VARS; 
    }
    
    //prende IP ADDRESS
    if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
    	
    	if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {
    
    $ipnumb = getenv("REMOTE_ADDR");
    
    		}else {
    
    $ipnumb = getenv("HTTP_X_FORWARDED_FOR");
    
    			}
    
    		} else {
    
    $ipnumb = getenv("REMOTE_ADDR");
    		}
    		
    ###################################
    
    //controllo referer
    if(empty($_SERVER["HTTP_REFERER"])){
    
    	header ("Location: $pagina_error_referer");
    	exit();
    	
    	}
    
    
    ########### CONTROLLO DEI CAMPI ###########
    $control_campi = 0;
    
    if($all_free != "y"){
    
        foreach($_POST as $key => $valore){
    
            if(in_array($key,$campi_req)){
    
                if(trim($valore) == ""){
    
                $control_campi++;
                
                                        } 
    
                                    }
    
                                }
    
                            } else {
    
                $control_campi = 0;    
    
                                    }                    
    
    ########### CONTROLLO EMAIL ###########
    $control_email = 0;
    
    if($obbligo_email == "y"){
    
        if(isset($_POST['email'])){
    
            if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){
    
            $control_email++;
    
                                }
    
                            } else {
    
            $control_email = 0;
    
                                }
    
                            }
    
    ########### CONTROLLO CONDIZIONI ###########
    $control_condizioni = 0;
    
    if($accetta_condizioni == "y"){
    
        if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){
    
            $control_condizioni = 0;
    
                } else {
    
            $control_condizioni ++;
    
                }
    
            }
    
    ########### INVIO EMAIL ###########
    if($control_campi == 0){
    
            if($control_email == 0){
    
                if($control_condizioni == 0){
    
    foreach($_POST as $key => $valore){
    
    $key = ucfirst(stripslashes(trim($key)));
    $valore = stripslashes(trim($valore));
    $key = str_replace("_"," ",$key);
    
                if(trim($valore) == "") $valore = "Non compilato";
                
                    $corpo .= $key .": ". $valore ."\n\n";
    
                }
    			
    				$corpo .= "Numero IP: $ipnumb"."\n";
    
    $corpo .= "____________________________________________________________ \n\n
    
    ";
    
        
    // invio e-mail
    // Header Mail
    $headmail.="From: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\n";
    $headmail.="MIME-Version: 1.0\n";
    $headmail.="X-Priority: 1 (Highest)\n";
    $headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
    $headmail.="Content-Transfer-Encoding: 7bit\n";
    
    ini_set('sendmail_from', "$destinatario");
    mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");
    
                    header ("Location: $pagina_grazie");
    
                                    } else {
    
                    header ("Location: $pagina_error_condizioni");
    
                                }
    
                            } else {
    
                    header ("Location: $pagina_error_email");
    
                            }
    
                        } else {
    
                        
                    header ("Location: $pagina_error_empty");
    
                        }
    
    ?>
    Grazie ancora per la tua disponibilità e scusami nuovamente.

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    la pagine della form non deve essere html ma php visto che dentro ci scrivi del codice php <?php echo $_SERVER['PHP_SELF']; ?>

    anche se nella form che hai postato questo codice non c'è

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    ah ecco. Allora proverò a salvarle così.
    Si, nel codice che ti ho postato hai ragione, devo averlo cancellato per sbaglio prima di postarlo.

    Nel file php con le relative istruzioni per il form devo inserire questo codice $url = echo $_SERVER['PHP_SELF']

    Comunque è solo per ottenere l'url della pagina scelta che devo salvarle le pagine da html a php giusto? perchè prima quel normale form anche solo con la pagina html collegata al file php funziona.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    sembro esserci riuscito!!! per ora funziona ma canterò vittoria solo a lavoro finito
    Alla fine ho lasciato la stringa <input name="url" value="<?php echo $_SERVER['PHP_SELF']; ?>" />nella pagina php mentre nella pagina con il codice del form mail in php ho inserito la stringa $url = "$url".

    Per ora ho ottenuto il risultato che mi serve, per il resto speriamo bene.
    Intanto io ti ringrazio per l'aiuto e la pazienza che hai avuto con me. Grazie mille davvero e scusa ancora.
    Non voglio sembrare un lecchino ma penso che le scuse e i ringraziamenti fossero il minimo che potessi fare, con o senza riuscire a risolvere il mio problema.
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.