Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Formularz, problem z checkboxami i wysyłaniem pliku
Forum PHP.pl > Forum > Przedszkole
Elysee
WItam,

Pierwszy raz na forum, więc prosze o wyrozumiałość.
Mam oto taką funkcję:
  1. <?php
  2. } else {
  3. //twoje dane
  4. $email = 'kontakt@e-biznet.com.pl';
  5.  
  6. //dane z formularza
  7. $formName = $_POST['formName'];
  8. $formEmail = $_POST['formEmail'];
  9. $formText = $_POST['formText'];
  10. $formFirma = $_POST['formFirma'];
  11. $formSlogan = $_POST['formSlogan'];
  12. $formWww = $_POST['formWww'];
  13. $formSector = $_POST['formSector'];
  14. $formStyle[] = $_POST['formStyle[]'];
  15. $formCharakter[] = $_POST['formCharakter[]'];
  16. $przeznaczenie[] = $_POST['przeznaczenie[]'];
  17. $formColors = $_POST['formColors'];
  18. $formBackground = $_POST['formBackground'];
  19. $formDodatkowe = $_POST['formDodatkowe'];
  20. $uploadfile = $_POST['uploadfile'];
  21. $uploadfile = $_FILES['uploadfile'];
  22. $target_path = '\uploads';
  23. $target_path = $target_path . basename( $_FILES['uploadfile']['name']);
  24.  
  25. if(!empty($formName) && !empty($formEmail) && !empty($formText) && !empty($formFirma) && !empty($formSlogan) && !empty($formWww) && !empty($formSector)
  26. && !empty($formStyle) && !empty($formCharakter) && !empty($formColors) && !empty($formBackground) && !empty($formDodatkowe) && print_r($_FILES))
  27.  
  28.  
  29. {
  30. //--- początek funkcji weryfikującej adres e-mail ---
  31. function checkMail($checkmail) {
  32. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  33. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  34. return true;
  35. }else{
  36. return false;
  37. }
  38. } else {
  39. return false;
  40. }
  41. }
  42. //--- koniec funkcji ---
  43.  
  44. if(checkMail($formEmail)) {
  45. //dodatkowe informacje: ip i host użytkownika
  46. $ip = $_SERVER['REMOTE_ADDR'];
  47. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  48. $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
  49. === FALSE ? 'http' : 'https';
  50. $host = $_SERVER['HTTP_HOST'];
  51. $script = $_SERVER['SCRIPT_NAME'];
  52. $params = $_SERVER['QUERY_STRING'];
  53.  
  54. $currentUrl = $protocol . '://' . $host . $script . '?' . $params;
  55.  
  56. if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $target_path)) {
  57. echo 'uploadfile'. basename( $_FILES['uploadfile']['name']).
  58. 'Plik został załączony';
  59. }
  60. else
  61. {
  62. echo 'Wystąpił problem z przesłaniem pliku. Prosimy o przesłanie pliku bezpośrednio na adres: <a href=mailto:"kontakt@e-biznet.com.pl"><small><small>kontakt@e-biznet.com.pl</small></small></a>.<br/><br/>';
  63. }
  64.  
  65.  
  66.  
  67.  
  68. //treść wiadomości
  69. $mailText = "Treść wiadomości:$formText\nOd: $formName\nEmail: $formEmail\nFirma: $formFirma\nSlogan: $formSlogan\nwww: $formWww\nSektor: $formSector\nStyle: $formStyle\n Charakter: $formCharakter\nKolory logotypu: $formColors\nKolory tła: $formBackground\nDodatkowe informacje: $formDodatkowe \nZałączone pliki: $uploadfile\n
  70.  
  71. \n ($ip, $host)\nLink: $currentUrl";
  72.  
  73.  
  74.  
  75. //adres zwrotny
  76. $mailHeader = "From: $formName <$formEmail>";
  77.  
  78. //funkcja odpowiedzialna za wysłanie e-maila
  79. @mail($email, '[Zamówienie logotypu]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90. //komunikat o poprawnym wysłaniu wiadomości
  91. echo 'Dziękujemy! Wiadomość została wysłana :)<br/><br/>';
  92. } else {
  93. echo 'Adres e-mail jest niepoprawny';
  94. }
  95. }
  96.  
  97.  
  98.  
  99. else {
  100. //komunikat w przypadku nie powodzenia
  101. echo 'Wypełnij wszystkie pola formularza';
  102. }
  103. }
  104.  
  105.  
  106. ?>


