Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pusta zmienna $_POST?
Ownedds
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.03.2017

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Zlikwiduj małpki - @ To powinieneś błąd zobaczyć.
Go to the top of the page
+Quote Post
Ownedds
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.03.2017

Ostrzeżenie: (0%)
-----


Witam.
Usunąłem @.

Mail wychodzi, ale nadal nie posiada nic w sobie pobranego ze strony. Tylko schemat podany powyżej.
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
freewalker
post
Post #5





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 14.02.2015

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


czyli nic...

var_dump($_POST); i pokaż wynik.
Go to the top of the page
+Quote Post
Ownedds
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.03.2017

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


$('.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?


--------------------
Go to the top of the page
+Quote Post
Ownedds
post
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.03.2017

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A sprawdzisz w końcu co się wysyła? Zakładka sieć w konsoli przeglądarki.


--------------------
Go to the top of the page
+Quote Post
Ownedds
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.03.2017

Ostrzeżenie: (0%)
-----


https://zapodaj.net/9fee8e0431dc9.png.html
Go to the top of the page
+Quote Post
Pyton_000
post
Post #12





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Kliknij na tego requesta i pooglądaj zakładki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 03:57