Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz zgłoszeniowy, nie przesyła/pobiera danych
Forum PHP.pl > Forum > Przedszkole
kafar610
Witam
Mam problem z moim małym skrypcikiem bo nie pobiera mi niektorych danych, bierze tylko numer telefonu i email, i nie wiem czemu.
Prosze o wyrozumiałość gdyż jestem świeżakiem biggrin.gif
  1. <?php
  2.  
  3. $email_to = "kafar610@gmail.com";
  4. $email_subject = "Your email subject line";
  5.  
  6. $first_name = $_POST['firstname'];
  7. $last_name = $_POST['lastname'];
  8. $email = $_POST['email'];
  9. $telephone = $_POST['telephone'];
  10. $other = $_POST['other'];
  11.  
  12. $msg = "Imię: $firstname\n" .
  13. "Nazwisko: $last_name\n" .
  14. "email: $email\n" .
  15. "telephone: $telephone\n" .
  16. "Inne komentarze: $other";
  17.  
  18. $headers = 'From: ' . $_POST['email'] . "\r\n" .
  19. 'Content-type: text/html; charset=utf-8';
  20.  
  21. mail($email_to, $email_subject, $msg, $headers);
  22. echo 'Wszystko ok';
  23.  
  24. ?>


  1. <form name="contactform" method="post" action="report.php">
  2.  
  3. <table width="750px" cellspacing="10">
  4.  
  5. <tr>
  6.  
  7. <td valign="top">
  8.  
  9. <label for="firstname">Imię: *</label>
  10.  
  11. </td>
  12.  
  13. <td valign="top">
  14.  
  15. <input type="text" id="firstname" name="firstname" />
  16.  
  17. </td>
  18.  
  19. </tr>
  20.  
  21. <tr>
  22.  
  23. <td valign="top">
  24.  
  25. <label for="last_name">Nazwisko *</label>
  26.  
  27. </td>
  28.  
  29. <td valign="top">
  30.  
  31. <input type="text" name="last_name" maxlength="50" size="30">
  32.  
  33. </td>
  34.  
  35. </tr>
  36.  
  37. <tr>
  38.  
  39. <td valign="top">
  40.  
  41. <label for="email">Adres e-mail *</label>
  42.  
  43. </td>
  44.  
  45. <td valign="top">
  46.  
  47. <input type="text" name="email" maxlength="80" size="30">
  48.  
  49. </td>
  50.  
  51. </tr>
  52.  
  53. <tr>
  54.  
  55. <td valign="top">
  56.  
  57. <label for="telephone">Numer telefonu</label>
  58.  
  59. </td>
  60.  
  61. <td valign="top">
  62.  
  63. <input type="text" name="telephone" maxlength="30" size="30">
  64.  
  65. </td>
  66.  
  67. </tr>
  68.  
  69. <tr>
  70.  
  71. <td valign="top">
  72.  
  73. <label for="other">Pytania, uwagi *</label>
  74.  
  75. </td>
  76.  
  77. <td valign="top">
  78.  
  79. <textarea name="msg" maxlength="1000" cols="25" rows="6"></textarea>
  80.  
  81. </td>
  82.  
  83. </tr>
  84.  
  85. <tr>
  86.  
  87. <td colspan="2" style="text-align:center">
  88.  
  89. <input type="submit" value="Submit">
  90.  
  91. </td>
  92.  
  93. </tr>
  94.  
nospor
znajdz 10 roznic:
$firstname
$first_name

A pozniej poszukaj innych podobnych bledow...
trueblue
$_POST['last_name'];
Nie masz też w formularzu pola other.
nospor
ps: formularz wypada konczyc </form>
kafar610
dobra już poprawiłem wszystko, lecz zacząłem rozszerzać swój skrypcik i natrafiłem na kolejne problemy ...
nie zachowuje wprowadzonych danych, nie wysyła emaila, nie działa walidacja :/

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Zrób ze mnie Elvisa - Wysyłanie wiadomości</title>
  7. </head>
  8. <body>
  9.  
  10. <?php
  11. if (isset($_POST['submit'])) { // sprawdza wartosc zmiennej submit, jesli user nie przeslal formularza to zmienna ta nie bedzie ustawiona
  12. $email_to = "kafar610@gmail.com";
  13. $email_subject = "Your email subject line";
  14. $output_form = false; //jesli false to nie wyswietlamy
  15.  
  16. $nick = $_POST['nick'];
  17. $email = $_POST['email'];
  18. $telephone = $_POST['telephone'];
  19. $other = $_POST['other'];
  20.  
  21. if (empty($nick) && empty($email) && empty($other)) {
  22. echo 'Uzupełnij wszystkie pola<br />';
  23. $output_form = true; // jesli true to wyswietlamy formularz
  24. }
  25.  
  26. if (empty($nick) && (!empty($email)) && (!empty($other))) {
  27. echo 'Nie podałeś imienia i nazwiska.<br />';
  28. $output_form = true;
  29. }
  30.  
  31. if ((!empty($nick)) && empty($email) && (!empty($other))) {
  32. echo 'Nie podałeś emaila<br />';
  33. $output_form = true;
  34. }
  35.  
  36. if ((!empty($nick)) && (!empty($email)) && empty($other)) {
  37. echo 'Nie zadałeś pytania<br />';
  38. $output_form = true;
  39. }
  40.  
  41. }
  42.  
  43. else{
  44. $output_form = true; // jesli skrypt nie udospetnil formularza to koniecznie trrzeba to zrobic zmienna $isset
  45. }
  46.  
  47.  
  48. if ((!empty($nick)) && (!empty($email)) && (!empty($other))) {
  49.  
  50. $msg = "Imię i nazwisko: $name\n" .
  51. "email: $email\n" .
  52. "telephone: $telephone\n" .
  53. "Inne komentarze: $other";
  54.  
  55. $headers = 'From: ' . $_POST['email'] . "\r\n" .
  56. 'Content-type: text/html; charset=utf-8';
  57.  
  58. mail($email_to, $email_subject, $msg, $headers);
  59. echo 'Wszystko ok';
  60. }
  61.  
  62. if ($output_form) { // sprawdza wartosc zmiennej $output_form jesli true to wyswietla formularz
  63. ?>
  64.  
  65. <form name="contactform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  66. <table width="750px" cellspacing="10">
  67. <tr>
  68. <td valign="top">
  69. <label for="nick">Imię i nazwisko *</label>
  70. </td>
  71. <td valign="top">
  72. <input type="text" name="nick" maxlength="50" value="<?php echo $name; ?>" size="30">
  73. </td>
  74. </tr>
  75. <tr>
  76. <td valign="top">
  77. <label for="email">Adres e-mail *</label>
  78. </td>
  79. <td valign="top">
  80. <input type="text" name="email" maxlength="80" value="<?php echo $email; ?>" size="30">
  81. </td>
  82. </tr>
  83. <tr>
  84. <td valign="top">
  85. <label for="telephone">Numer telefonu</label>
  86. </td>
  87. <td valign="top">
  88. <input type="text" name="telephone" maxlength="30" value="<?php echo $telephone; ?>" size="30">
  89. </td>
  90. </tr>
  91. <tr>
  92. <td valign="top">
  93. <label for="other">Pytania, uwagi *</label>
  94. </td>
  95. <td valign="top">
  96. <textarea name="other" maxlength="1000" cols="25" rows="6"><?php echo $other; ?></textarea>
  97. </td>
  98. </tr>
  99. <tr>
  100. <td colspan="2" style="text-align:center">
  101. <input type="submit" value="Submit">
  102. </td>
  103. </tr>
  104. </table>
  105. </form>
  106.  
  107. <?php
  108. }
  109.  
  110. ?>
  111.  
  112. </body>
  113. </html>
nospor
Zaprzyjazniej sie z tym linkiem
Temat: Jak poprawnie zada pytanie
masz tam pare bardzo fajnych i cholernie przydatnych wskazowek, jak przystosowac swoje swrodowisko pracy i jak sprawdzac zmienne.
Milej lektury
kafar610
Właśnie przez takich jak Ty odechciewa mi się uczyć tego języka, dzięki. Nie chce być nie miły ale Ty jako MODERATOR nie powinieneś robić błędów takich jak "Zaprzyjazniej", "swrodowisko" + powinieneś nauczyć się co to ALT to naprawdę nie jest trudne.
Pozdrawiam
rad11
Kafar nie ma co się obrażać i denerwować to logiczne że nikt Ci na tacy nie da rozwiązania. Link do którego Cie odsyła nospor jest naprawdę przydatny dla osób początkujących.
nospor
@kafar610 acha, czyli przez moje literowki odechciewa ci sie uczyc PHP? To skoro takie pierdoły cię rozpraszają, to zajmij się czyms innym i nie truj bez sensu ludziom głowy na forum.

ps: i conajmniej dziwne jest, że to Ty mi wypominasz literówki, podczas gdy sam w kodzie tworzysz tych literówek jeszcze więcej niż ja w postach.
Podany przeze mnie link zawiera informacje, które pomogą ci wyłapać te literowki i inne rownie blache bledy w przeciagu 10 sekund. Wiec albo się zaprzyjaźnij z tym linkiem ale nie wracaj tu na forum wiecej, gdyż forum nie jest od poprawiania literowek w kodzie panow obrażalskich.
kafar610
hahaha widzę że z czytaniem ze zrozumieniem też masz problem, naprawdę spk moderator, i kto powiedział że się obraziłem? Wyraziłem tylko swoje zdanie.
nospor
Jak zwal tak zwal. Dla mnie Twoj poprzedni post brzmial jak post malego dziecka co sie obrazil, a szczeglnie wskazywalo na to o to:
Cytat
Właśnie przez takich jak Ty odechciewa mi się uczyć tego języka,

Dostales garsc przydatnych wskazowek, to zamiast podziekowac, to wyjezdzasz z jakims durnym tekstem.
Jesli w tym momencie byles opetany przez inne uczucia, srednio mnie to interesuje.

Wracajac do problemu: masz jeszcze jakies pytania czy zamierzasz nadal sie nasmiewac z moderatora? Bo jak to drugie to mozemy juz temat zamknac. Jak to pierwsze, to zacznij sie wyrazac wkoncu na poziomie przynajmniej 15-to letniego dziecka smile.gif
kafar610
testowałem, zmienne przybierają wartości, walidacja działa, e-maile wysyła lecz po dodaniu funkcji isset wszystko się chrzani, nie działa nic... formularz się wyświetla ale nic poza tym

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. $output_form = false;
  4. $email_to = "kafar610@gmail.com";
  5. $email_subject = "Your email subject line";
  6.  
  7. $nick = $_POST['nick'];
  8. $email = $_POST['email'];
  9. $telephone = $_POST['telephone'];
  10. $other = $_POST['other'];
  11.  
  12.  
  13.  
  14. if (empty($nick)) {
  15. echo 'nie podałeś imienia i nazwiska<br />';
  16. $output_form = true;
  17. }
  18.  
  19. if (empty($email)) {
  20. echo 'nie podałeś emaila<br />';
  21. $output_form = true;
  22. }
  23.  
  24. if (empty($other)) {
  25. echo 'nie zadałeś pytania<br />';
  26. $output_form = true;
  27. }
  28. }
  29.  
  30. if ((!empty($nick)) && (!empty($email)) && (!empty($other))) {
  31.  
  32. $msg = "Imię i nazwisko: $nick\n" .
  33. "Telefon: $telephone\n" .
  34. "Pytania, uwagi: $other";
  35. mail($email_to, $email_subject, $msg, 'From:' . $email);
  36. echo 'Wysłano e-mail, dziękujemy <br />';
  37. }
  38.  
  39. else{
  40. $output_form = true;
  41. }
  42.  
  43. if ($output_form) { // sprawdza wartosc zmiennej $output_form jesli true to wyswietla formularz
  44. ?>
  45.  
  46. <form name="contactform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  47. <table width="750px" cellspacing="10">
  48. <tr>
  49. <td valign="top">
  50. <label for="nick">Imię i nazwisko *</label>
  51. </td>
  52. <td valign="top">
  53. <input type="text" name="nick" maxlength="50" value="<?php echo $name; ?>" size="30">
  54. </td>
  55. </tr>
  56. <tr>
  57. <td valign="top">
  58. <label for="email">Adres e-mail *</label>
  59. </td>
  60. <td valign="top">
  61. <input type="text" name="email" maxlength="80" value="<?php echo $email; ?>" size="30">
  62. </td>
  63. </tr>
  64. <tr>
  65. <td valign="top">
  66. <label for="telephone">Numer telefonu</label>
  67. </td>
  68. <td valign="top">
  69. <input type="text" name="telephone" maxlength="30" value="<?php echo $telephone; ?>" size="30">
  70. </td>
  71. </tr>
  72. <tr>
  73. <td valign="top">
  74. <label for="other">Pytania, uwagi *</label>
  75. </td>
  76. <td valign="top">
  77. <textarea name="other" maxlength="1000" cols="25" rows="6"><?php echo $other; ?></textarea>
  78. </td>
  79. </tr>
  80. <tr>
  81. <td colspan="2" style="text-align:center">
  82. <input type="submit" value="Submit">
  83. </td>
  84. </tr>
  85. </table>
  86. </form>
  87.  
  88. <?php
  89. }
  90.  
  91. ?>



trueblue
Nie otrzymujesz w $_POST zmiennej submit, nie ma jej w formularzu.
Zmień:
  1. <input type="submit" value="Submit">

na:
  1. <input type="submit" name="submit" value="Submit">
kafar610
Dzięki, wszystko już działa, coś jeszcze warto dodać do tego skryptu ? smile.gif
rad11
Mozesz poczytac o zabezpieczaniu danych.
kafar610
ma ktoś pomysł jak rozwiązać problem kodowania? bo zrobiłem coś takiego, kodowanie działa lecz niestety nie pokazuje nadawcy nie wiem czemu, pokazuje że nadawca jest nieznany...

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. $output_form = false;
  4.  
  5. $headers = array();
  6. $headers[] = "MIME-Version: 1.0";
  7. $headers[] = "Content-type: text/plain; charset=utf-8";
  8. $headers[] = "From: $email";
  9.  
  10. $email_to = "kafar610@gmail.com";
  11. $email_subject = "Your email subject line";
  12.  
  13. $nick = $_POST['nick'];
  14. $email = $_POST['email'];
  15. $telephone = $_POST['telephone'];
  16. $other = $_POST['other'];
  17.  
  18.  
  19.  
  20. if (empty($nick)) {
  21. echo 'nie podałeś imienia i nazwiska<br />';
  22. $output_form = true;
  23. }
  24.  
  25. if (empty($email)) {
  26. echo 'nie podałeś emaila<br />';
  27. $output_form = true;
  28. }
  29.  
  30. if (empty($other)) {
  31. echo 'nie zadałeś pytania<br />';
  32. $output_form = true;
  33. }
  34. }
  35.  
  36. if ((!empty($nick)) && (!empty($email)) && (!empty($other))) {
  37.  
  38. $msg = "Imię i nazwisko: $nick\n" .
  39. "Telefon: $telephone\n" .
  40. "Pytania, uwagi: $other";
  41. mail($email_to, $email_subject, $msg, implode("\r\n", $headers));
  42. echo 'Wysłano e-mail, dziękujemy <br />';
  43. }
  44.  
  45. else{
  46. $output_form = true;
  47. }
  48.  
  49. if ($output_form) { // sprawdza wartosc zmiennej $output_form jesli true to wyswietla formularz
  50. ?>
  51.  
  52. <form name="contactform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  53. <table width="750px" cellspacing="10">
  54. <tr>
  55. <td valign="top">
  56. <label for="nick">Imię i nazwisko <font color="red">*</font></label>
  57. </td>
  58. <td valign="top">
  59. <input type="text" name="nick" maxlength="50" value="<?php echo $nick; ?>" size="30">
  60. </td>
  61. </tr>
  62. <tr>
  63. <td valign="top">
  64. <label for="email">Adres e-mail <font color="red">*</font></label>
  65. </td>
  66. <td valign="top">
  67. <input type="text" name="email" maxlength="80" value="<?php echo $email; ?>" size="30">
  68. </td>
  69. </tr>
  70. <tr>
  71. <td valign="top">
  72. <label for="telephone">Numer telefonu</label>
  73. </td>
  74. <td valign="top">
  75. <input type="text" name="telephone" maxlength="30" value="<?php echo $telephone; ?>" size="30">
  76. </td>
  77. </tr>
  78. <tr>
  79. <td valign="top">
  80. <label for="other">Pytania, uwagi <font color="red">*</font></label>
  81. </td>
  82. <td valign="top">
  83. <textarea name="other" maxlength="1000" cols="25" rows="6"><?php echo $other; ?></textarea>
  84. </td>
  85. </tr>
  86. <tr>
  87. <td colspan="2" style="text-align:center">
  88. <input type="submit" name="submit" value="Submit">
  89. </td>
  90. </tr>
  91. </table>
  92. </form>
  93.  
  94. <?php
  95. }
  96.  
  97. ?>
nospor
Dwa razy ci zwracałem uwagę, byś zastosował się do porad podanych w linku. Jedną z nich jest wyswietlanie wszystkich bledow. Jakbys to zrobil, to bys na ekranie zobaczyl blad.

Z racji ze nie lubie 3 razy pod rząd prosic o to samo, zamykam.
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.