Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [PHP]invio mail da form error 405

    Buongiorno,
    sto cercando di creare un form che spedisca i risultati via email, sto testando l'invio di email sul mio sito con piattaforma Windows ricevo come errore: HTTP error 405 - method not allowed.


    allego codice:
    index.html
    codice:
     <form id="formail" method="POST" action="">                       
        <div id="risposta" style="margin-bottom: 30px; text-align: center; padding-top:15px; padding-bottom: 15px;">
        </div>
        <div class="sec-title text-center wow animated fadeInDown">
            <h3 style="color:#25346d">DATI PERSONALI</h3>
            <hr>
        </div>
        <div class="input-field">
            <input type="text" id="nome" class="form-control" name="nome"  value="" placeholder="Nome"/>
        </div>
        <div class="input-field">
            <input type="text" id="cognome" class="form-control" name="cognome"  value="" placeholder="Cognome"/>
        </div>
        ​<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="Invia" />
    </form>

    jquery_mail.js
    codice:
     $(document).ready(function(){
        console.log("eccomiiiiiiiiiiiiiiii");
        $("#invia").click(function(){
               $nome = $_POST['nome'];  $cognome = $_POST['cognome'];
    
    
                  if (name.length<1) {
                valid += '<p>Inserisci un nome valido.'+isr;
            }
    
    
    
    
            var valid = '';
            var isr = '  </p>';
            var name = $("#nome").val();
            var surname = $("#cognome").val();
    
    
    
    
        //Se i controlli non vengono superati, appare il messaggio di errore.
            if (valid!='') {
                $("#risposta").fadeIn("slow");
                $("#risposta").html("<p><b>Errore:</b></p>"+valid);
                $("#risposta").css("background-color","rgba(255,255,255,0.50)");
                $("#risposta").css("margin-top","120px");
                $("#risposta").css("color","rgba(255,255,255,1.00)");
                $("#risposta").css("font-size","13px");
                $("#risposta").css("width","60%");
                $("#risposta").css("margin-left","20%");
                $("#risposta").css("margin-right","20%");
            }
            //Se i controlli vengono superati, compare un messaggio di invio in corso
            else {
                var datastr ='name=' + name + '&mail=' + mail;
                $("#risposta").css("display", "block");
                $("#risposta").css("background-color","rgba(255,255,255,0.80)");
                $("#risposta").css("color","rgba(255,255,255,1.00)");
                $("#risposta").html("<p>Invio del messaggio in corso..</p>");
                $("#risposta").fadeIn("slow");
                setTimeout("send('"+datastr+"')",2000);
            }
            return false;
        });
    
    
        //Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
    function send(datastr){
    	$.ajax({	
    		type: "POST",
    		url: "mail.php",
    		data: datastr,
    		cache: false,
    		success: function(html){
    		$("#risposta").fadeIn("slow");
    		$("#risposta").html(html);
    		$("#risposta").css("background-color","rgba(255,255,255,0.80)");
    		$("#risposta").css("color","#3CB371");
    		setTimeout('$("#risposta").fadeOut("slow")',2000);
    	}
    	});
    }

    mail.php
    codice:
    <?php
    //Recuperiamo tutte le variabili
    	$nome = $_POST['nome'];
    	$cognome = $_POST['cognome'];
    
    
    
    
    //Qui andrà inserito il tuo indirizzo e-mail
    $mail = "postmaster@xxxx.it"
    $to = "xxxxx@xxxxx.it";
    
    
    //Qui va l'oggetto della e-mail
    $subject = "Ciaoooooo"
    
    
    //Creazione del mesaggio da inviare
    $message = "<p> <strong>Nome Cognome:</strong> ".$nome." ".$cognome." </p>"; 
    $headers = "From: $mail \n";
    $headers .= "Reply-To: $mail \n";
    $headers .= "MIME-Version: 1.0 \n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
    
    
    //Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
    if(mail($to, $subject, $message, $headers){
    	echo "<p>Messaggio inviato con successo!</p>";
    }
    //Altrimenti un messaggio di errore
    else{ 
    	echo "<p>Ci sono stati degli errori nell'invio della e-mail. Riprova</p>";
    }
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    codice:
    $("#invia").click(function(){
               $nome = $_POST['nome'];  $cognome = $_POST['cognome'];
    
    
                  if (name.length<1) {
                valid += '<p>Inserisci un nome valido.'+isr;
            }
    Sbaglio o stai mischiando PHP e JS?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    codice:
    $("#invia").click(function(){
               $nome = $_POST['nome'];  $cognome = $_POST['cognome'];
    
    
                  if (name.length<1) {
                valid += '<p>Inserisci un nome valido.'+isr;
            }
    Sbaglio o stai mischiando PHP e JS?
    Si, quello era sbagliato! Grazie ho corretto
    codice:
    $(document).ready(function(){
     	console.log("eccomiiiiiiiiiiiiiiii");
    	$("#invia").click(function(){
    
    
    		var valid = '';
    		var isr = '  </p>';
    		var name = $("#nome").val();
    		var surname = $("#cognome").val();
    
    
    		if (name.length<1) {
    			valid += '<p>Inserisci un nome valido.'+isr;
    		}
    
    
    			//Se i controlli non vengono superati, appare il messaggio di errore.
    		if (valid!='') {
    			$("#risposta").fadeIn("slow");
    			$("#risposta").html("<p><b>Errore:</b></p>"+valid);
    			$("#risposta").css("background-color","rgba(255,255,255,0.50)");
    			$("#risposta").css("margin-top","120px");
    			$("#risposta").css("color","rgba(255,255,255,1.00)");
    			$("#risposta").css("font-size","13px");
    			$("#risposta").css("width","60%");
    			$("#risposta").css("margin-left","20%");
    			$("#risposta").css("margin-right","20%");
    		}
    		//Se i controlli vengono superati, compare un messaggio di invio in corso
    		else {
    			var datastr ='name=' + name + '&mail=' + mail;
    			$("#risposta").css("display", "block");
    			$("#risposta").css("background-color","rgba(255,255,255,0.80)");
    			$("#risposta").css("color","rgba(255,255,255,1.00)");
    			$("#risposta").html("<p>Invio del messaggio in corso..</p>");
    			$("#risposta").fadeIn("slow");
    			setTimeout("send('"+datastr+"')",2000);
    		}
    		return false;
    	});
    
    
    });
    //Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
    function send(datastr){
    	$.ajax({	
    		type: "POST",
    		url: "mail.php",
    		data: datastr,
    		cache: false,
    		success: function(html){
    			$("#risposta").fadeIn("slow");
    			$("#risposta").html(html);
    			$("#risposta").css("background-color","rgba(255,255,255,0.80)");
    			$("#risposta").css("color","#3CB371");
    			setTimeout('$("#risposta").fadeOut("slow")',2000);
    		},
    		error: function (xhr, ajaxOptions, thrownError) {
            	console.log("xhr ", xhr.status, " - ", xhr.responseText);
            	cosnole.log("thrownError ", thrownError);
         	}
    	});
    }
    Ma non risolve il problema

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    E questo è tutto JS, PHP che c'entra?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    E questo è tutto JS, PHP che c'entra?
    Ho postato tutto il codice che ho fatto! l'inivio di mail è nel file mail.php
    Non capisco a cosa sia dovuto l'errore 405?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Errore HTTP 405 - Method not allowed (Metodo non consentito)


    Domanda semplice, semplice: la pagina mail.php funziona?
    Se si, allora stai inserendo male i dati nella richiesta AJAX, riscrivi la routine "send" di javascript utilizzando la documentazione

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [Risolto]

    Era un problema tra due file js che cozzavano tra di loro è bastato mettere prima il file jquery_mail.js per risolverlo.
    Grazie

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da Uccio87 Visualizza il messaggio
    Era un problema tra due file js che cozzavano tra di loro è bastato mettere prima il file jquery_mail.js per risolverlo.
    Grazie
    Appunto, non era colpa di PHP.

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.