Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz php - tekst potwierdzający
Forum PHP.pl > Forum > Przedszkole
bulion
Witam.

Mam pytanie w sprawie prostego formularza załączającego i wysyłającego plik.
Przy pomyślnie (bądź nie) wysłanym pliku, ładują się komunikaty:

  1. <?php
  2. // wyslanie listu
  3. if (mail($odbiorca,$tytul,$tresc,$naglowki))
  4. {
  5. print "E-mail z zalacznikiem zostal wyslany poprawnie.";
  6. }
  7. else
  8. {
  9. print "E-mail NIE zostal wyslany poprawnie.
  10. <br>Prosimy o <a href=\"javascript:history.back();\">powrót</a> i wyslanie e-maila ponownie.";
  11. }
  12. ?>


Chciałbym by komunikaty pojawiały się poniżej formularza (kod na dole), wraz z zachowaniem zawartości strony,
a nie tak jak dotychczas - ładuje się nowa, pusta strona i w lewym górnym rogu wyświetla się sam komunikat.

KOD SKRYPTU:

Na stronie gdzie wyświetla się formularz:
  1. <FORM NAME="zalacznik" METHOD="post" ACTION="wyslij.php" ENCTYPE="multipart/form-data">
  2. <input type="hidden" name="wyslij" value="1" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  4. <INPUT type="file" name="plik1">
  5. <INPUT TYPE="SUBMIT" VALUE="Вишли вкладення">
  6. </FORM>


