Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pusta zmienna $_POST?
Forum PHP.pl > Forum > PHP
Ownedds
Witam serdecznie.

Stworzyłem sobie proste portfolio wraz z formularzem kontaktowym.
Stronę wrzuciłem na cba.pl żeby mieć podgląd na żywo czy wszystko działa.

Problem jest z formularzem kontaktowym, a mianowicie wygląda to tak:

Index.html
  1. <div class="container">
  2. <div class="box last">
  3. <div class="row">
  4. <div class="col-sm-6">
  5. <h1>Formularz Kontaktowy</h1>
  6. <p>tekst...!</p>
  7. <div class="status alert alert-success" style="display: none"></div>
  8. <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
  9. <div class="row">
  10. <div class="col-sm-6">
  11. <div class="form-group">
  12. <input type="text" class="form-control" name="Imie" required="required" placeholder="Imie">
  13. </div>
  14. </div>
  15. <div class="col-sm-6">
  16. <div class="form-group">
  17. <input type="text" class="form-control" name="Email" required="required" placeholder="Email">
  18. </div>
  19. </div>
  20. <div class="col-sm-6">
  21. <div class="form-group">
  22. <input type="text" class="form-control" name="Producent" required="required" placeholder="Producent">
  23. </div>
  24. </div>
  25. <div class="col-sm-6">
  26. <div class="form-group">
  27. <input type="text" class="form-control" name="Model" required="required" placeholder="Model">
  28. </div>
  29. </div>
  30. <div class="col-sm-6">
  31. <div class="form-group">
  32. <input type="text" class="form-control" name="Telefon" required="required" placeholder="Telefon">
  33. </div>
  34. </div>
  35. <div class="col-sm-6">
  36. <div class="form-group">
  37. <input type="text" class="form-control" name="Miejscowosc" required="required" placeholder="Miejscowosc">
  38. </div>
  39. </div>
  40. </div>
  41. <div class="row">
  42. <div class="col-sm-12">
  43. <div class="form-group">
  44. <textarea name="message" name="Opis" required="required" class="form-control" rows="8" placeholder="Opis"></textarea>
  45. </div>
  46. <div class="form-group">
  47. <button type="submit" class="btn btn-danger btn-lg">Wyslij zapytanie</button>
  48. </div>
  49. </div>
  50. </div>
  51. </form>
  52. </div><!--/.col-sm-6-->


Oraz sendemail.php:

  1. <?php
  2. header('Content-type: application/json');
  3. $status = array(
  4. 'type'=>'success',
  5. 'message'=>'Email został wysłany!'
  6. );
  7.  
  8. $Imie = @trim(stripslashes($_POST['Imie']));
  9. $email = @trim(stripslashes($_POST['Email']));
  10. $Producent = @trim(stripslashes($_POST['Producent']));
  11. $Model = @trim(stripslashes($_POST['Model']));
  12. $Telefon = @trim(stripslashes($_POST['Telefon']));
  13. $Miejscowosc = @trim(stripslashes($_POST['Miejscowosc']));
  14. $Opis = @trim(stripslashes($_POST['Opis']));
  15.  
  16. $email_from = 'testmail@***.cba.pl';
  17. $email_to = '***@gmail.com';
  18.  
  19. $body = 'Imie: ' . $Imie . "\n\n" .
  20. 'Email: ' . $email . "\n\n" .
  21. 'Producent: ' . $Producent . "\n\n" .
  22. 'Model: ' . $Model . "\n\n" .
  23. 'Telefon: ' . $Telefon . "\n\n" .
  24. 'Miejscowosc: ' . $Miejscowosc . "\n\n" .
  25. 'Opis: ' . $Opis;
  26.  
  27. $success = @mail($email_to, $Imie, $body, 'From: <'.$email_from.'>');
  28.  
  29. echo json_encode($status);
  30. die;
  31. ?>
  32.  


Wysyłanie maili działa, lecz jest problem z treścią.
W momencie dostania maila wygląda to tak, że brak jest tematu, oraz zawartości wypełnionych pól.
Przykład:


testmail@****.cba.pl 23:21 (9 minut temu)
do mnie

Imie:
Email:
Producent:
Model:
Telefon:
Miejscowosc:
Opis:

Wygląda to tak, jakby nie pobierało wpisanych danych z formularza kontaktowego.
Ktoś ma jakiś pomysł?
Index.html i sendemail.php znajdują się w głównym katalogu.
Tomplus
Zlikwiduj małpki - @ To powinieneś błąd zobaczyć.
Ownedds
Witam.
Usunąłem @.

Mail wychodzi, ale nadal nie posiada nic w sobie pobranego ze strony. Tylko schemat podany powyżej.
Tomplus
Nie ma żadnych błędów?

Nie robisz żadnego przekierowania po wysłaniu email, więc zrób na początku strony:
var_dump($_POST);

Sprawdź czy przesyłasz cokolwiek metodą _POST, jeżeli tak, to upewnij się że klucze są takie same jakie dodajesz do trim(stripslashes($_POST['Imie'])) i innych.

freewalker
nazwy zmiennych nie zaczynaj z wielkiej litery, to taka dobra praktyka, tak samo w formularzach name='Imie' lepiej name='imie'. Na razie tylko tyle wylapalem;P
Pyton_000
czyli nic...

var_dump($_POST); i pokaż wynik.
Ownedds
Hej. Cząstkowo udało mi się rozwiązać problem, mianowicie zmieniłem:
  1. <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">

na:
  1. <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php" role="form">


I teraz treść normalnie dochodzi.
Doszedłem że problem może być w:
main.js

  1. //Ajax contact
  2. var form = $('.contact-form');
  3. form.submit(function () {
  4. $this = $(this);
  5. $.post($(this).attr('action'), $(this).serialize(), function(data) {
  6. $this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
  7. },'json');
  8. return false;
  9. });


bo do tego odwoływał się element który usunałem.
Co z nim jest nie tak, że nie przetwarza POST?
viking
$('.contact-form'); odnosi się do klasy którą, jak sam napisałeś, obecnie usunąłeś. Zatem kod nie jest wysyłany ajaksem tylko zwyczajnie jako formularz metodą POST. Dlatego treść dochodzi bo zmienne $_POST nie są puste. Co pokazywała konsola przeglądarki wcześniej?
Ownedds
Witam

Odnośnie main.js itd nie pokazywała błędów.

Pokazuje tylko błąd reklamy dodawanej przez cba.pl

Pisało tylko na stronie mail wysłany, ale dochodził bez treści.

usuwając wyżej podany kod, w konsoli są te same błędy co wcześniej, ale mail dochodzi normalnie.

Hmm, ktoś ma jakiś pomysł? Widocznie dane nie są przekazywane przez ten kod AJAXa
viking
A sprawdzisz w końcu co się wysyła? Zakładka sieć w konsoli przeglądarki.
Ownedds
https://zapodaj.net/9fee8e0431dc9.png.html
Pyton_000
Kliknij na tego requesta i pooglądaj zakładki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.