06. maj 2005 - 16:30Der er
66 kommentarer og 1 løsning
Fejl i mit upload script
Kan i rette de her fejl for mig?
Fejl:
Warning: imagesx(): supplied argument is not a valid Image resource in /mnt/raid/www/www/babegalleri/test/img_add.php on line 32
Warning: imagesy(): supplied argument is not a valid Image resource in /mnt/raid/www/www/babegalleri/test/img_add.php on line 33
Warning: copy(): Unable to access in /mnt/raid/www/www/babegalleri/test/img_add.php on line 50
Warning: Division by zero in /mnt/raid/www/www/babegalleri/test/img_add.php on line 52
Warning: imagecreatetruecolor(): Invalid image dimensions in /mnt/raid/www/www/babegalleri/test/img_add.php on line 55
Warning: imagecreatefromjpeg(images/users/hotornot/images/23_big): failed to open stream: No such file or directory in /mnt/raid/www/www/babegalleri/test/img_add.php on line 60
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /mnt/raid/www/www/babegalleri/test/img_add.php on line 63
Warning: imagejpeg(): supplied argument is not a valid Image resource in /mnt/raid/www/www/babegalleri/test/img_add.php on line 68
Warning: unlink(images/users/hotornot/images/23_big): No such file or directory in /mnt/raid/www/www/babegalleri/test/img_add.php on line 71
if (f.image.value == ""){ alert("Du skal vælge et billede!"); f.image.focus(); return false; } f.UploadButton.disabled=true; f.UploadButton.value = 'Øjeblik!'; return true; } --> </script>
<form method="POST" onsubmit="return CheckUpload(this);" action="main.php?page=img_add" enctype="multipart/form-data"> <p>Alle billeder der bliver tilføjet her, vil blive vist på Hot or Not siden og evt. på toplisterne, hvis den får en god
Hov tror fejlen ligger i min .htaccess fil i mappen, den giver nemlig kun en speciel fil lov til at komme ind. Det kode fra .htaccess filen er:
##Start rewrite engine RewriteEngine on ##Hvis loades fra side.com/index.php med valgfri www samt mulighed for subdomain RewriteCond %{HTTP_REFERER} !^http://(www\.)?([^.]+\.)?babegalleri.dk/images/users/hotornot/index.php [nc] ##send brugeren til main domain RewriteRule /* http://www.babegalleri.dk [R,L]
$big_width = imagesx($img); $big_height = imagesy($img); if($big_width < 340) { $warning[] = "Billedet er for smalt, det skal minimum være 340 pixel bredt."; }
if(!is_array($warning) && count($warning)>0) { echo 'Dit billede blev ikke uploadet, dette skyldes nedenstående fejl:<br><font color="#FF0000">'; echo implode("-" , $warning); echo '</font>'; } else {
mysql_query("INSERT INTO hotornot (userid,img_type,img_accepted) VALUES ('$_SESSION[userid]','$type','no')") or die(mysql_error());
?> <script type="text/javascript"> <!-- function CheckUpload(f) {
if (f.image.value == "") { alert("Du skal vælge et billede!"); f.image.focus(); return false; } f.UploadButton.disabled=true; f.UploadButton.value = 'Øjeblik!'; return true; } --> </script>
<form method="POST" onsubmit="return CheckUpload(this);" action="main.php?page=img_add" enctype="multipart/form-data"> <p>Alle billeder der bliver tilføjet her, vil blive vist på Hot or Not siden og evt. på toplisterne, hvis den får en god
Hmm.. hvorfor indryk? Gør mig bare forviret, men nu lige meget om jeg bruger .jpg, .gif eller en anden filtype skriver den bare Array også skriver den ikke mere.
Jeg tror faktisk at getimagesize ikke virker på mit webhotel, hvad kunne det ellers være, fordi før var der jo heller ingenting der kunne få fat i $type
Vidste godt at der var små fejl i, men dem havde jeg ellers tænkt mig at rette bagefter:
<script type="text/javascript"> <!-- function CheckUpload(f) {
if (f.image.value == "") { alert("Du skal vælge et billede!"); f.image.focus(); return false; } f.UploadButton.disabled=true; f.UploadButton.value = 'Øjeblik!'; return true; } --> </script>
<form method="POST" onsubmit="return CheckUpload(this);" action="main.php?page=img_add" enctype="multipart/form-data"> <p>Alle billeder der bliver tilføjet her, vil blive vist på Hot or Not siden og evt. på toplisterne, hvis den får en god
PS. Hvis du bruger photoshop, *SKAL* du gemme vha. "Save for web" - Photoshop kan ikke finde ud af at lave ordentlige jpeg-billeder hvis man bruger "Save as" eller "Save as a copy".
Hmm, det er underligt. Det lader ikke til at getimagesize() vil læse dem - Prøv den lige i et script for sig selv, med et billede der findes på serveren:
Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phpg51Evo) is not within the allowed path(s): (/var/www/babegalleri) in /mnt/raid/www/www/babegalleri/test/img_add.php on line 20
Warning: getimagesize(/tmp/phpg51Evo): failed to open stream: Operation not permitted in /mnt/raid/www/www/babegalleri/test/img_add.php on line 20 Du skal uploade et .jpg eller .gif billede!
Med .jpg:
Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phpSb2Mdi) is not within the allowed path(s): (/var/www/babegalleri) in /mnt/raid/www/www/babegalleri/test/img_add.php on line 20
Warning: getimagesize(/tmp/phpSb2Mdi): failed to open stream: Operation not permitted in /mnt/raid/www/www/babegalleri/test/img_add.php on line 20 Du skal uploade et .jpg eller .gif billede!
Warning: uniqid() expects at least 1 parameter, 0 given in /mnt/raid/www/www/babegalleri/test/img_add.php on line 21
Warning: uniqid() expects at least 1 parameter, 0 given in /mnt/raid/www/www/babegalleri/test/img_add.php on line 21
Warning: move_uploaded_file(images/users/hotornot/images/): failed to open stream: Is a directory in /mnt/raid/www/www/babegalleri/test/img_add.php on line 22
Warning: move_uploaded_file(): Unable to move '/tmp/php7ix1MT' to 'images/users/hotornot/images/' in /mnt/raid/www/www/babegalleri/test/img_add.php on line 22
Warning: getimagesize(): Read error! in /mnt/raid/www/www/babegalleri/test/img_add.php on line 29 Du skal uploade et .jpg eller .gif billede!
Ja, det er meningen at du skal arbejde videre med den fil, hvis det f.eks. ikke er et jpeg/gif, skal du selv slette det igen med unlink()
Prøv at debugge, hvad tror scriptet at bredden og højden er? Hvad tror scriptet at new_width og new_height skal være? De to sidste fejl er følger af den første.
$warning[] = "Du skal uploade en fil."; unlink($image); }
Men den sletter det ikke, så har jeg kigget på de 2 billeder den uploader, den der heder tmp er hvis jeg skriver.jpg på det 100% rigtige billede, som jeg uploadede, men det andet bliver 2 bredt og 340 højt.
Den gav heller ingen fejl med obenstående, selv om billede var for lille for kravene, hvordan kan det være?
Godt jeg lige selv kiggede alt i gennem :D Photoshop filer virker også nu, en af de største fejl var da jeg regnede de nye højder og breder ud, det gav 0,4454576567 eller ngoet i den stil.
Tusind tak for din hjælp, vil du lige smide et svar?
Det var godt nok dejligt at få fixet, det må vel være oven på en dag med så meget god mad :D
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.