Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Formularz mailowy - wysyłanie wiadomości
#1
Witam,

Mam następujący formularz w html'u
Cytat:<form id="contact" action="#">
<fieldset>
<span class="error" id="name_error">Proszę wpisać imię !</span>
<span class="error" id="email_error">Proszę wpisać adres e-mail !</span>
<span class="error" id="email_error2">Proszę podać poprawny adres e-mail !</span>
<span class="error" id="msg_error">Proszę wpisać wiadomość !</span>
<input type="text" name="name" id="name" size="50" value="Imię..." class="text-input" onblur="if (this.value == ''){this.value = 'Imię...'; }" onfocus="if (this.value == 'Imię...') {this.value = ''; }" />
<input type="text" name="email" id="email" size="50" value="Email..." class="text-input" onblur="if (this.value == ''){this.value = 'Email...'; }" onfocus="if (this.value == 'Email...') {this.value = ''; }" />
<input type="text" name="subject" id="subject" value="Temat..." class="text-input" onblur="if (this.value == ''){this.value = 'Temat...'; }" onfocus="if (this.value == 'Temat...') {this.value = ''; }" />
<textarea cols="60" rows="10" name="msg" id="msg" class="text-input" onblur="if (this.value == ''){this.value = 'Wiadomość...'; }" onfocus="if (this.value == 'Wiadomość...') {this.value = ''; }">Wiadomość...</textarea>
<br class="clear" />
<input type="submit" name="submit" class="button mini" id="submit_btn" value="Wyślij"/>
</fieldset>
</form>

Czy ktoś może mi pomóc jak powinien wyglądać plik PHP aby dane wpisane tutaj były wysyłane na maila ?
Odpowiedz
#2
Kod PHP:
<?php
if(isset($_POST['submit']) {
    
$daneOK 1;
    
    if(
strlen($_POST['name']) < 3) {
        
$daneOK 0;
        echo 
'<span class="error" id="name_error">Proszę wpisać imię !</span>';
    }
    if(!
filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        
$daneOK 0;
        echo 
'<span class="error" id="email_error">Proszę podać poprawny adres e-mail !</span>';
    }
    if(
strlen($_POST['msg']) < 10) {
        
$daneOK 0;
        echo 
'<span class="error" id="msg_error">Proszę wpisać wiadomość !</span>';
    }
    if(
$daneOK) {
        if(
mail('[email protected]'$_POST['subject'], $_POST['msg']))
            echo 
'Wiadomość została wysłana';
        else
            echo 
'Error';
    }    
}
?>

więcej masz tu:
http://pl.wikibooks.org/wiki/PHP/Wysy%C5%82anie_e-maili
Odpowiedz
#3
A jeśli mam jeszcze taki kod jQuery ? To co w twoim trzeba zmienić aby wszystko działało jak należy ?

Kod PHP:
jQuery(function() {
  
jQuery('.error').hide();
  var 
messagetext jQuery("textarea#msg");
  
messagetext.focusout(function(){
        if (
messagetext.val() == ''){messagetext.text('Message'); }
  });
  
messagetext.focus(function(){
        if (
messagetext.val() == 'Message') {messagetext.text(''); }                       
  });
  
jQuery(".button").click(function() {

    
jQuery('.error').hide();
      var 
name jQuery("input#name").val();
        if (
name=="Name" || name == "") {
      
jQuery("span#name_error").show();
      
jQuery("input#name").focus();
      return 
false;
    }
      var 
email jQuery("input#email").val();
      if (
email == "Email" || email == "") {
      
jQuery("span#email_error").show();
      
jQuery("input#email").focus();
      return 
false;
    }
    
    var 
emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if(!
emailReg.test(email)) {
    
jQuery("span#email_error2").show();
    
jQuery("input#email").focus();
      return 
false;
    }
    
      var 
subject jQuery("input#subject").val();
      if (
subject == "") {
      
jQuery("input#subject").focus();
      return 
false;
    }
      var 
msg jQuery("textarea#msg").val();
      if (
msg == "Message" || msg == "") {
      
jQuery("span#msg_error").show();
      
jQuery("textarea#msg").focus();
      return 
false;
    }
        
        var 
dataString 'name='name '&email=' email '&subject=' subject '&msg=' msg;
      
jQuery.ajax({
      
type"POST",
      
url"submit-form.php",
      
datadataString,
      
success: function() {
        
jQuery('#contactform').html("<div id='message'></div>");
        
jQuery('#message').html("<b>Wiadomość Została Wysłana!</b>")
        .
append("<p>Odpowiemy na maila wkrótce.</p>")
        .
hide()
        .
fadeIn(1500, function() {
          
jQuery('#message');
        });
      }
     });
    return 
false;
    });
}); 
Odpowiedz
#4
kod php wklej w submit-form.php
Odpowiedz
#5
Ogólnie rzecz biorąc powyższe kody są najwyżej na 2=
Odpowiedz
#6
Kod od Ciebie wkleiłem do submit-form.php ale wtedy dostaje tylko info że niby mail wysłany jednak na skrzynkę nic nie przychodzi.

Jakieś pomysły ?
Odpowiedz
#7
Wklep do pliku odpowiadającego za wysyłkę dane na "sztywno" odpal go. Jeżeli dojdzie to błędy masz w komunikacji jQuery z PHP, jeżeli niedojdzie to błędy są w kodzie PHP.
Odpowiedz
#8
zrób sobie taki test:

tam gdzie masz kod:
Kod:
success: function() {
zmień na:
Kod:
success: function(data) {
  alert(data);
  .... reszta twojego kodu ....
i zobacz co dostajesz
---
no i zobacz jaką wersję php masz ponieważ filter_var jest od 5.2
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak zrobic Formularz Kontaktowy na stronie ? Kodarth 191 255,832 06-04-2021, 16:25
Ostatni post: zerin
  Walidacja zdjęć + formularz harvester2001 6 5,968 24-03-2014, 19:01
Ostatni post: harvester2001
  php formularz - wszystkie pola muszą być wypełnione d3d3d3 2 3,633 01-10-2013, 14:16
Ostatni post: Kartofelek
  Pewny formularz and licznik JOzEk 1 2,345 04-05-2013, 14:35
Ostatni post: Engine
  Formularz dodający post suchar 4 3,484 04-08-2012, 14:09
Ostatni post: GeoAce5

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl