Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nie przesyła $_POST
Forum PHP.pl > Forum > Przedszkole
d.stp
Nie wiem dlaczego, ale $_POST nie przesyła mi wszystkich danych. Przesyła kilka pierwszych i 3 ostatnie. Dziwna sprawa z tym...

Najlepiej chyba będzie jak wkleję całość:

  1. <?php
  2.  
  3. if (isset($_POST['send_form2'])) {
  4. print_r($_POST).'<br /><br />'.$_POST['order'];
  5. /* Attachment */
  6. $attachment_tmp_name = $_FILES['file']['tmp_name'];
  7. $attachment_name = $_FILES['file']['name'];
  8.  
  9. /* Validation */
  10. if (empty($_POST['company_name']) or empty($_POST['email'])) {
  11. $error = true;
  12. $error_msg = 'Proszę wypełnić pola oznaczone gwiazdką.';
  13. }
  14.  
  15. if (is_uploaded_file($attachment_tmp_name)) {
  16. $attachment_type = explode(".",$attachment_name);
  17. if ($attachment_type[1] != "gif" or $attachment_type[1] != "jpg" or $attachment_type != "pfd") {
  18. $error = true;
  19. $error_msg = 'Nieprawidłowy format pliku';
  20. }
  21. }
  22.  
  23. if (!preg_match("/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|
    mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i"
    , $_POST['email'])) {
  24. $error = true;
  25. $error_msg = 'Wpisz poprawny adres email.';
  26. }
  27.  
  28. if (!isset($error)) {
  29.  
  30. srand((double)microtime()*1000000);
  31. $znacznik = md5(uniqid(rand()));
  32. $title = "=?UTF-8?B?".base64_encode('Otrzymałeś nową wiadomość od '.$_POST['email'])."?=";
  33. $date_today = date('d-m-Y');
  34. $hour_mail = date('H:i:s');
  35.  
  36. /* Headers */
  37. $headers = "From: $my_name <".$my_email.">\n";
  38. $headers .= "MIME-Version: 1.0\n";
  39. $headers .= "Content-Type: multipart/mixed;\n";
  40. $headers .= "\tboundary=\"___$znacznik==\"";
  41.  
  42. $msg = "--___$znacznik==\n";
  43. $msg .= "Content-Type: text/html; charset=\"utf-8\"\n";
  44. $msg .= "Content-transfer-encoding: 7bit\n\n";
  45. $msg .= '
  46. Otrzymałeś wiadomość od: '.$_POST['name'].' ('.$_POST['email'].') dnia: '.$date_today.', o godzine: '.$hour_mail.'<br /><br />
  47. Nazwa firmy: '.$_POST['company_name'].'<br />
  48. Imię i nazwisko: '.$_POST['name'].'<br />
  49. Telefon: '.$_POST['phone'].'<br />
  50. Nazwa produktu: '.$_POST['product_name'].'<br />
  51. Wymiary zewnętrzne: wysokość: '.$_POST['height'].', szerokość: '.$_POST['width'].'<br />
  52. Informacje dodatkowe: '.$_POST['additional_information'].'<br />
  53. Ilość frontów: '.$_POST['count'].'<br /><br />
  54. <strong>Rodzaj podłoża:</strong> '.$_POST['type_of_soil'].'<br />
  55. <strong>Zamówienie:</strong> '.$_POST['order'].'<br />
  56. <strong>Rodzaj frontu:</strong> '.$_POST['type_of_soil2'].'<br />
  57. <strong>Powierzchnia:</strong> '.$_POST['surface'].'<br />
  58. <strong>Okno w klawiaturze</strong> '.$_POST['window'].'<br />
  59. ';
  60. $msg .= "\n";
  61.  
  62. /* Attachment */
  63. if (is_uploaded_file($attachment_tmp_name)) {
  64. $msg .="--___$znacznik==\n";
  65. $msg .="Content-Type: image/png/pdf/jpg\n";
  66. $msg .="Content-Disposition: attachment;\n";
  67. $msg .=" filename=\"$attachment_name\"\n";
  68. $msg .="Content-Transfer-Encoding: base64\n\n";
  69. $open_file = fopen($attachment_tmp_name,"rb");
  70. $data_file = fread($open_file,filesize($attachment_tmp_name));
  71. fclose($open_file);
  72. $msg .= chunk_split(base64_encode($data_file));
  73. $msg .="--___$znacznik==--\n";
  74. }
  75.  
  76. // Send
  77. if (@mail($_POST['email'], $title, $msg, $headers)) {
  78. echo 'Poprawnie wysłano wiadomość. Wkrótce odpowiemy.<br /><br />';
  79. }
  80. else {
  81. echo 'Wystąpił błąd. Skontaktuj się z administratorem strony.';
  82. }
  83.  
  84. }
  85. else {
  86. echo $error_msg.'<br /><a href="java script:history.back();">Wróć i popraw</a><br /><br />';
  87. }
  88. }
  89.  
  90. ?>
  91.  
  92. <div class="left">
  93. <form enctype="multipart/form-data" action="" method="post" id="form">
  94. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  95. <table border="0" cellpadding="5" cellspacing="0">
  96. <tr>
  97. <td>* Nazwa firmy</td>
  98. <td><input type="text" name="company_name" class="validate[required] text-input" /></td>
  99. </tr>
  100. <tr>
  101. <td>Imię i nazwisko</td>
  102. <td><input type="text" name="name" /></td>
  103. </tr>
  104. <tr>
  105. <td>* Adres email</td>
  106. <td><input type="text" name="email" class="validate[required,custom[email]] text-input" /></td>
  107. </tr>
  108. <tr>
  109. <td>Telefon kontaktowy</td>
  110. <td><input type="text" name="phone" /></td>
  111. </tr>
  112. <tr>
  113. <td>Nazwa produktu</td>
  114. <td><input type="text" name="product_name" /></td>
  115. </tr>
  116. <tr>
  117. <td>Wymiary zewnętrzne<br />(w milimetrach)</td>
  118. <td><input type="text" name="height" class="count" /> wys. <input type="text" name="width" class="count" /> szer.</td>
  119. </tr>
  120. <tr>
  121. <td valign="top">Informacje dodatkowe</td>
  122. <td><textarea name="additional_information" cols="" rows=""></textarea></td>
  123. </tr>
  124. <tr>
  125. <td>Załącz plik/rysunek</td>
  126. <td><input type="file" name="file" /> <a href="#" id="a"><a href="#" class="tip_trigger">(?)<span class="tip">możliwe rozszerzenia:<br />png, jpg, pdf</span></a></a></td>
  127. </tr>
  128. <tr>
  129. <td>Ilość frontów</td>
  130. <td><input type="text" name="count" size="8" class="count" /></td>
  131. </tr>
  132. <tr>
  133. <td colspan="2">
  134. <strong>Rodzaj podłoża</strong><br /><br />
  135. <input type="radio" name="type_of_soil" value="wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)" checked /> wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)<br />
  136. <input type="radio" name="type_of_soil" value="niskoenergetyczne (PP, PE, PS, lakier proszkowy)" /> niskoenergetyczne (PP, PE, PS, lakier proszkowy)
  137. </td>
  138. </tr>
  139. </table>
  140. </div>
  141.  
  142. <!-- Right -->
  143. <div class="right">
  144. <table border="0" cellpadding="5" cellspacing="0" width="100%">
  145. <tr>
  146. <td width="50%">
  147. <strong>Zamówienie:</strong><br /><br />
  148. <input type="radio" name="order" value="jednorazowe" checked /> jednorazowe<br />
  149. <input type="radio" name="order" value="miesięczne" /> miesięczne<br />
  150. <input type="radio" name="order" value="kwartalne" /> kwartalne<br />
  151. <input type="radio" name="order" value="roczne" /> roczne
  152. </td>
  153. <td>
  154. <strong>Rodzaj frontu</strong><br /><br />
  155. <input type="radio" name="type_of_soil2" value="płaski" checked /> płaski<br />
  156. <input type="radio" name="type_of_soil2" value="tłoczony" /> tłoczony<br />
  157. <input type="radio" name="type_of_soil2" value="z wsuwką" /> z wsuwką<br />
  158. <input type="radio" name="type_of_soil2" value="inny" /> inny
  159. </td>
  160. </tr>
  161. <tr>
  162. <td colspan="2">
  163. <br /><strong>Powierzchnia</strong><br /><br />
  164. <input type="radio" name="surface" value="matowa" checked /> matowa<br />
  165. <input type="radio" name="surface" value="antyrefleksyjna (antiglare)" /> antyrefleksyjna (antiglare)<br />
  166. <input type="radio" name="surface" value="błyszcząca" /> błyszcząca<br />
  167. </td>
  168. </tr>
  169. <tr>
  170. <td colspan="2">
  171. <br /><strong>Okno w klawiaturze</strong><br /><br />
  172. <input type="radio" name="window" value="transparentne błyszczące (LCD)" checked /> transparentne błyszczące (LCD)<br />
  173. <input type="radio" name="window" value="półtransparentne z filtrem (LED)" /> półtransparentne z filtrem (LED)<br />
  174. <input type="radio" name="window" value="okno usztywniane, grubość (mm)" /> okno usztywniane, grubość (mm) <input type="text" name="window_stiffened_size" class="count" /><br />
  175. <input type="radio" name="window" value="z okno z panelem dotykowym, wymiary" /> okno z panelem dotykowym, wymiary <input type="text" name="window2_height" class="count" /> wys. <input type="text" name="window2_width" class="count" /> szer.<br />
  176. <input type="radio" name="window" value="okno wycinan" /> okno wycinane<br />
  177. <input type="radio" name="window" value="bez okna" /> bez okna<br />
  178. </td>
  179. </tr>
  180. <tr>
  181. <td colspan="2" align="right"><br /><input type="submit" value="wyślij zapytanie" name="send_form2" /></td>
  182. </tr>
  183. </table>
  184. </div>
  185. <div style="clear: both;"></div>
  186. </form>
  187. </div>


dostaje takie coś:
  1. Array ( [MAX_FILE_SIZE] => 50000 [company_name] => nazwa firmy [name] => imię i nazwisko [email] => example@example.org [phone] => 123123123 [product_name] => nazwa produktu [height] => 100 [width] => 200 [additional_information] => info dodatkowe [count] => 10 [type_of_soil] => wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal) [window_stiffened_size] => 10 [window2_height] => 0 [window2_width] => 0 [send_form2] => wyślij zapytanie )


Logicznie to jest nie możliwe sciana.gif

doszedłem do tego, że jak wyrzucę:
  1. </div>
  2.  
  3. <!-- Right -->
  4. <div class="right">
  5. <table border="0" cellpadding="5" cellspacing="0" width="100%">


to wtedy działa, ale przecież to jest bez sensu
!*!
Faktalnie to rozplanowałeś.

U mnie wysyła się:

  1. (
  2. [MAX_FILE_SIZE] => 50000
  3. [company_name] => asd
  4. [name] => asd
  5. [email] => asd
  6. [phone] => 123
  7. [product_name] => 123
  8. [height] => 123
  9. [width] => 123
  10. [additional_information] => d
  11. [count] => 2
  12. [type_of_soil] => wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)
  13. [order] => jednorazowe
  14. [type_of_soil2] => płaski
  15. [surface] => matowa
  16. [window] => transparentne błyszczące (LCD)
  17. [window_stiffened_size] => 22
  18. [window2_height] => 22
  19. [window2_width] => 22
  20. [send_form2] => wyślij zapytanie
  21. )


