login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Problemen PHP4 bijlagen mailen script

Offline lowg - 20/07/2008 20:01
Avatar van lowgNieuw lid Het enige script dat ik kon vinden voor meerdere bijlagen was deze
  1. <html>
  2.  
  3. <head>
  4.  
  5. <style type='text/css'><!--
  6.  
  7. BODY { font-family: Arial; font-size: 9.5pt; }
  8.  
  9. //--></style>
  10.  
  11. </head>
  12.  
  13. <body>
  14.  
  15. <b><u>Bestanden versturen per e-mail</u></b>
  16.  
  17. <br><br>
  18.  
  19. <?php
  20.  
  21. //----------------------------------------
  22. // Verander de variabelen hieronder
  23.  
  24. $JouwEmailAdres = "adres@domein.ext";
  25. // Jouw e-mail adres (wordt niet weergegeven)
  26.  
  27. $AantalBijlages = 5;
  28. // Het aantal bijlages dat verstuurd wordt.
  29.  
  30. $Extensies = array("jpg","gif","png","bmp");
  31. // De toegestane extensies. Alles toestaan? Gebruik array();
  32. // Vul de extensies in kleine letters in
  33.  
  34. $WeergeefExtensies = true;
  35. // Toegestane extensies weergeven bij het formulier? true; of false;
  36.  
  37. $Limiet = 1048576;
  38. // Het limiet in bytes (totaal van de bestanden).
  39. // Zet op 0 om geen limiet in te stellen.
  40.  
  41. $WeergeefLimiet = true;
  42. // Het limiet weergeven bij het formulier? true; of false;
  43.  
  44. // Hierna hoeft niets veranderd te worden.
  45. //----------------------------------------
  46.  
  47.  
  48. if($actie) {
  49. if(!$ContactNaam) {
  50. echo("<b style='color:red'>Er is geen naam ingevuld!</b>");
  51. }
  52. elseif(!ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$ContactMail)) {
  53. echo("<b style='color:red'>Het e-mail adres is ongeldig!</b>");
  54. }
  55. else {
  56.  
  57. $fout = 0; $TotaleGrootte = 0;
  58.  
  59. $Bijlages = "";
  60. for($i = 1; $i < $AantalBijlages+1; $i++) {
  61. if(is_uploaded_file($HTTP_POST_FILES["Upload"][tmp_name][$i])) {
  62.  
  63. $extensie = explode(".",$HTTP_POST_FILES["Upload"][name][$i]);
  64. $extensie = strtolower($extensie[count($extensie)-1]);
  65.  
  66. if(!in_array($extensie,$Extensies)) {
  67. echo("Bestanden met de extensie <u>$extensie</u> kunnen niet verstuurd worden!<br><br>");
  68. $fout = 1;
  69. break;
  70. }
  71. else {
  72. $Bestand = $HTTP_POST_FILES["Upload"];
  73. $Hoofd .= "--_Bijlage_\r\nContent-Type: ".$Bestand[type][$i]."; name = \"".$Bestand[name][$i]."\"\r\nContent-Transfer-Encoding:base64\r\n
  74. ".chunk_split(base64_encode(fread(fopen($Bestand[tmp_name][$i], "r"), filesize($Bestand[tmp_name][$i]))))."\r\n\r\n";
  75. $Bijlages .= "Naam: ".$Bestand[name][$i].", type: ".$Bestand[type][$i].", grootte: ".$Bestand[size][$i]." bytes\r\n";
  76. $TotaleGrootte += $Bestand[size][$i];
  77. }
  78.  
  79. }
  80. }
  81.  
  82. $Hoofd = "From: $ContactNaam <$ContactMail>
  83. MIME-Version: 1.0
  84. Content-type:multipart/mixed; boundary=_Bijlage_
  85. This is a MIME encoded message.
  86. --_Bijlage_
  87. Content-type: text/plain
  88. Content-Transfer-Encoding:7bit
  89.  
  90. Afzender: $ContactNaam, $ContactMail
  91. Verstuurd op: ".date("d-m-Y H:i:s")."
  92.  
  93. Bijlages:
  94. $Bijlages
  95. \r\n\r\n".$Hoofd;
  96.  
  97. if($Limiet && $TotaleGrootte > $Limiet) {
  98. echo("De totale grootte van de bestanden is hoger dan $Limiet bytes!<br>
  99. <b style='color:red'>De e-mail is <u>niet</u> verzonden!</b>");
  100. }
  101. elseif($fout) {
  102. echo("<b style='color:red'>De e-mail is <u>niet</u> verzonden!</b>");
  103. }
  104. else {
  105. mail("$JouwEmailAdres","E-mail met bijlages via website","",$Hoofd);
  106. echo("<b style='color:green'>De e-mail is succesvol verzonden!</b>");
  107. }
  108.  
  109. }
  110. echo("<br><br>");
  111. }
  112.  
  113. echo("<form method=post action='' enctype='multipart/form-data'>
  114. Naam *: <input type=text name=ContactNaam size=30><br>
  115. E-mail adres *: <input type=text name=ContactMail size=30><br>");
  116. for($i = 1; $i < $AantalBijlages+1; $i++) {
  117. echo("Bijlage $i: <input type=file name='Upload[$i]'><br>");
  118. }
  119.  
  120. if($WeergeefExtensies && count($Extensies)) {
  121. echo("<br>Toegestane extensies: <i>".implode(", ",$Extensies)."</i><br>");
  122. }
  123. if($WeergeefLimiet && $Limiet) {
  124. echo("<br>Toegestane grootte totaal van bestanden: <i>$_POST["$Limiet bytes"]</i><br>");
  125. }
  126.  
  127. echo("<br>
  128. <input type=submit value=Verzenden>
  129. <input type=hidden name=actie value=1>
  130. </form>");
  131.  
  132. ?>
  133.  
  134. </body>
  135.  
  136. </html>


Maar deze is verouderd, kan iemand mij helpen deze weer werkend te maken? (als je nu op 'verzenden' klikt refreshed de pagina gewoon.

2 antwoorden

Gesponsorde links
Offline Rik - 20/07/2008 20:16
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Vervang eens overal $HTTP_POST_FILES voor $_FILES of zet register_long_arrays op on in de php configuratie.
Offline Stijn - 20/07/2008 21:53
Avatar van Stijn PHP expert
  1. $HTTP_POST_FILES["Upload"][tmp_name][$i]


Dit moet het volgende worden:

  1. $_FILES["Upload"]['tmp_name'][$i]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.244s