Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysyłanie załącznika w formularzu, problem z fileopenanddecode()
motor
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Witam skorzystałem z gotowego skryptu który znalazłem na forum tzn:

http://php.webhelp.pl/index.php?id=106&roz=php&ac=read


Wyskakuje mi taki błąd
Fatal error: Call to undefined function: fileopenanddecode() in

Nie wiem co jest grane jak mogę to obejść ?

Pozdrawiam

Ten post edytował motor 2.02.2006, 18:48:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Wyglada na to ze nie umiesciles w swoim skrypcie funkcji ktora jest tam opisana:
  1. <?php
  2.  
  3. //funkcja odczytująca plik i kodująca go d o formatu base64 zgodnie z RFC 2045 
  4. function fileopenanddecode($file) { 
  5. if (is_readable($file)) { 
  6.  $fd = fopen($file, "r"); 
  7.  $plik = fread($fd, filesize($file)); 
  8.  $encoded = chunk_split(base64_encode($plik)); 
  9.  fclose($fd);  
  10. } 
  11. return $encoded; 
  12. }
  13.  
  14. ?>
Go to the top of the page
+Quote Post
motor
post
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


nie nie przpisałem słowo w słowo
  1. <?    
  2.  if($tak == "1"){
  3.  
  4.         
  5. ///
  6. $boundary = "-->===_54654747_===<---->>4255==_"; 
  7. $sendto ="zundap@vp.pl";
  8. // Zmiennych $subject i $sendto nie  musimy w zaden sposób przerabiac. 
  9.  
  10. // Teraz trzeba sformatowac naglówek. 
  11. $from = "biuro@nokto.pl.net"  ;
  12.         $head = "From: $from\n"; 
  13.         $head = $head . "Reply-To: $a_row[title]\n"; 
  14.         $head = $head . "X-Mailer: php\n"; 
  15.         $head = $head . "X-Sender: $from\n"; 
  16.         $head = $head . "MIME-version: 1.0\n"; 
  17.         $head = $head . "Content-type: multipart/mixed; "; 
  18.         $head = $head . "boundary=\"$boundary\"\n"; 
  19.         $head = $head . "Content-transfer-encoding: 7BIT\n"; 
  20.         $head = $head . "X-attachments: $filename_name;\n\n"; 
  21.  
  22. // Jeszcze tylko tresc wiadomosci i  mozemy slac poczte  
  23.  
  24.        $mesg = "--" . $boundary . "\n";    //pamietamy dwa minusy na poczatku 
  25.         $mesg = $mesg . "Content-Type: text/plain; charset=\"us-ascii\"\n\n"; 
  26.         $mesg = $mesg . $message . "\n"; 
  27.         $mesg = $mesg . "--" . $boundary . "\n";    //pamietamy dwa minusy na poczatku 
  28.          $mesg = $mesg . "Content-type: " . $filename_type  . "; name=\"$filename_name\";\n";         
  29.         $mesg = $mesg . "Content-Transfer-Encoding: base64\n"; 
  30.         $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename_name\"\n\n"; 
  31.         $mesg = $mesg . fileopenanddecode($filename) . "\n";   //czytamy plik i go kodujemy 
  32.         $mesg = $mesg . "--" . $boundary . "-- \n"; //pamietamy dwa minusy na poczatku  i na koncu 
  33.  
  34.  
  35.  
  36. //funkcja odczytujaca plik i kodujaca go d o formatu base64 zgodnie z RFC 2045 
  37.     function fileopenanddecode($file) { 
  38.         if (is_readable($file)) { 
  39.              $fd = fopen($file, "r"); 
  40.              $plik = fread($fd, filesize($file)); 
  41.              $encoded = chunk_split(base64_encode($plik)); 
  42.              fclose($fd);     
  43.         } 
  44.         return $encoded; 
  45.     } 
  46.  
  47. // i to wszystko teraz tylko  
  48. mail($sendto, $subject, $mesg, $head);  
  49. //i poszlo 
  50.  
  51. ///
  52.  
  53.             
  54.                 
  55.             
  56.             }else{
  57.             ?>
  58. <form name="form1" method="post" action="wyslij.php?&tak=1" enctype="multipart/form-data"> 
  59. <table width="300" border="0" cellspacing="0" cellpadding="0"> 
  60. <tr><td>subject</td><td><input type="text" name="subject"></td></tr> 
  61. <tr><td>replayto</td><td><input type="text" name="replayto"></td></tr> 
  62. <tr><td>from</td><td><input type="text" name="from"></td></tr> 
  63. <tr><td>message</td><td><textarea name="message" wrap="VIRTUAL"></textarea></td></tr> 
  64. <tr><td>filename</td><td><input type="file" name="filename"></td></tr> 
  65. <tr><td colspan="2"><input type="submit" name="Submit" value="Submit"></td></tr> 
  66. </table> 
  67. </form> 
  68. <?
  69. }
  70.             ?>    