Zwartość pliku "wyslij.php"

  1. <?php
  2. //sprawdzenie czy zalacznik pochodzi z formularza
  3. if ($_POST[&#092;"wyslij\"]==1)
  4. {
  5. srand((double)microtime()*1000000);
  6. $znacznik = md5(uniqid(rand()));
  7.  
  8. // dane o odbiorcy, nadawcy
  9. $odbiorca=&#092;"b@ja.pl\";
  10. $tytul=&#092;"Formularz - CV - POLSKA\";
  11. $nadawca = &#092;"Mail ze strony\";
  12. $nadawca_mail=&#092;"b@ja.pl\";
  13.  
  14. // tresc listu
  15. $tresclistu = &#092;"CV z formularza ze strony internetowej. POLSKA\";
  16.  
  17. // definicja naglówków
  18. $naglowki = &#092;"From: $nadawca <$nadawca_mail>\n\";
  19. $naglowki .= &#092;"MIME-Version: 1.0\n\";
  20. $naglowki .= &#092;"Content-Type: multipart/mixed;\n\";
  21. $naglowki .= &#092;"\tboundary=\"___$znacznik==\"\";
  22.  
  23. // naglówki listu
  24. $tresc=&#092;"--___$znacznik==\n\";
  25. $tresc .=&#092;"Content-Type: text/plain; charset=\"iso-8859-2\"\n\";
  26. $tresc .=&#092;"Content-Transfer-Encoding: 8bit\n\";
  27. $tresc .=&#092;"\n$tresclistu\n\";
  28.  
  29. // naglówki i obsluga zalacznika
  30. $plik_nazwa_tmp = $_FILES[&#092;"plik1\"][\"tmp_name\"];
  31. $plik_nazwa_oryginalna = $_FILES[&#092;"plik1\"][\"name\"];
  32. $plik_wielkosc = $_FILES[&#092;"plik1\"][\"size\"];
  33.  
  34. if (is_uploaded_file($plik_nazwa_tmp))
  35. {
  36. $tresc .=&#092;"--___$znacznik==\n\";
  37. $tresc .=&#092;"Content-Type: image/gif\n\";
  38. $tresc .=&#092;"Content-Disposition: attachment;\n\";
  39. $tresc .=&#092;" filename=\"$plik_nazwa_oryginalna\"\n\";
  40. $tresc .=&#092;"Content-Transfer-Encoding: base64\n\n\";
  41. $f = fopen($plik_nazwa_tmp,&#092;"rb\");
  42. $dane = fread($f,filesize($plik_nazwa_tmp));
  43. fclose($f);
  44. $tresc .= chunk_split(base64_encode($dane));
  45. $tresc .=&#092;"--___$znacznik==--\n\";
  46. }
  47.  
  48. // wyslanie listu
  49.  if (mail($odbiorca,$tytul,$tresc,$naglowki))
  50.  {
  51.  print &#092;"E-mail z zalacznikiem zostal wyslany poprawnie.\";
  52.  }
  53.  else
  54.  {
  55.  print &#092;"E-mail NIE zostal wyslany poprawnie.
  56.  
  57. Prosimy o <a href=&#092;"javascript:history.back();\">powrót i wyslanie e-maila ponownie.\";
  58.  }
  59. }
  60. ?>


Bardzo dziękuję za pomoc. </a href=\"java script:history.back();\">
Crozin
W atrybucie action forularza podajesz plik, w którym jest sam formularz. Następnie prosty skrypt:
  1. <?
  2.  
  3. if(isset($_POST['wyslij']) && $_POST['wyslij'] == 1):
  4. //tutaj obsluga wysylania maila
  5. else: ?>
  6. tutaj formularz 
  7. <? endif; ?>
bulion
dziękuję za odpowiedź, domyślam się ale nie w pełni co jak zrobić smile.gif
ten kod mam wkleić po kodzie formularza? czy ruszać plik wyslij.php?
czy mogę prosić o informację step-by-step co gdzie wkleić tak by działało.

dziękuję.
bhacas
Myślę że mniej więcej o takie coś Ci chodziło:

  1. <FORM NAME="zalacznik" METHOD="post" ACTION="" ENCTYPE="multipart/form-data">
  2. <input type="hidden" name="wyslij" value="1" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  4. <INPUT type="file" name="plik1">
  5. <INPUT TYPE="SUBMIT" VALUE="Вишли вкладення">
  6. </FORM>
  7.  
  8. <? if(isset($_POST['wyslij']) && $_POST['wyslij'] == 1)
  9. {
  10. //sprawdzenie czy zalacznik pochodzi z formularza
  11. if ($_POST[&#092;"wyslij\"]==1)
  12. {
  13. srand((double)microtime()*1000000);
  14. $znacznik = md5(uniqid(rand()));
  15.  
  16. // dane o odbiorcy, nadawcy
  17. $odbiorca=&#092;"b@ja.pl\";
  18. $tytul=&#092;"Formularz - CV - POLSKA\";
  19. $nadawca = &#092;"Mail ze strony\";
  20. $nadawca_mail=&#092;"b@ja.pl\";
  21.  
  22. // tresc listu
  23. $tresclistu = &#092;"CV z formularza ze strony internetowej. POLSKA\";
  24.  
  25. // definicja naglówków
  26. $naglowki = &#092;"From: $nadawca <$nadawca_mail>\n\";
  27. $naglowki .= &#092;"MIME-Version: 1.0\n\";
  28. $naglowki .= &#092;"Content-Type: multipart/mixed;\n\";
  29. $naglowki .= &#092;"\tboundary=\"___$znacznik==\"\";
  30.  
  31. // naglówki listu
  32. $tresc=&#092;"--___$znacznik==\n\";
  33. $tresc .=&#092;"Content-Type: text/plain; charset=\"iso-8859-2\"\n\";
  34. $tresc .=&#092;"Content-Transfer-Encoding: 8bit\n\";
  35. $tresc .=&#092;"\n$tresclistu\n\";
  36.  
  37. // naglówki i obsluga zalacznika
  38. $plik_nazwa_tmp = $_FILES[&#092;"plik1\"][\"tmp_name\"];
  39. $plik_nazwa_oryginalna = $_FILES[&#092;"plik1\"][\"name\"];
  40. $plik_wielkosc = $_FILES[&#092;"plik1\"][\"size\"];
  41.  
  42. if (is_uploaded_file($plik_nazwa_tmp))
  43. {
  44. $tresc .=&#092;"--___$znacznik==\n\";
  45. $tresc .=&#092;"Content-Type: image/gif\n\";
  46. $tresc .=&#092;"Content-Disposition: attachment;\n\";
  47. $tresc .=&#092;" filename=\"$plik_nazwa_oryginalna\"\n\";
  48. $tresc .=&#092;"Content-Transfer-Encoding: base64\n\n\";
  49. $f = fopen($plik_nazwa_tmp,&#092;"rb\");
  50. $dane = fread($f,filesize($plik_nazwa_tmp));
  51. fclose($f);
  52. $tresc .= chunk_split(base64_encode($dane));
  53. $tresc .=&#092;"--___$znacznik==--\n\";
  54. }
  55.  
  56. // wyslanie listu
  57.  if (mail($odbiorca,$tytul,$tresc,$naglowki))
  58.  {
  59.  print &#092;"E-mail z zalacznikiem zostal wyslany poprawnie.\";
  60.  }
  61.  else
  62.  {
  63.  print &#092;"E-mail NIE zostal wyslany poprawnie.
  64.  
  65. Prosimy o <a href=&#092;"javascript:history.back();\">powrót i wyslanie e-maila ponownie.\";
  66.  }
  67. }
  68. }
  69. ?>
bulion
wkleiłem zawartosć do "wyslij.php" i nie działa.
jeszcze jutro na to spojrzę, ale może jest jakiś błąd w tym podanym kodzie?
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.