Przy czym występuje błąd, nie zdefiniowałeś zmiennej

Cytat
Notice: Undefined variable: my_name in /var/www/php.pl/1.php on line 74
Notice: Undefined variable: my_email in /var/www/php.pl/1.php on line 74


edycja:
action musi mieć w sobie # w formularzu.

Kod
action="#"
d.stp
to jakim cudem u mnie się nie wysyła? próbowałem na localu i na serwerze i to samo.

Dlaczego fatalnie to rozplanowałem?

Dziwne...

skopiowałem ten kod z forum i wkleiłem do nowego pliku - działa, ale jak wkleję go do mojego pliku ze stroną to już nie działa.

Jakby był ktoś taki miły...
http://wklej.org/hash/e369a43192d/
!*!
Edytowałem post, popatrz jeszcze raz dlaczego.

- sprawdzaj dane czy istnieją przez isset()
- wywal @ z kodu np. tu @mail to nie zoo
- preg do maila w ogóle wymiata, po co sprawdzasz czy com/biz itd?

Edycja:

U mnie działają oba, po dodaniu #, poza tym że nie masz zmiennej order, jest ok.
d.stp
po co mam sprawdzać dane funkcją isset? przecież to bezsensu
ta @ to nie wiem skąd się wzięła, ale to jest nieistotne
znalazłem takie rozwiązanie i działa bardzo dobrze więc niech zostanie biggrin.gif

# w action nie jest wymagany, ale żeby nie było to dodałem

dalej nie wiem co może być nie tak :/

edit:

to dlaczego mi to nie działa?
!*!
Cytat
po co mam sprawdzać dane funkcją isset? przecież to bezsensu

poczytaj czym się różnią.
Cytat
ta @ to nie wiem skąd się wzięła, ale to jest nieistotne

Błędy się naprawia, a nie wygłusza.

Cytat
# w action nie jest wymagany, ale żeby nie było to dodałem

Jest. I to załatwia problem, w obu przypadkach dane wysyłają się w całości.
d.stp
... wysłałem Ci link do strony gdzie jest ten formularz - sam sprawdź... wiem o wygłuszaniu błędów, że tak się nie robi, ale to nie jest teraz istotne.
!*!
Widziałem, nie wiem co Ci się w takim razie nie wysyła. Dane z formularza są wysyłane. Sprecyzuj.
Zamień kod, dla lepszej czytelnośći

  1. echo '<pre>';
  2. print_r($_POST).'<br /><br />'.$_POST['order'];
  3. echo '</pre>';

