login  Naam:   Wachtwoord: 
Registreer je!
 Forum

uploaden in formulier niet verplicht. Indien wel: alleen jpg of gif

Offline Gust - 13/04/2009 21:09
Avatar van GustMySQL interesse Ik wil in een formulier de mensen de mogelijkheid geven een afbeelding te uploaden
- het mag NIET verplicht zijn een afbeelding te uploaden
- indien ze het toch doen, mag het alleen jpg of gif zijn
- in dat laatste geval moet er een alert komen: "alleen jpg of gif aub".

Dit is wat ik heb:

  1. } elseif((!empty($_FILES['afbeelding']['name'])&&(!eregi("((\\.gif|\\.jpg|\\.)$)", $_FILES['afbeelding']['name']))) {


als onderdeel van dit:

  1. if(!strlen($_POST['datum'])) {
  2. echo ' Je hebt geen datum ingevuld <br><br>';
  3. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  4. } elseif(!strlen($_POST['titel'])) {
  5. echo ' Je hebt geen titel ingevuld<br><br>';
  6. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  7. } elseif(!strlen($_POST['groep'])) {
  8. echo ' Je hebt geen artiest of groep ingevuld<br><br>';
  9. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  10. } elseif(!strlen($_POST['beschrijving'])) {
  11. echo ' Je hebt geen beschrijving ingevuld <br><br>';
  12. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  13. } elseif(!strlen($_POST['adres'])) {
  14. echo ' Je hebt geen adres ingevuld <br><br>';
  15. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  16. } elseif((!empty($_FILES['afbeelding']['name'])&&(!eregi("((\\.gif|\\.jpg|\\.)$)", $_FILES['afbeelding']['name']))) {
  17. echo ' De afbeelding heeft de verkeerde extensie.<br>Alleen jpg of gif aub.<br><br>';
  18. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  19. } elseif($_FILES['afbeelding']['size']>50000) {
  20. echo ' De afbeelding is te groot. Niet meer dan 50kb aub <br><br>';
  21. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  22. } elseif($width > 500 or $height > 500){
  23. echo ' Maximale grootte 500x500. Probeer het opnieuw.<br><br>';
  24. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  25. } elseif (strlen($_POST['emailadres']) && !CheckEmail($_POST['emailadres'])) {
  26. echo ' Je hebt een ongeldig emailadres opgegeven!<br><br>';
  27. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  28. } elseif ($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {
  29. echo ' Je hebt de verkeerde code opgegeven<br><br>';
  30. echo '<a href="javascript&#058;history.back(1);">Terug</a><br><br>';
  31.  
  32. } else
  33. {


Maar dat helpt niet echt. Heeft er iemand een oplossing?

19 antwoorden

Gesponsorde links
Offline vinTage - 13/04/2009 21:15
Avatar van vinTage Nieuw lid Ik zou sowieso je extension check veranderen, nu zou gifkikker.png ook goedgekeurd worden.
Offline Gust - 13/04/2009 21:29
Avatar van Gust MySQL interesse Ja, inderdaad, heel dat onderdeel zal veranderd moeten worden. Alleen ken ik geen geschikte check waarnaar ik zoek
Offline vinTage - 13/04/2009 22:13
Avatar van vinTage Nieuw lid
  1. if($_FILES['afbeelding']['type'] == "image/jpeg" ||
  2. $_FILES['afbeelding']['type'] == "image/pjpeg" ||
  3. $_FILES['afbeelding']['type'] == "image/gif")
  4. {
  5. //fout
  6. }
Offline Gust - 13/04/2009 23:06 (laatste wijziging 13/04/2009 23:11)
Avatar van Gust MySQL interesse Dit klopt niet. Hierbij geeft ie een foutmelding als ie jpg of gif upload

  1. if(!strlen($_POST['datum'])) {
  2. echo ' Je hebt geen datum ingevuld <br><br>';
  3. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  4. } elseif(!strlen($_POST['titel'])) {
  5. echo ' Je hebt geen titel ingevuld<br><br>';
  6. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  7. } elseif(!strlen($_POST['groep'])) {
  8. echo ' Je hebt geen artiest of groep ingevuld<br><br>';
  9. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  10. } elseif(!strlen($_POST['beschrijving'])) {
  11. echo ' Je hebt geen beschrijving ingevuld <br><br>';
  12. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  13. } elseif(!strlen($_POST['adres'])) {
  14. echo ' Je hebt geen adres ingevuld <br><br>';
  15. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  16. } elseif($_FILES['afbeelding']['size']>50000) {
  17. echo ' De afbeelding is te groot. Niet meer dan 50kb aub <br><br>';
  18. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  19. } elseif($width > 500 or $height > 500){
  20. echo ' Maximale grootte 500x500. Probeer het opnieuw.<br><br>';
  21. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  22. } elseif($_FILES['afbeelding']['type'] == "image/jpeg" ||$_FILES['afbeelding']['type'] == "image/pjpeg" ||$_FILES['afbeelding']['type'] == "image/gif"){
  23. echo ' alleen jpg of gif aub<br><br>';
  24. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  25. } elseif (strlen($_POST['emailadres']) && !CheckEmail($_POST['emailadres'])) {
  26. echo ' Je hebt een ongeldig emailadres opgegeven!<br><br>';
  27. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  28. } elseif ($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {
  29. echo ' Je hebt de verkeerde code opgegeven<br><br>';
  30. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  31.  
  32. } else
  33. {
Offline vinTage - 13/04/2009 23:13
Avatar van vinTage Nieuw lid my bad...
  1. {
  2. //goed
  3. }
Offline Gust - 14/04/2009 07:47
Avatar van Gust MySQL interesse Hoe zo, goed? Goed dat ik een fout voorveeld aangaf zonet? Kun je aub wat concreter zijn?
Offline voltrex - 14/04/2009 09:39
Avatar van voltrex Lid Nee hij was het tweede deel vergeten: (volledig is het):
  1. if($_FILES['afbeelding']['type'] == "image/jpeg" ||
  2. $_FILES['afbeelding']['type'] == "image/pjpeg" ||
  3. $_FILES['afbeelding']['type'] == "image/gif")
  4. {
  5. //fout
  6. }
  7. {
  8. //goed
  9. }

Offline Gust - 14/04/2009 13:13
Avatar van Gust MySQL interesse Dat klopt toch niet??? Hoe zit dat als ie geen afbeelding upload?

Bedoel je het zo?

  1. if($_FILES['afbeelding']['type'] == "image/jpeg" ||$_FILES['afbeelding']['type'] == "image/pjpeg" ||$_FILES['afbeelding']['type'] == "image/gif") {
  2. echo ' alleen jpg of gif aub<br><br>';
  3. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  4. } elseif(!strlen($_POST['datum'])) {
  5. echo ' Je hebt geen datum ingevuld <br><br>';
  6. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  7. } elseif(!strlen($_POST['titel'])) {
  8. echo ' Je hebt geen titel ingevuld<br><br>';
  9. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  10. } elseif(!strlen($_POST['groep'])) {
  11. echo ' Je hebt geen artiest of groep ingevuld<br><br>';
  12. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  13. } elseif(!strlen($_POST['beschrijving'])) {
  14. echo ' Je hebt geen beschrijving ingevuld <br><br>';
  15. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  16. } elseif(!strlen($_POST['adres'])) {
  17. echo ' Je hebt geen adres ingevuld <br><br>';
  18. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  19. } elseif($_FILES['afbeelding']['size']>50000) {
  20. echo ' De afbeelding is te groot. Niet meer dan 50kb aub <br><br>';
  21. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  22. } elseif($width > 500 or $height > 500){
  23. echo ' Maximale grootte 500x500. Probeer het opnieuw.<br><br>';
  24. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  25. } elseif (strlen($_POST['emailadres']) && !CheckEmail($_POST['emailadres'])) {
  26. echo ' Je hebt een ongeldig emailadres opgegeven!<br><br>';
  27. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  28. } elseif ($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {
  29. echo ' Je hebt de verkeerde code opgegeven<br><br>';
  30. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  31.  
  32. } else
  33. {
Offline Threetimes - 14/04/2009 15:02
Avatar van Threetimes PHP beginner Ik denk dat vinTage dit bedoelde:
  1. if($_FILES['afbeelding']['type'] == "image/jpeg" ||
  2. $_FILES['afbeelding']['type'] == "image/pjpeg" ||
  3. $_FILES['afbeelding']['type'] == "image/gif")
  4. {
  5. //goed
  6. }
en dus ook dit:
  1. if($_FILES['afbeelding']['type'] == "image/jpeg" ||
  2. $_FILES['afbeelding']['type'] == "image/pjpeg" ||
  3. $_FILES['afbeelding']['type'] == "image/gif")
  4. {
  5. //goed
  6. }
  7. else
  8. {
  9. //fout
  10. }
Offline Gust - 14/04/2009 15:06
Avatar van Gust MySQL interesse Ok, dat zinnetje op zich is misschien goed. Maar het lukt me niet om dit juist in de code te implementeren. Bovendien geeft dit het omgekeerde effect.

Tenzij jullie weten hoe het wel moet, maar dan had ik graag eens gezien hoe jullie dit aanpakken met de hele code.
Offline vinTage - 14/04/2009 18:23 (laatste wijziging 14/04/2009 18:28)
Avatar van vinTage Nieuw lid Threetimes is de enige die het snapt  

om het geheel compleet te maken (en dus niet verplicht)
  1. if(isset($_POST['submit']))
  2. {
  3. if(!empty($_FILES['afbeelding']))
  4. {
  5. if($_FILES['afbeelding']['type'] != "image/jpeg" ||
  6. $_FILES['afbeelding']['type'] != "image/pjpeg" ||
  7. $_FILES['afbeelding']['type'] != "image/gif")
  8. {
  9. //fout
  10. }
  11. }
  12. //je andere meuk
  13. }
Offline Gust - 15/04/2009 09:52
Avatar van Gust MySQL interesse Je bedoelt het dus op deze manier? Ik heb het uitgetest, nu aanvaardt ie alles  

  1. if(isset($_POST['submit']))
  2. {
  3. if(!empty($_FILES['afbeelding']))
  4. {
  5. if($_FILES['afbeelding']['type'] != "image/jpeg" ||
  6. $_FILES['afbeelding']['type'] != "image/pjpeg" ||
  7. $_FILES['afbeelding']['type'] != "image/gif")
  8. {
  9. echo ' alleen jpg of gif aub <br><br>';
  10. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  11. }
  12. }
  13. elseif(!strlen($_POST['datum'])) {
  14. echo ' Je hebt geen datum ingevuld <br><br>';
  15. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  16. } elseif(!strlen($_POST['titel'])) {
  17. echo ' Je hebt geen titel ingevuld<br><br>';
  18. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  19. } elseif(!strlen($_POST['groep'])) {
  20. echo ' Je hebt geen artiest of groep ingevuld<br><br>';
  21. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  22. } elseif(!strlen($_POST['beschrijving'])) {
  23. echo ' Je hebt geen beschrijving ingevuld <br><br>';
  24. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  25. } elseif(!strlen($_POST['adres'])) {
  26. echo ' Je hebt geen adres ingevuld <br><br>';
  27. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  28. } elseif(isset($_FILES['afbeelding'])&& (!eregi("((.gif|.jpg)$)", $_FILES['afbeelding']['name'])))
  29. echo ' alleen jpg of gif aub<br><br>';
  30. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  31. } elseif($_FILES['afbeelding']['size']>50000) {
  32. echo ' De afbeelding is te groot. Niet meer dan 50kb aub <br><br>';
  33. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  34. } elseif($width > 500 or $height > 500){
  35. echo ' Maximale grootte 500x500. Probeer het opnieuw.<br><br>';
  36. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  37. } elseif (strlen($_POST['emailadres']) && !CheckEmail($_POST['emailadres'])) {
  38. echo ' Je hebt een ongeldig emailadres opgegeven!<br><br>';
  39. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  40. } elseif ($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {
  41. echo ' Je hebt de verkeerde code opgegeven<br><br>';
  42. echo '<a href="javascript:history.back(1);">Terug</a><br><br>';
  43.  
  44. } else
  45. {
Offline vinTage - 15/04/2009 22:10
Avatar van vinTage Nieuw lid ah weer een domme fout van me, maak van al die || (or's) && (and's)
Offline Gust - 16/04/2009 13:16 (laatste wijziging 19/04/2009 11:24)
Avatar van Gust MySQL interesse Hij aanvaardt nog altijd alles hoor. Zie http://www.hoorn.be/agenda/agenda_toevoegen.php

Dit is de hele code:
Plaatscode: 136140

sliphead schreef:
Lappen code langer dan ongeveer 75 regels op Plaatscode.be aub!
Offline vlamke - 17/04/2009 20:12 (laatste wijziging 19/04/2009 11:25)
Avatar van vlamke Lid Je zou het volgende ervan kunnen maken:
Plaatscode: 136141, dan geeft die geen melding als het goed is, maar wel een melding als het fout is.

Groetjes,
Patrick

sliphead schreef:
Lappen code langer dan ongeveer 75 regels op Plaatscode.be aub!
Offline Wave6 - 19/04/2009 10:57
Avatar van Wave6 PHP beginner @Vintage...

Maak van al die || en && or's en ands dat moet ie echt niet doen!!
Niet iedere webserver ondersteund dat:P

plus PHP 6 trapt je script uit...

Offline vinTage - 19/04/2009 11:22
Avatar van vinTage Nieuw lid huh?
Offline Koen - 19/04/2009 11:33
Avatar van Koen PHP expert
D_O schreef:
@Vintage...

Maak van al die || en && or's en ands dat moet ie echt niet doen!!
Niet iedere webserver ondersteund dat:P

plus PHP 6 trapt je script uit...


Excuseer?!
Waar haal je in godsnaam vandaan dat "niet iedere webserver" dat ondersteunt?  Geen enkele webserver ondersteunt PHP operatoren, het is de PHP engine dat dat ondersteunt.
De logische operatoren || en && zijn zelfs correcter om te gebruiken, aangezien zij een hogere precedence hebben.
Offline vinTage - 19/04/2009 12:31
Avatar van vinTage Nieuw lid ik heb ook niet gezegd dat hij || en && moet omzetten naar or en and, ik zei alleen wat ze betekenen, daarom tussen haakjes 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.288s