login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foto upload

Offline Frederic - 11/06/2005 17:54
Avatar van FredericPHP ver gevorderde Ik heb volgend script gemaakt, en de naam wordt aangepast in de database, maar de foto die ik wil uploaden komt niet online!
Ik krijg de hele tijd de melding
Citaat:
Dit is een type bestand dat niet is toegestaan

  1. <form name="profiel_wijzigen" method="post" action="" enctype="multipart/form-data">
  2. <input name="naam" type="text" id="naam" size="30" />
  3. <input name="foto" type="file" id="foto" size="25" />
  4. <input type="submit" name="bewaren" value="Bewaren" />
  5. </form>
  6. <?php
  7. if(isset($_POST['bewaren'])) {
  8. mysql_query("UPDATE ledensysteem SET naam='".(htmlspecialchars($_POST['naam']))."' WHERE id='".$_SESSION['gid']."' && gebruikersnaam ='".$_SESSION['gebruiker']."'");
  9. $melding = "Succesvol opgeslagen!";
  10.  
  11. if(is_uploaded_file($_FILES['foto']['tmp_name']))
  12. {
  13. if($_FILES['foto']['size'] > 302400)
  14. {
  15. $melding = "De foto die je wil uploaden is te groot!";
  16. }
  17. $extentie = explode(".", $_FILES['foto']['name']);
  18. $aantal = count($extentie) - 1;
  19. $extentie = strtolower($extentie[$aantal]);
  20. if($extentie != "gif" || $extentie != "jpeg" || $extentie != "jpg" || $extentie != "png")
  21. {
  22. $melding = "Dit is een type bestand dat niet is toegestaan!";
  23. }
  24. if(!eregi("((.gif|.jpeg|.jpeg|.png)$)", $_FILES['foto']['name']))
  25. {
  26. $melding = "Dit is een type bestand dat niet is toegestaan !";
  27. }
  28. if (!isset($melding)){
  29. if(!move_uploaded_file($_FILES['foto']['tmp_name'],"gebruikers/avaters/".$_SESSION['gid'].$extentie)){
  30. $melding = "Het bestand kan niet worden verplaatst, gelieve opnieuw te proberen!";
  31. }
  32. else
  33. {
  34. $melding = "Succesvol opgeslagen";
  35. }
  36. }
  37. }
  38. header("Location: index.php?Pagina=wijzig_profiel&melding=".$melding."");
  39. }
  40. ?>

Ik zie niet direct een fout...

7 antwoorden

Gesponsorde links
Offline jvs - 11/06/2005 19:51
Avatar van jvs HTML beginner Ik denk dat het probleem hierin zit:

  1. if($extentie != "gif" || $extentie != "jpeg" || $extentie != "jpg" || $extentie != "png")


Hier een stukje uitleg dat ik op SM gevonden heb bij tuts/php/operatoren.

$a || $b Geeft TRUE als resultaat als $a of $b gelijk is aan TRUE.

Ik denk dus dat in jouw geval $a niet gelijk is aan true, $b ook niet maar bv $c wel dus dat het niet gaat. (ik weet het, rare uitleg) Doe alle andere weg en laat $extentie !="jpg" staan, upload dan een jpg image en dan zal het wel lukken. Dus ik denk dat je het anders moet controleren.
Ik hoop dat het je lukt
:D
Offline MechaVore - 11/06/2005 19:59 (laatste wijziging 11/06/2005 20:00)
Avatar van MechaVore Gouden medaille

PHP gevorderde
jep, je hebt gelijk jvs. het moet niet != zijn maar ==
vervang alle != daar met ==. dan werkt hij wel
Offline Frederic - 11/06/2005 20:09
Avatar van Frederic PHP ver gevorderde ik heb er dit van gemaakt:
  1. if($extentie != "gif" && $extentie != "jpeg" && $extentie != "jpg" && $extentie != "png")


Ik krijg de melding 'succesvol opgeslagen' maar de foto komt niet online!
Offline jvs - 11/06/2005 20:33
Avatar van jvs HTML beginner Zo klopt het al helemaal niet denk ik. Nu zeg je eigenlijk: als $exentie niet gelijk is aan gif EN exentie niet gelijk is aan jpeg enz.... Of heb ik het fout?

ik denk dat je het beter zo doet:
  1. <?
  2. if($extentie == "gif" || $extentie == "jpeg" || $extentie == "jpg" || $extentie == "png"){
  3. if(move_uploaded_file($_FILES['foto']['tmp_name'],"gebruikers/avaters/".$_SESSION['gid'].$extentie)){
  4. $melding = "De afbeelding is succesvol opgeslagen!";
  5. }
  6. else{$melding="fout!";}
  7. }
  8. else{$melding="Dit is een type bestand dat niet is toegestaan !";}
  9.  
  10. ?>
Offline Frederic - 11/06/2005 22:11
Avatar van Frederic PHP ver gevorderde Maar ook als ik die extentiecontrole weghaal doet ie niks!
Offline SvenP - 11/06/2005 22:18
Avatar van SvenP PHP interesse heb je de map waar je het in wil zetten wel ge chmod naar 777? (is niet nodig bij een windows apache server)
Offline Frederic - 11/06/2005 22:26
Avatar van Frederic PHP ver gevorderde ja hoor, die staan allemaal 777 (anders kreeg ik een error hé)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s