login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Script voor bijlage meesturen lukt alsmaar niet

Offline kfrooija - 26/04/2006 14:29 (laatste wijziging 26/04/2006 14:32)
Avatar van kfrooijaNieuw lid hallo allemaal,

Ik ben bezig met een site waarvoor ik een PHP mailformulier heb samengesteld (na véél inspanning) en nu graag ook nog zou willen dat mensen een bijlga mee zouden kunnen sturen.

Het formulier werkt perfect, nu zou ik willen vragen wie mij ALSJEBLIEFT zou kunnen helpen, om aan mijn formulier een UPLOAD balke kan toevoegen, (en deze ook verifieert en mee verzend) naar mijn e-mail.

Ik zou er echt SUPER mee geholpen zijn!!!

Super bedankt alvast!!!!!!!!!

De code van het formulier tot nu toe

De link naar de code : http://plaatscode.be/983/

38 antwoorden

Gesponsorde links
Offline marten - 26/04/2006 14:30
Avatar van marten Beheerder haal je code ff weg en zet het ff in pastebin.be
Offline kfrooija - 26/04/2006 14:35
Avatar van kfrooija Nieuw lid Hee kijk dat zijn al 2 berichten, dat belooft een snel antwoord 

Als jullie meer info nodig hebben.. Tot uw dienst!
Offline marten - 26/04/2006 14:37
Avatar van marten Beheerder eerst het formulier maar eens aanpassen

  1. <form method="post" action="<?= $_SERVER['../../../Bureaublad/PHP_SELF']; ?>">
  2. <dl>
  3. <dt><b>Uw naam:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  4. <dd><input type="text" name="naam" size="15" value="<?= $pNaam; ?>"></dd>
  5. <dt><b>E-mail:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  6. <dd><input type="text" name="email" size="15" value="<?= $pEmail; ?>"></dd>
  7.  
  8. <dt><b>Website:</b></dt>
  9. <dd><input type="text" name="website" size="15" value="<?= $pWebsite; ?>"></dd>
  10. <dt><b>Onderwerp:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  11. <dd><input type="text" name="onderwerp" size="15" value="<?= $pOnderwerp; ?>"></dd>
  12. <dt><b>Bericht:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  13. <dd><textarea name="bericht" cols="40" rows="10"><?= $pBericht; ?></textarea></dd>
  14. <dt><b>Formulier opties:</b></dt>
  15. <dd>
  16. <input type="submit" value="Verstuur e-mail" name="verstuur"> <input type="reset" value="Wis velden"></dd>
  17. </dl>
  18. </form>


heb je nou......

Dan ga je uitzoeken wat het veld is om een bestand toe te voegen.
Offline kfrooija - 26/04/2006 14:39
Avatar van kfrooija Nieuw lid Oke, ik let mee op 
Offline marten - 26/04/2006 14:40
Avatar van marten Beheerder je moet zelf doen 
ik zeg alleen wat je moet doen 
Offline kokx - 26/04/2006 14:41
Avatar van kokx Onbekend Waar haal je dit vandaan:
  1. <?= $_SERVER['../../../Bureaublad/PHP_SELF']; ?>
?
Offline marten - 26/04/2006 14:43
Avatar van marten Beheerder ja is ook wel handig om te veranderen naar
  1. <?php echo $_SERVER['PHP_SELF']; ?>
Offline kfrooija - 26/04/2006 14:43 (laatste wijziging 26/04/2006 14:44)
Avatar van kfrooija Nieuw lid Even kijken de regel die bijgevoegd zou moeten worden: (onder tekstvak en boven de Submit button)

  1. <dd><is_uploaded_file ="FILES" cols="40" rows="10"><?= $pFile; ?></upload></dd>
  2. <dt><b>Formulier opties:</b></dt>
  3. <dd>
Offline marten - 26/04/2006 14:45
Avatar van marten Beheerder ik zou het zo doen 

  1. <dd><input type="file" name ="upload" size="10"><?= $pFile; ?></upload></dd>
  2. <dt><b>Formulier opties:</b></dt>
  3. <dd>


Offline kfrooija - 26/04/2006 14:47 (laatste wijziging 26/04/2006 14:52)
Avatar van kfrooija Nieuw lid Jah oke  kijk nu ben ik al dat ie visueel aanwezig is (ik heb hem in dreamweaver meteen ingevoerd en nu kan ik hem zien.. )