I teraz pytanie: dlaczego plik nie jest wysyłany?

Kod z formularza to:
  1. <legend><h4>Dołącz dokumenty lub zdjęcia</h4></legend>
  2. <p class="textarea"><input style="width:600px" type="hidden" name="MAX_FILE_SIZE" value="100000" />
  3. <input style="width:600px" name="uploadfile" type="file" /><br />
  4. <span class="clear"></span></p>



Drugie pytanie: w wiadomości nie wyświetlają mi się opcje z checkboxów

Trzecie pytanie: chciałabym stworzyć sekwencję formularzy (przekierowanie do kolejnego formularza po zatwierdzeniu danych), czy najlepiej będzie użyć iframe? Jeżeli tak, jak to będzie wyglądało w echo?
nospor
Cytat
I teraz pytanie: dlaczego plik nie jest wysyłany?
Skoro go do maila nie załączasz to trudno oczekiwać by się razem z mailem wysłał....
W dokumentacji przy funkcji MAIL masz napisane jak się plik załącza.

Cytat
Drugie pytanie: w wiadomości nie wyświetlają mi się opcje z checkboxów

nie: $formCharakter[] = $_POST['formCharakter[]'];
a: $formCharakter = $_POST['formCharakter'];

Pod $formCharakter będziesz miał wówczas tablicę wartosci. Jeśli chcesz ją dopisać do tekstu (tresci wiadomosci) musisz ją przepuścić np. przez IMPLODE()
Elysee
Dziękuję za promień Oświecenia smile.gif Chodziło mi o to, że plik nie zapisuje się na serwerze w pliku \uploads, nie chcę załączać do maila sad.gif

Z checkboxami próbowałam wszystkiego, było i
  1. $formCharakter[] = $_POST['formCharakter[]'];
i było
  1. $formCharakter = $_POST['formCharakter'];

Nie chce działać i już!

W formularzu jest:

  1. <p style="width:600px">
  2. <span style="width:600px" name="formStyle[]" multiple="multiple">
  3. <img src=".././images/checkbox/word.png"/><input type="checkbox" name="formStyle[]" value="typograficzny" />Typograficzny
  4. <img src=".././images/checkbox/pictoral.png"/><input type="checkbox" name="formStyle[]" value="symboliczny"/>Symboliczny
  5. <img src=".././images/checkbox/abstract.png"/><input type="checkbox" name="formStyle[]" value="abstrakcyjny"/>Abstrakcyjny
  6. <img src=".././images/checkbox/representative.png"/><input type="checkbox" name="formStyle[]" value="ilustrowany"/>Ilustrowany
  7. <img src=".././images/checkbox/character.png"/><input type="checkbox" name="formStyle[]" value="charakterystyczny"/>Charakterystyczny
  8. <img src=".././images/checkbox/no-effect.png"/><input type="checkbox" name="formStyle[]" value="jednorodny"/>Jednorodny
  9. <img src=".././images/checkbox/web2.png"/><input type="checkbox" name="formStyle[]" value="web2"/>Web 2.0
  10. <img src=".././images/checkbox/3d.png"/><input type="checkbox" name="formStyle[]" value="3d"/>3D
  11.  
  12. </span>
  13. </p>
nospor
Pokaż co wyświetla ci
print_r($_POST);
oraz
print_r($_FILES);
po wysłaniu formularza

pokaz też jak wygląda pierwsza linia formularza. o ta:
<form.....
Elysee
W wiadomości dostaję nadal:

"Style: Array
Charakter: Array"
Elysee
pierwsza linijka bez kombinowania <form action="" method="post">

jeżeli chodzi o plik - w mailu nic nie wyświetla,
wcześniej, gdy było "print" miałam chociaż nazwę dokumentu

nospor
Cytat
W wiadomości dostaję nadal:

"Style: Array
Charakter: Array"
Przecież wyraźnie napisałem, że masz użyć IMPLODE.... Nie pisz mi wiec ze nie dziala podczas gdy nie robisz tego o co cię proszą.
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.