Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di yenn
    Registrato dal
    Mar 2012
    Messaggi
    5

    problema form invio mail in PHP

    ciao a tutti!
    ho fatto un modulo per la richiesta di informazioni per un sito di un mio cliente, ma testandolo ho notato che mi da 2 problemi:

    1) di tutti i campi compilati l'unico che viene riportato è l'email, gli altri sono vuoti. inoltre ho anche usato un js per far si che tutti i campi siano compilati, altrimenti mi dà errore e non invia. quindi non so perche mi invia email quasi vuote.

    2) per ogni mail inviata dal sito ne ricevo 2 identiche.

    siccome sono giorni che sto perdendo la vista alla ricerca di qualche errore di sintassi e sto rischiando di impazzire vi posto il codice, nella speranza che qualcuno con gli occhi più "abituati" possa tirarmi fuori dalla pazzia certa...

    Qui il codice del form:
    codice:
    <article id="content">
    				<div class="wrapper">
    					<h2>Contattaci</h2>
                        <div id="response" style="display:none;border:1px solid #ccc:padding:10px;background:#f4f4f4; color:#000;"></div>
    					<form name="form1" method="post" action="mail.php" id="ContactForm">
    						<div>
    							<div  class="wrapper">
    								<span class="color3">Nome:</span>
    								<div class="bg" style="border:thick #CCC"><input  name="nome" type="text" id="nome" class="input"></div>
    							</div>
    							<div  class="wrapper">
    								<span class="color3">Oggetto:</span>
    								<div class="bg" style="border:thick #CCC"><input name="oggetto" type="text" id="oggetto" class="input"></div>								
    							</div>
    							<div  class="wrapper">
    								<span class="color3">Email:</span>
    								<div class="bg" style="border:thick #CCC"><input name="mail" type="text" id="mail" class="input"></div>								
    							</div>
    							<div  class="textarea_box">
    								<span class="color3">Comments:</span>
    								<div class="bg" style="border:thick #CCC"><textarea name="testo" id="testo" cols="40" rows="10"></textarea></div>								
    							</div>
    							
                                <a><input class="button1" id="sendmail" name="Submit" type="submit" value="Invio"></a>
    							Cancella
    						</div>
    					</form>
    				</div>
    			</article>
    qui il file PHP:
    Codice PHP:
    <?php
    // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
    $to "miamail@miosito.ext";

    // IL SOGGETTO DELLA MAIL
    $subject "Messaggio inviato tramite sito icpetroleumsrl.com";

    // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body "Contenuto del messaggio:\n\n";

    $body .= "Da: " trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "mail: " trim(stripslashes($_POST["mail"])) . "\n";
    $body .= "Oggetto: " trim(stripslashes($_POST["oggetto"])) . "\n";

    $body .= "testo: " trim(stripslashes($_POST["testo"])) . "\n";

    // INTESTAZIONI SUPPLEMENTARI


    // INVIO DELLA MAIL
    if(@mail($to$subject$body)) { // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "La mail è stata inoltrata con successo.";

    } else {
    // ALTRIMENTI...

    echo "Si sono verificati dei problemi nell'invio della mail.";

    }

    ?>
    infine il javascript per la conferma di avvenuto invio e segnalazione errori:
    codice:
     $(document).ready(function(){
    	$("#sendmail").click(function(){
    		var valid = '';
    		var isr = ' e obbligatorio.';
    		var name = $("#nome").val();
    		var mail = $("#mail").val();
    		var subject = $("#oggetto").val();
    		var text = $("#testo").val();
    		if (name.length<1) {
    			valid += '
    Nome'+isr;
    		}	
    		if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    			valid += '
    A valid Email'+isr;
    		}
    		if (subject.length<1) {
    			valid += '
    Subject'+isr;
    		}
    		if (text.length<1) {
    			valid += '
    Text'+isr;
    		}
    		if (valid!='') {
    			$("#response").fadeIn("slow");
    			$("#response").html("Error:"+valid);
    		}
    		else {
    			var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text;
    			$("#response").css("display", "block");
    			$("#response").html("Sending message .... ");
    			$("#response").fadeIn("slow");
    			setTimeout("send('"+datastr+"')",2000);
    		}
    		return false;
    	});
    });
    function send(datastr){
    	$.ajax({	
    		type: "POST",
    		url: "mail.php",
    		data: datastr,
    		cache: false,
    		success: function(html){
    		$("#response").fadeIn("slow");
    		$("#response").html(html);
    		setTimeout('$("#response").fadeOut("slow")',2000);
    	}
    	});
    }
    il codice non l'ho scritto da zero, ma ho adattato un altro codice alle mie esigenze, quindi è probabile che abbia saltato qualche piccolezza nell'integrare, ma non riesco a vederla.

    ovviamente i tre codici qui sopra sono "separati", nel senso che ho la pagina di contatti (contatti.php) il php per l'invio mail (mail.php) e il js per gli errori (ajax.js).

    grazie in anticipo a chi vorrà darmi una mano.
    -Yenn-

  2. #2
    il codice html e php
    funzionano perfettamente, invia il contenuto preciso ed una sola volta, sicuramente il problema è nel javascript, in cui io non ho molta dimestichezza, ma sono sicuro che nella sezione javascript aiuto lo trovi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.