Ten post edytował motor 2.02.2006, 18:55:54
Go to the top of the page
+Quote Post
Neojawor
post
Post #4





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


kożystasz z funkcji fileopenanddecode() w linii 32, a deklarujesz ją dopiero w 39. php czyta od góry. W linii 32 jeszcze nie wie co to za funkcja

EDIT:
Linie od 37 do 47 (włącznie) przenieś sobie na początek skryptu, powinno wszystko działać (chyba, że są inne błędy)

Ten post edytował Neojawor 2.02.2006, 23:48:11
Go to the top of the page
+Quote Post
motor
post
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) masz rację zrobiłem jak mówisz i wszystko działa.

Temat uważam za zamknięty.

Pozdrawiam
Go to the top of the page
+Quote Post
Sabistik
post
Post #6


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


No nie wpadl bym na to ze ktos uzywa jeszcze php3.. radze zrobic upgrade. mamy juz PHP5!

Od PHP4 fukcja moze byc zdeklarowana powyzej lub ponizej jej wywolania.
Go to the top of the page
+Quote Post
lukash82
post
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam. Mam problem z wysylaniem zalacznikow za pomoca tego samego skryptu dlatego nie zaczynam nowego tematu tylko odgrzebuje ten temat. A wiec tak jak pisalem probuje uzyc tego samego skryptu. Maile dochodza jak nalezy ale niestety zalacznik nie dochodzi:/ Przychodza za to takie smieci na maila:

Odpowiedz do: test3
X-Mailer: PHP
X-Sender: test3
MIME-version: 1.0
Content-type: multipart/mixed; boundary="-->===_54654747_===<---->>4255==_"
Content-transfer-encoding: 7BIT
X-attachments: ;



---->===_54654747_===<---->>4255==_
Content-Type: text/plain; charset="us-ascii"

test3
---->===_54654747_===<---->>4255==_
Content-type: ; name="";
Content-Transfer-Encoding: base64
Content-disposition: attachment; = ""


---->===_54654747_===<---->>4255==_--

Ale to rozumiem, bo tak jest skonstrowany plik wysylajacy maila. Nie wiem jednak dlaczego nie przychodzi na maila zalacznik...? Probowalem wysylac plik tekstowy, txt i obrazek gif i nic. Nie wiem czemu to nie dziala i nie mam zbytnio pomyslu jak to rozwiazac... Jesli mozecie mi jakos pomoc albo podpowiedziec co robie zle to prosze o pomoc. Ponizej zamieszczam jeszcze raz ten skrytp do wysylania bo moze cos tam jest zle zrobione a czego nie widze:
  1. <?php
  2. $dane = $_POST['dane'];
  3. $email = $_POST['email'];
  4. $telefon = $_POST['telefon'];
  5. $miasto = $_POST['miasto'];
  6. $tresc = $_POST['tresc'];
  7.  
  8. $boundary = "-->===_54654747_===<---->>4255==_";
  9.  
  10. $head = "Od: $dane\n";
  11. $head = $head . "Odpowiedz do: $email\n";
  12. $head = $head . "X-Mailer: PHP\n";
  13. $head = $head . "X-Sender: $dane\n";
  14. $head = $head . "MIME-version: 1.0\n";
  15. $head = $head . "Content-type: multipart/mixed; ";
  16. $head = $head . "boundary=\"$boundary\"\n";
  17. $head = $head . "Content-transfer-encoding: 7BIT\n";
  18. $head = $head . "X-attachments: $filename_name;\n\n";
  19.  
  20. function fileopenanddecode($file) 
  21. {
  22.  if (is_readable($file)) 
  23. {
  24. $fd = fopen($file, "r");
  25. $plik = fread($fd, filesize($file));
  26.  $encoded = chunk_split(base64_encode($plik));
  27.  fclose($fd);
  28. }
  29. return $encoded;
  30. }
  31.  
  32. $mesg = "--" . $boundary . "\n";
  33. $mesg = $mesg . "Content-Type: text/plain; charset=\"us-ascii\"\n\n";
  34. $mesg = $mesg . $tresc . "\n";
  35. $mesg = $mesg . "--" . $boundary . "\n";
  36. $mesg = $mesg . "Content-type: " . $filename_type . "; name=\"$filename_name\";\n";
  37. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  38. $mesg = $mesg . "Content-disposition: attachment; $filename= \"$filename_name\"\n\n";
  39. $mesg = $mesg . fileopenanddecode($filename) . "\n";
  40. $mesg = $mesg . "--" . $boundary . "-- \n";
  41.  
  42. @mail("mail@mail.pl","Wiadomosc ze strony WWW", $mesg, $head);
  43. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:49