Maar zoals altijd met PHP zijn we nu nog niet klaar.. de volgende stap Meester Marten 
  1. if(!empty($_POST['verstuur']))
  2. { // Er is op de knop 'verstuur e-mail' gedrukt...
  3. $pError = ''; // Een begin met de errors als die er zijn
  4. $pI = 0; // Deze telt het aantal erros.
  5. if(strlen($_POST['naam']) < 2)
  6. { $pError .= '- Naam<br>'; $pI++; }
  7. if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
  8. { $pError .= '- E-mail adres<br>'; $pI++; }
  9. if(strlen($_POST['onderwerp']) < 3)
  10. { $pError .= '- Onderwerp<br>'; $pI++; }
  11. if(strlen($_POST['bericht']) < 10)
  12. { $pError .= '- Bericht<br>'; $pI++; }
  13. if(strlen($_POST['file']) < 1mb)
  14. { $pError .= '- file<br>'; $pI++; }


Hmm denk dat het nog niet helemaal klopt wel?! 
Offline marten - 26/04/2006 14:52 (laatste wijziging 26/04/2006 14:53)
Avatar van marten Beheerder lol

nou zet je voor jezelf op een rijtje welke bestanden mogen de mensen wel en welke bestanden mogen de mensen niet uploaden.

Zou niet controleren of ie leeg is of niet 
Offline kfrooija - 26/04/2006 14:56 (laatste wijziging 26/04/2006 14:58)
Avatar van kfrooija Nieuw lid De mensen mogen .JPG .BMP .GIF en .PSD (ik denk dat dit de meeste doorsnee bestanden zijn of heb ik het fout

De maximale bestandsgrote bedraagt 2 MB per upload....

Even kijken dus:
if(strlen($_POST['file']) < 1mb)
{ $pError .= '- file<br>'; $pI++; }
Is niet van toepassing omdat ik niet wil weten of hij leeg is

  1. // uiteindelijk toch mailen
  2. $pHeader = "MIME-Version: 1.0\r\n";
  3. $pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
  4. $pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
  5. $pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
  6. $website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
  7. $pBericht = 'Het verstuurde bericht naar Arttractive:'
  8. .$_POST['bericht'].$website;
  9. mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
Offline marten - 26/04/2006 14:57
Avatar van marten Beheerder oke
dan ga je nou dus controleren of de extensie van de file die word ge-upload wel een van de extensies die je wilt is 
Offline kfrooija - 26/04/2006 15:01
Avatar van kfrooija Nieuw lid Even kijken om de bestandsgrote en formaat te controleren doe ik dat hier?

  1. // Kijken of er een waarde moet worden gegeven aan velden...
  2. $pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
  3. $pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
  4. $pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
  5. $pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
  6. $pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
  7. $pFile = (isset($_POST['File'])) ? $_POST['File'] : '';
Offline marten - 26/04/2006 15:02
Avatar van marten Beheerder eerst je extensie controleren 
Offline kfrooija - 26/04/2006 15:05 (laatste wijziging 26/04/2006 15:06)
Avatar van kfrooija Nieuw lid Oké extensie controleren gebeurd hier:

  1. $pError = ''; // Een begin met de errors als die er zijn
  2. $pI = 0; // Deze telt het aantal erros.
  3. if(strlen($_POST['naam']) < 2)
  4. { $pError .= '- Naam<br>'; $pI++; }
  5. if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
  6. { $pError .= '- E-mail adres<br>'; $pI++; }
  7. if(strlen($_POST['onderwerp']) < 3)
  8. { $pError .= '- Onderwerp<br>'; $pI++; }
  9. if(strlen($_POST['bericht']) < 10)
  10. { $pError .= '- Bericht<br>'; $pI++; }
  11. if ($thumb['imgExtension'] == 'jpg' || $thumb['imgExtension'] == 'jpeg' || $thumb['imgExtension'] == 'jpe' || $thumb['imgExtension'] == 'jfif')
  12. {
  13. $thumb['imgExtension'] = 'jpg';
  14. $func1 = 'imagecreatefromjpeg';
  15. $func2 = 'imagejpeg';
  16. }
  17. else if ($thumb['imgExtension'] == 'gif')
  18. {
  19. $thumb['imgExtension'] = 'gif';
  20. $func1 = 'imagecreatefromgif';
  21. $func2 = 'imagegif';
  22. }
  23. else if ($thumb['imgExtension'] == 'png')
  24. {
  25. $thumb['imgExtension'] = 'png';
  26. $func1 = 'imagecreatefrompng';
  27. $func2 = 'imagepng';


Maar nu controleer ik weer of er IETS is ingevuld, dat is nie van belang het gaat om WAT er is ingvuld (upload in dit geval):s
Offline marten - 26/04/2006 15:06 (laatste wijziging 26/04/2006 15:07)
Avatar van marten Beheerder juist dus ga je ff op zoek hoe je uit $_POST[file] je extensie kan filteren 

enne niet kopieren / plakken uit andere scripts want zo gaat het niet werken 
Offline kfrooija - 26/04/2006 15:07 (laatste wijziging 26/04/2006 15:08)
Avatar van kfrooija Nieuw lid
  1. $pError = ''; // Een begin met de errors als die er zijn
  2. $pI = 0; // Deze telt het aantal erros.
  3. if(strlen($_POST['naam']) < 2)
  4. { $pError .= '- Naam<br>'; $pI++; }
  5. if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
  6. { $pError .= '- E-mail adres<br>'; $pI++; }
  7. if(strlen($_POST['onderwerp']) < 3)
  8. { $pError .= '- Onderwerp<br>'; $pI++; }
  9. if(strlen($_POST['bericht']) < 10)
  10. { $pError .= '- Bericht<br>'; $pI++; }
  11. if ($thumb['File'] == 'jpg' || $thumb['imgExtension'] == 'jpeg' || $thumb['imgExtension'] == 'jpe' || $thumb['imgExtension'] == 'jfif')
  12. {
  13. $thumb['imgExtension'] = 'jpg';
  14. $func1 = 'imagecreatefromjpeg';
  15. $func2 = 'imagejpeg';
  16. }
  17. else if ($thumb['imgExtension'] == 'gif')
  18. {
  19. $thumb['imgExtension'] = 'gif';
  20. $func1 = 'imagecreatefromgif';
  21. $func2 = 'imagegif';
  22. }
  23. else if ($thumb['imgExtension'] == 'png')
  24. {
  25. $thumb['imgExtension'] = 'png';
  26. $func1 = 'imagecreatefrompng';
  27. $func2 = 'imagepng';

Stel dat dit goed is mis ik nogsteeds maximale bestandsgrote?
Offline marten - 26/04/2006 15:09
Avatar van marten Beheerder dit is niet goed 
Offline b4nkr0bz0r - 26/04/2006 15:10
Avatar van b4nkr0bz0r PHP gevorderde om een extensie te controleren werdt dit wel goed.
  1. <?php
  2. // We selecteren het laatste deel van de array...
  3. $sExtensie = strtolower(end(explode('.', $_FILES['upload']['name'])));
  4.  
  5. // Nu gaan we kijken of het geselecteerde extensie wel mag (voeg hier zelf je overige extensies in)...
  6. if (in_array(array('image/gif', 'image/png', 'image/jpeg', 'image/pjepg'), array_change_key_case($sExtenstie, CASE_LOWER))
  7. {
  8. echo 'De extensie is goed.';
  9. }
  10. else
  11. {
  12. echo 'De extensie is niet goed.';
  13. }
  14. ?>


Deze code komt uit me image class.
Offline kfrooija - 26/04/2006 15:18 (laatste wijziging 26/04/2006 15:20)
Avatar van kfrooija Nieuw lid Dit is de code die ik nu heb staan.....

http://pastebin.be/987/

He hij doet het niet (hier heb ik de site upgeload) http://www.arttractive.nl/sfeerimpressie.php:';(

PHP is breaking me
Offline b4nkr0bz0r - 26/04/2006 15:25 (laatste wijziging 26/04/2006 15:32)
Avatar van b4nkr0bz0r PHP gevorderde
  1. <?
  2. ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
  3. $cNaam = 'Arttractive contactformulier'; // Je naam...
  4. $cEmail = 'info@arttractive.nl'; // email waar het heen moet
  5. $cOndPre = 'Contactformulier Arttractive-'; // prefix voor onderwerp
  6. $cOndSuf = '-'; // suffix achter onderwerp
  7. $cSpam = 10; // Anti Spam, X aantal minuten
  8. ?>
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
  10. <head> </font></p>
  11. <p>
  12. <title>Mail Formulier</title>
  13. <style type="text/css">
  14. body, input, textarea
  15. {
  16. font-size: 10pt;
  17. color: #BD9B7F;
  18. font-family: Verdana, Arial, Helvatica;
  19. }
  20. input, textarea
  21. {
  22. border: 1px solid black;
  23. background-color: #FEFEFE;
  24. }
  25. </style></head>
  26. <body>
  27. <?
  28. if(isset($_POST['verstuur']))
  29. { // Er is op de knop 'verstuur e-mail' gedrukt...
  30. $pError = ''; // Een begin met de errors als die er zijn
  31. $pI = 0; // Deze telt het aantal erros.
  32. if(strlen($_POST['naam']) < 2)
  33. { $pError .= '- Naam<br>'; $pI++; }
  34. if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
  35. { $pError .= '- E-mail adres<br>'; $pI++; }
  36. if(strlen($_POST['onderwerp']) < 3)
  37. { $pError .= '- Onderwerp<br>'; $pI++; }
  38. if(strlen($_POST['bericht']) < 10)
  39. { $pError .= '- Bericht<br>'; $pI++; }
  40. $sFile = strtolower(end(explode('.', $_FILES['upload']['name'])));
  41.  
  42. if (in_array(array('image/gif', 'image/png', 'image/jpeg', 'image/pjepg'), array_change_key_case($sfile, CASE_LOWER)))
  43. {
  44. echo 'De extensie is goed.';
  45. }
  46. else
  47. {
  48. echo 'De extensie is niet goed.';
  49. }
  50.  
  51. if(!empty($pError))
  52. { // Als er dan toch errors zijn..
  53. echo ($pI == 1) ? 'Het volgende veld is incorrect ingevuld:<br>' : 'De volgende velden zijn incorrect ingevuld:<br>'; // even kijken of het meervoud of enkelvoud is.
  54. echo $pError; // echoën van de error(s)
  55. }
  56. else
  57. {
  58. // uiteindelijk toch mailen
  59. $pHeader = "MIME-Version: 1.0\r\n";
  60. $pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
  61. $pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
  62. $pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
  63. $website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
  64. $pBericht = 'Het verstuurde bericht naar Arttractive:'
  65. .$_POST['bericht'].$website;
  66. mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
  67.  
  68. if(isset($_POST['usermail']))
  69. { // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
  70. $pBerichtUser = 'Het verstuurde bericht:'.$_POST['bericht'];
  71. mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
  72. }
  73.  
  74. echo 'Bedankt voor uw interesse in Arttractive, wij streven ernaar binnen een werkdag inhoudelijk te reageren.';
  75. setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
  76.  
  77. $pShow = true; // formulier wordt niet weer getoond
  78. }
  79. }
  80. // Kijken of er een waarde moet worden gegeven aan velden...
  81. $pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
  82. $pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
  83. $pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
  84. $pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
  85. $pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
  86.  
  87. // kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
  88. if(isset($_COOKIE['mailform']))
  89. { $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
  90.  
  91. if(!isset($pShow))
  92. { // het formulier als $pShow niet bestaat.
  93. ?>
  94. <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
  95.  
  96. <dl>
  97. <dt><b>Uw naam:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  98. <dd>
  99. <input type="text" name="naam" size="15" value="<?= $pNaam; ?>">
  100. </dd>
  101. <dt><b>E-mail:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  102. <dd>
  103. <input type="text" name="email" size="15" value="<?= $pEmail; ?>">
  104. </dd>
  105. <dt><b>Website:</b></dt>
  106. <dd>
  107. <input type="text" name="website" size="15" value="<?= $pWebsite; ?>">
  108. </dd>
  109. <dt><b>Onderwerp:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  110. <dd>
  111. <input type="text" name="onderwerp" size="15" value="<?= $pOnderwerp; ?>">
  112. </dd>
  113. <dt><b>Bericht:</b> <font color="#BD9B7F"><i>(verplicht)</i></font></dt>
  114. <dd>
  115. <textarea name="bericht" cols="40" rows="10"><?= $pBericht; ?></textarea>
  116. </dd>
  117. <dt>&nbsp;</dt>
  118. <dd>
  119. <input type="file" name ="upload" size="40">
  120. <?= $pFile; ?></upload>
  121. </dd>
  122. <dt><b>Formulier opties:</b></dt>
  123. <dd>
  124. <dt><b>Formulier opties:</b></dt>
  125. <dd>
  126. <input type="submit" value="Verstuur e-mail" name="verstuur">
  127. <input type="reset" value="Wis velden">
  128. </dd>
  129. </dl>
  130. </form>
  131. <?php
  132. }
  133. ?>


mischien even wat tutorials leren over het verwerken van formulieren, variables... ?

EDIT: moet het nu wel doen denk ik...
Offline kfrooija - 26/04/2006 15:28 (laatste wijziging 26/04/2006 15:31)
Avatar van kfrooija Nieuw lid Hé b4nkr0bz0r

Bedankt dat je even mee kijkt in mijn topic.. ik heb je script even geprobeerd maar deze doet het ook niet.. http://www.arttractive.nl/sfeerimpressie.php staat ie op upgeload:'(

is het einde zoek.. wie kan mijn formuliertje maken!

EDIT: Hé hij doet het!! 

maar uuhh nu kunnen mensen WEL een foute Format invullen en dan wordt de bijlage niet verstuurd maar de e-mail wel
dus als laatste...

Zou je alsjeblieft voor mij in kunnen bouwen dat op het moment dat het format fout is de mail NIET wordt verstuurd ?
Offline b4nkr0bz0r - 26/04/2006 15:33
Avatar van b4nkr0bz0r PHP gevorderde Heb hem aangepast en hier een online voorbeeld.

Als jij zegt wat het formaat moet zijn kan ik er wel voor zorgen dat hij daar op controleert...
Offline Simon - 26/04/2006 15:33
Avatar van Simon PHP expert
  1. if (in_array(array('image/gif', 'image/png', 'image/jpeg', 'image/pjepg'), array_change_key_case($sfile, CASE_LOWER)))
  2. {
  3. echo '';
  4. }
  5. else
  6. {
  7. echo 'De extensie is niet goed.';
  8. exit();
  9. }

zo?
Offline kfrooija - 26/04/2006 15:35 (laatste wijziging 26/04/2006 15:35)
Avatar van kfrooija Nieuw lid jah dat lijkt me goed... en dan maximaal 2mb per upload..

EDIT: jullie willen niet weten hoe gelukkig hiermee ben 
Offline Simon - 26/04/2006 15:37 (laatste wijziging 26/04/2006 15:39)
Avatar van Simon PHP expert
  1. if($_FILES['upload']['size'] > 2048) // Grootte van het bestand groter dan 2048 kb
  2. {
  3. echo '';
  4. }
  5. else
  6. {
  7. echo 'De bijlage is te groot.';
  8. exit();
  9. }
Offline kfrooija - 26/04/2006 15:43
Avatar van kfrooija Nieuw lid Oké wellicht de puntjes op de "i" nu nog mannen 

Dit is wat ik nu heb:
http://pastebin.be/988/

de on-line link:
http://www.arttractive.nl/sfeerimpressie.php

De problemen die ik nog steeds heb:
-Hij zegt consequent dat de extentie fout is....
-Hij mailt niet meer...

Wie kan me nog even helpen 
Offline Simon - 26/04/2006 15:45
Avatar van Simon PHP expert het is toch de bedoeling dat hij niet mailt wanneer er iets fout loopt?
daarom die exit();

de fout zit em in de variabele

$sfile -> $sFile
op regel 41
Offline kfrooija - 26/04/2006 15:49 (laatste wijziging 26/04/2006 15:50)
Avatar van kfrooija Nieuw lid http://www.arttractive.nl/sfeerimpressie.php

Ik krijg niks upgeload, hij zegt consequent dat de extensie fout is... wel verzend hij hem niet dus dat is positief

Ik loade een 60KB jpg formaat foto op

EDIT: Ik heb regel 41 verbeterd 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.381s