I wszytko jest przesyłane.
d.stp
  1. (
  2. [MAX_FILE_SIZE] => 50000
  3. [company_name] => adsasd
  4. [name] =>
  5. [email] => aasd@asd.pl
  6. [phone] =>
  7. [product_name] =>
  8. [height] =>
  9. [width] =>
  10. [additional_information] =>
  11. [count] =>
  12. [type_of_soil] => wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)
  13. [window_stiffened_size] =>
  14. [window2_height] =>
  15. [window2_width] =>
  16. [send_form2] => wyślij zapytanie
  17. )
!*!
  1. (
  2. [MAX_FILE_SIZE] => 50000
  3. [company_name] => asd
  4. [name] => asd
  5. [email] => asd@ss.ss
  6. [phone] => 111
  7. [product_name] => produkt
  8. [height] => 22
  9. [width] => 33
  10. [additional_information] => a
  11. [count] => 33
  12. [type_of_soil] => wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)
  13. [orders] => jednorazowe
  14. [type_of_soil2] => płaski
  15. [surface] => matowa
  16. [window] => transparentne błyszczące (LCD)
  17. [window_stiffened_size] => 44
  18. [window2_height] => 55
  19. [window2_width] => 66
  20. [send_form2] => wyślij zapytanie
  21. )


cool.gif
d.stp
nie denerwuj mnie biggrin.gif

dziwne, usunąłem ten kawałek kodu:
  1. <script type="text/javascript" charset="utf-8">
  2. $(function(){
  3. $("input:text, input:radio, input:file, textarea, select, button").uniform();
  4. });
  5.  
  6. jQuery(document).ready(function(){
  7. // binds form submission and fields to the validation engine
  8. jQuery("#form").validationEngine();
  9. });
  10. </script>


i działa... co tu może być nie tak?
!*!
Nie wiem czy zauważyłeś, ale jak nic nie wpiszesz w pola to są one puste... to odbierasz jako "nie wysyłane" ?
d.stp
no niby masz rację, ale jak to naprawić biggrin.gif
!*!
Ni jak, bo niby po co?
d.stp
tylko pola z gwiazdką mają być wymagane. Jak to naprawić żeby działało? ;d
!*!
http://pl.wikibooks.org/wiki/PHP
http://pl.wikibooks.org/wiki/PHP/Formularze

Sprawdzaj czy zostały wysłane, jakiego są typu i czy się zgadzają np. z preg.
d.stp
ja nie chcę tego walidować... chcę się dowiedzieć tylko dlaczego nie wysyłają się wszystkie pola
!*!
Wysyłają. Przecież masz je w tablicy POST, a to że nie mają wartości to chyba oczywiste.
d.stp
nie wysyłają...

jak usune to:

  1. $(function(){
  2. $("input:text, input:radio, input:file, textarea, select, button").uniform();
  3. });

to wtedy wszystko działa i wszystko się wysyła.
!*!
Czyli co?
d.stp
no właśnie nie wiem co ph34r.gif
!*!
W czym masz problem, zadałem Ci to pytanie już dawno. Masz formularz? Masz. Wpisujesz dane do wszystkich pól? Wpisujesz. Wysyła się to co wpisałeś? Wysyła, Więc nie widzę problemu. Zarówno z JS i bez skrypt działa.
d.stp
NIE WYSYŁA SIĘ CAŁY POST

ile razy mam to pisać? masz link, sprawdź sam to się przekonasz że nie idzie wszystko... a jak usunę te jquery to wtedy działa

  1. (
  2. [MAX_FILE_SIZE] => 50000
  3. [company_name] => asdasd
  4. [name] => asdasd
  5. [email] => asdasd@sad.pl
  6. [phone] => 123123
  7. [product_name] => asdasd
  8. [height] => 123
  9. [width] => 123
  10. [additional_information] => asdasd
  11. [count] => 123
  12. [type_of_soil] => wysokoenergetyczne (ABS, PC, ABS/PC, Aluminium, Stal)
  13. [window_stiffened_size] => 123
  14. [window2_height] => 123
  15. [window2_width] => 3213
  16. [send_form2] => wyślij zapytanie
  17. )
d.stp
a inputy radio? jest tylko 1, a reszta? o to mi chodzi
!*!
Skrypt JS jest kiepski. Wymień go na coś nowszego.
d.stp
a nie da rady tego naprawić jakoś?
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.