login  Naam:   Wachtwoord: 
Registreer je!
 Forum

File

Offline KmkZ - 14/01/2005 18:18
Avatar van KmkZLid Hey allemaal, ik ben bezig even om wat te scripten wat ik en al kan, maar ik dacht opeens om even m'n techniek van het uploaden te verbeteren.
Maar ik heb wat gedaan en wilt niet werken.

Dit is het code:
  1. <?php
  2. if(IsSet($_POST['submit'])) {
  3.  
  4. if(empty($_POST['avatarfile'])) {
  5. echo "<table width=\"100%\" class=\"content\">".
  6. "<tr><td>Je hebt geen avatar gekozen.</td></tr>".
  7. "<tr><td><b>«</b> <a href=\"javascript:history.go(-1)\">Ga terug</a></td></tr>".
  8. "</table>";
  9.  
  10. } else {
  11.  
  12. $locatie = "images/avatar/";
  13. $extensie = substr($_FILES['avatarfile']['name'], -3);
  14. $avatarnaam = $_COOKIE['gebruikersid'].$extensie;
  15. $grootte = getimagesize($_FILES['avatarfile']['name']);
  16.  
  17. if($extensie != "jpg" && $extensie != "jpeg" && $extensie != "gif") {
  18. echo "<table width=\"100%\" class=\"content\">".
  19. "<tr><td>Je hebt geen geldige avatar gekozen.</td></tr>".
  20. "<tr><td><b>«</b> <a href=\"javascript:history.go(-1)\">Ga terug</a></td></tr>".
  21. "</table>";
  22.  
  23. } elseif($_FILES['avatarfile']['size'] > 45000) {
  24. echo "<table width=\"100%\" class=\"content\">".
  25. "<tr><td>Je avatar mag niet groter zijn dan 45 Kb.</td></tr>".
  26. "<tr><td><b>«</b> <a href=\"javascript:history.go(-1)\">Ga terug</a></td></tr>".
  27. "</table>";
  28.  
  29. } elseif($grootte[0] > 100 && $grootte[1] > 100) {
  30. echo "<table width=\"100%\" class=\"content\">".
  31. "<tr><td>Je avatar mag niet groter dan 100x100 pixels.</td></tr>".
  32. "<tr><td><b>«</b> <a href=\"javascript:history.go(-1)\">Ga terug</a></td></tr>".
  33. "</table>";
  34.  
  35. } else {
  36. if(file_exists($locatie.$avatarnaam)) {
  37. echo "<table width=\"100%\" class=\"content\">".
  38. "<tr><td>Je hebt al een avatar.</td></tr>".
  39. "<tr><td><b>«</b> <a href=\"javascript:history.go(-1)\">Ga terug</a></td></tr>".
  40. "</table>";
  41.  
  42. } else {
  43. copy($_FILES['avatarfile']['name'], "images/avatars/".$avatarnaam);
  44.  
  45. echo "<table width=\"100%\" class=\"content\">".
  46. "<tr><td>Je avatar is succesvol upgeload op ".$website['title'].".</td></tr>".
  47. "<tr><td>Je word in enkele seconden door gewezen naar het beginpagina.</td></tr>".
  48. "<tr><td><b>« <a href=\"index.php\">Klik hier als niet word door gewezen.</a></b></td></tr>".
  49. "</table>".
  50. "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"5; URL=index.php\">";
  51.  
  52. }
  53. }
  54. }
  55. }
  56. ?>


Het is een deel van heel mijn script.
Probleem is dat ik dat heb maar ik krijg dan geen error zoals het hoort maar ik krijg wel deze tekst:
Citaat:
Je hebt geen geldige avatar gekozen.
« Ga terug


Wie kan me helpen wat het probleem is?:S
Ik snap er helemaal geen bal meer van.

6 antwoorden

Gesponsorde links
Offline NCube - 14/01/2005 18:54
Avatar van NCube HTML beginner Ik zie niet zo snel iets dat fout is, heb je wel de goede enctype in de form tag staan?
  1. <form enctype="multipart/form-data" action="uploadavatar.php" method="post">
Offline Rens - 14/01/2005 18:58
Avatar van Rens Gouden medaille

Crew algemeen
$extensie = substr($_FILES['avatarfile']['name'], -3);

Ik zou daar een explode van maken.
  1. <?PHP
  2. $sExtensie = explode(".", $_FILES['avatarfile']['name']);
  3. $iAantalExtensie = count($extensie);
  4. $sJuisteExtensie = $extensie[$iAantalExtensie];
  5. ?>


Dan explode je de puntjes, haal je de laatste op.
De laatste is altijd de extensie.
En dan weet je hem.

Mzzls,
Rensjuh
Offline twopeak - 14/01/2005 19:05 (laatste wijziging 14/01/2005 19:08)
Avatar van twopeak Gouden medaille

PHP ver gevorderde
[code]<?
if($extensie != "jpg" && $extensie != "jpeg" && $extensie != "gif")
?>
moet worden
<?
if($extensie != "jpg" || $extensie != "jpeg" || $extensie != "gif")
?>[code]
Een bestand kan toch geen drie extensies hebben, is het niet?

@Rensjuh
bekijk de functie array_pop() eens, die doet wat jij zegt, maar dan beter ;)
Offline NCube - 14/01/2005 19:14 (laatste wijziging 14/01/2005 19:15)
Avatar van NCube HTML beginner @twopeak
met
  1. <?php
  2. if($extensie != "jpg" && $extensie != "jpeg" && $extensie != "gif")
  3. ?>

is toch helemaal niets mis, als de extensie niet jpg , jpeg en niet gif is dan komt de foutmelding

Overigens kan $extensie nooit "jpeg" zijn omdat met de huidige code $extensie nooit langer is dan 3 tekens.
Offline KmkZ - 14/01/2005 19:14
Avatar van KmkZ Lid Ik kies een geldige avatar met de juiste extensie. Werkt het nog steeds niet 
Offline twopeak - 14/01/2005 19:32
Avatar van twopeak Gouden medaille

PHP ver gevorderde
wacht, uhm, NCube, you're right, maar de fout zit'm wel daar... (I think)

ik zou het personelijk benaderen van als de extensie binnen de toegelaten extensies zit, dan mag het. (dus alles is fout behalve)
Ik zou met een array werken en met de functie in_array() checken of het in die array zit
maar ieders zijn methoden

@TheSpiritualL:
heb je de oplossing van NCube al geprobeerd?
indien ja:
net voor je if, plaats je een echo en je schrijft daarin:
  1. echo "<hr>",$extensie,"<hr>";

Dit zal al eens afdrukken wat er in de variabele zit, en zo kun je zelf zien: "is dit wat ik verwachtte?"
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.226s