Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Mail script] ..come faccio a evitare che col refresh ci sia il reinvio perpetuo??

    Ciao a tutti,

    ho uno script per l'invio di mail, se premo F5 (cioè "refresho") la pagina..lo script automaticamente reinvia i dati...e lo fa all'infinito.

    Sapete indicarmi come fare per evitare che si verifichi quest'evento?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Inviare i dati tramite post, in questo modo quando l'utente fa f5 il browser le chiede di confermare il reiinvio dei dati.


  3. #3
    Originariamente inviato da las
    Inviare i dati tramite post, in questo modo quando l'utente fa f5 il browser le chiede di confermare il reiinvio dei dati.

    Hai 2 metodi:
    1) due pagine:
    Una contente il form e una che processa la richiesta inviata via post
    2) metti in una variabile di sessione il serealize($_POST) e prima di inviare verifichi se essite tale variabile e se è uguale a quella che hai salvato in sessione.

  4. #4
    Si, la mia pagina è strutturata così:

    - ha il form con tutti i vari campi da riempire.
    - del tag <form> è presente il "action" di riferimento allo script Php che elaborerà i dati.
    (Esempio: <form action="QuiLoScript.php"> ...)


    ..ora la domanda è una per le soluzioni che mi hai proposto:

    Puoi spiegarmi come fare in entrambe le soluzioni che mi hai proposto?

    Così posso vedere quale mi conviene

  5. #5
    posta il codice

  6. #6
    Ecco il codice completo dello script. Da premettere che è uno script presente nel sito www.html.it , dal nome "phpMailer". Ho cambiato alcune cose e tolto delle altre che ritenevo futili per il mio scopo.

    codice:
    <?php
    
    // ---------------------------------------
    // Variabili dei dati digitati dall'utente
    // ---------------------------------------
    
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $telefono = $_POST['telefono'];
    $variabile_privata = $_POST['variabile_privata']; // privacy :)
    $variabile_privata = $_POST['variabile_privata']; // privacy
    
    $variabile_privata = $_POST['input_privato']; // privacy
    $variabile_privata = $_POST['input_privato']; // privacy
    
    $variabile_privata = $_POST['input_privato']; // privacy
    $variabile_privata = $_POST['input_privato']; // privacy
    
    $variabile_privata = $_POST['variabile_privata']; // privacy
    $variabile_privata = $_POST['variabile_privata']; // privacy
    
    $termini = $_POST['terms'];
    
    // ------------------------------
    // Variabili dei dati dell'utente
    // ------------------------------
    
    $ip = $_SERVER['REMOTE_ADDR'];
    $pagefrom = $_SERVER['HTTP_REFERER'];
    $time = time();                        // Qui c'è il timestamp
    $date = date('d-m-y H:i:s',$time);
    $browseruser = $_SERVER['HTTP_USER_AGENT'];
    
    // ------------------------------
    // Variabili del file da allegare
    // ------------------------------
    
    $allegato = $_FILES['file'];
    $nome_file = $_FILES['file']['name'];
    $nome_temp_file = $_FILES['file']['tmp_name'];
    $nome_brow_file = $_FILES['file']['type'];
    $dimens_file = $_FILES['file']['size'];
    $dimens_max = 1572864;
    $max_file_size="2048";
    
    $formati_ok = array("jpg", "png", "jpeg");
    $quanti_file = "1";
    
    // --------------------
    // Inizio Script
    // --------------------
    
    function get_ext($key) { 
    	$key=strtolower(substr(strrchr($key, "."), 1));
    	// Cause there the same right?
    	$key=str_replace("jpeg","jpg",$key);
    	return $key;
    }
    
    function phattach($file,$name) {
    	global $boundary;
    	
    	$fp=@fopen($file,"r");
    	$str=@fread($fp, filesize($file));
    	$str=@chunk_split(base64_encode($str));
    	$mail_body="--".$boundary."\n";
    	$mail_body.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
    	$mail_body.="Content-disposition: attachment; filename=\"".$name."\"\n"; 
    	$mail_body.="Content-Transfer-Encoding: base64\n";
    	$mail_body.="\n";
    	$mail_body.="$str\n";
    	$mail_body.="\n";
    
    	return $mail_body;
    }
    
    function clean($key) {
    	$key=str_replace("\r", "", $key);
    	$key=str_replace("\n", "", $key);
    	$find=array(
    		"/bcc\:/i",
    		"/Content\-Type\:/i",
    		"/Mime\-Type\:/i",
    		"/cc\:/i",
    		"/to\:/i"
    	);
      $key=preg_replace($find,"",$key);
      return $key;
    }
    
    $error="";
    $types="";
    
    
    // ----------------------------------
    // Verifica omissioni/errori nel form
    // ----------------------------------
    
    if($_POST['submit']==true) {
    	extract($_POST, EXTR_SKIP);
    	
    		if(trim($nome)=="") { 
    			$error.="Inserisci il tuo nome.
    ";
    		}
    		
                    if(trim($cognome)=="") {
                            $error.="Inserisci il tuo cognome.
    ";
                    }
    
    		if(trim($email)=="") { 
    			$error.="Inserisci il tuo indirizzo email.
    ";
    		} elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$email)) {
    			$error.="Inserisci un indirizzo email valido.
    ";
    		}
    
    		if(trim($telefono)=="") {
    			$error.="Inserisci il tuo numero di telefono.
    ";
    		} elseif (!is_numeric($_POST['telefono'])) {
                            $error.="Inserisci solamente numeri per il tuo numero di telefono.
    ";
                    }
    
    		if(trim($variabile_privata)=="") { 
    			$error.="---------------------------.
    "; // privacy
    		}
    
                    if(trim($variabile_privata)=="") {
                            $error.="-----------------------.
    "; // privacy
                    }
    
    // ------------------------------------
    // Verifica se il file è stato caricato
    // ------------------------------------
    
                   if($quanti_file > 0) {
    
                      for($i=0; $i <= $quanti_file-1; $i++) {
    
                          if($_FILES['file']['name'][$i]) {
                                     
                             $ext=get_ext($_FILES['file']['name'][$i]);
    			 $size=$_FILES['file']['size'][$i];
    			 $max_bytes=$max_file_size*2048;
    
    // --------------------------------------------------------
    // Verifica se il file è tra quelli che si possono caricare
    // --------------------------------------------------------
    
        if(!in_array($ext, $formati_ok)) {
    						
    	$error.= "Il formato del file non è supportato. Puoi allegare solamente file .jpg, .jpeg e .png .
    ";
    
    // -----------------------------------
    // Verifica se il file è troppo grande
    // -----------------------------------
    
           } elseif($size > $max_bytes) {
    	
             $error.= "Il tuo file: ".$_FILES['file']['name'][$i]." è troppo grande. La grandezza massima è di 2.00 Mb.
    ";
    				     }
            } // Qui si chiude IF FILES
          } // Qui si chiude il FOR
        } // Qui si chiude il IF FILE ALLEGATO
    
    // ----------------------------------------------
    // Questa parte riguarda l'errore da visualizzare
    // ----------------------------------------------
    
    if($error) {
             echo ("$error");
               } else {
    
                    $boundary=md5(uniqid(time()));
    
                    $nome=clean($nome);
    		$variabile_privata=clean($variabile_privata);
    		$email=clean($email);
    
    // -------------------------------------
    // Processo di configurazione dell'email
    // -------------------------------------
    
    $mail_to = "IoRicevoLaMail@punto.com";
    $mail_subject = "PAGINA DI PROVA SCRIPT FINALE!!!";
    $mail_body .= "###########################################################################\n";
    $mail_body .= "################ -------------------------------- ##########################\n";
    $mail_body .= "###########################################################################\n";
    $mail_body .= "###########################################################################\n";
    $mail_body .= "################ La richiesta è stata inoltrata da: $email ##############\n";
    $mail_body .= "###########################################################################\n";
    $mail_body .= "################ La richiesta è stata inoltrata il: $date #################\n";
    $mail_body .= "###########################################################################\n";
    $mail_body .= "################ DATI RILASCIATI DALL'UTENTE ###############################\n";
    $mail_body .= "###########################################################################\n\n\n";
    
    $mail_body .= "Nome ---> $nome\n";
    $mail_body .= "Cognome ---> $cognome\n\n";
    
    $mail_body .= "Email ---> $email\n";
    $mail_body .= "Telefono ---> $telefono\n\n";
    
    $mail_body .= "Qua c'è una roba ---> $variabile_privata\n";  // privacy
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata\n\n";  // privacy
    
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata\n";  // privacy
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata\n\n";  // privacy
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata\n";  // privacy
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata\n\n";  // privacy
    
    $mail_body .= "Qua c'è un'altra roba ---> $variabile_privata e $variabile_privata\n\n";  // privacy :)
    
    $mail_body .= "Termini & Condizioni del servizio ---> $terms\n\n";
    $mail_body .= "##############################################################################################\n";
    $mail_body .= "################ INFORMAZIONI UTENTE ########################################################\n";
    $mail_body .= "##############################################################################################\n\n\n";
    
    $mail_body .= "IP di provenienza della richiesta: $ip\n";
    $mail_body .= "Browser rilevato: $browseruser\n";
    $mail_body .= "Pagina di provenienza utente: $pagefrom\n";
    $mail_body .= "Data e ora inoltro richiesta: $date\n\n";
    $mail_body .= "##############################################################################################\n";
    $mail_body .= "##############################################################################################\n\n";
    
    // --------------------------
    // Qui si allega la questione
    // --------------------------
    
    if($quanti_file > 0) {
    			
    	for($i=0; $i <= $quanti_file-1; $i++) {
    				
    		if($_FILES['file']['name'][$i]) {
    					
    		       $mail_body.=phattach($_FILES['file']['tmp_name'][$i],$_FILES['file']['name'][$i]);
    					        }
    				              }   // Qui si chiude il ciclo FOR
    			                   }    // Qui si chiude l'IF
    
    
    // ----------------
    // Invio della mail
    // ----------------
    
    if(mail($mail_to,$mail_subject,$mail_body)) {
    			
                            echo ("mail inviata");			
    		} else {
    		
    echo("Si è verificato un errore, per favore contatta l'amministratore del sito.\n");	
    		}
    
    	} // Else
    
    } // $_POST
    
    ?>
    Eccolo qui

  7. #7
    sostituisci
    Codice PHP:
    echo ("mail inviata"); 
    con:
    Codice PHP:
    header('Location: pagina_con_il_form.php?msg=1');
    exit; 
    poi nella pagina in cui è presente il form di invio:
    Codice PHP:
    if( (isset($_GET['msg'])) AND $_GET['msg']==1)
       {
       echo 
    '<script type="text/javascript">alert("Inviata mail");</sctipt>';
       } 

  8. #8
    Grandissimo!!! Grazie!!!

    Però ho dei dubbi.

    L'ultimo pezzo di codice, ovvero quello con l'IF che mi mostra il messaggio di avviso della mail inviata...dove lo metto?

    E...invece di metterci i tag di uno script con l'alert...posso metterci il fatto che carica una pagina creata da me? ..se si..come??

    Scusa per tutte queste domande ma mi sei di grande aiuto


    E PS: cos'è il pezzo di codice "msg" ????

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.