25. marts 2007 - 22:47Der er
19 kommentarer og 1 løsning
Kig min kode igennem
Hej alle sammen. Jeg er i gang med at lave et system så en bruger kan uploade et billede til sin profil.
Men kan ikke helt få den kode, jeg har lånt fra et andet emne her på siden. Og så har jeg lavet lidt om i den.
Her er min kode:
<h2>Galleri</h2> Dette er dit personlige galleri - som andre folk kan kigge i. <?php //Sender billedet ind $limitedext = array(".jpg",".jpeg",".gif",".bmp"); $sizelimit = "ja"; $sizebytes = "20000";
$tid = md5(date('c'));
if($_POST['skriv']=="doit"){ if ($_FILES['file'] != "") { $ext=strrchr($_FILES['file']['name'],'.'); $ext=strtolower($ext);
if (!in_array($ext,$limitedext) ) { die("Filen er en forkert filtype. De tiladte filtyper er bmp, gif og jpg/jpeg."); }
if($ext==".bmp"){ if (($_FILES['file']['size'] > $sizebytes)) { die("Billedet er for stort. En fil må højest fylde 200 kb."); } @copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); }else{
@copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); #-+ Read the source image $src_img = ImageCreateFromJPEG($filnavnet);
if (!in_array($ext,$limitedext) ) { die("Filen er en forkert filtype. De tiladte filtyper er bmp, gif og jpg/jpeg."); }
if($ext==".bmp"){ if (($_FILES['file']['size'] > $sizebytes)) { die("Billedet er for stort. En fil må højest fylde 200 kb."); } @copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); }else{
@copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); #-+ Read the source image $src_img = ImageCreateFromJPEG($filnavnet);
#slet "midlertidige" filer fra serveren. imagedestroy($dst_img); } } else { die("Husk at vælge et Billede"); } echo "<p />"; echo "Dit billede blev uploadet"; mysql_query("INSERT INTO dr_galleri (brugernavn, billede, dag, maaned, aar) VALUES('$brugernavn','$tid.$ext','$dag','$maaned', '$aar')") or die(mysql_error()); }else{
//Tjekker om brugeren er logget ind og viser form if ( isset( $_SESSION['bruger'] ) ) { $query = mysql_query("SELECT * FROM dr_brugere WHERE brugernavn LIKE '$bruger' ") or die(mysql_error()); $row = mysql_fetch_array($query);
echo " <form method='POST' action='?side=profil/galleri.php&menu=6' enctype='multipart/form-data'> Vælg et billede:<br> <input type='hidden' name='skriv' value='doit' size='30'> <input type='file' name='file' size='30'> <button name='submit' type='submit' value='Upload'> Upload </button> </form>"; } else { echo " <b>Du skal have en bruger på siden for at kunne se denne side. Opret en bruger <a href='?side=opret.php&menu6'>her</a></b>"; } } ?>
Hvis dit webhotel er one.com så husk at slå error beskeder til. Det kan du gøre fra kontrolpanelet. Jeg mener at der er slået fra pr default, det er sikkert en af grundene til at du kun få en blank side.
if (!in_array($ext,$limitedext) ) { die("Filen er en forkert filtype. De tiladte filtyper er bmp, gif og jpg/jpeg."); }
if($ext==".bmp"){ if (($_FILES['file']['size'] > $sizebytes)) { die("Billedet er for stort. En fil må højest fylde 200 kb."); } @copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); }else{
@copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet); #-+ Read the source image $src_img = ImageCreateFromJPEG($filnavnet);
#slet "midlertidige" filer fra serveren. imagedestroy($dst_img); } } else { die("Husk at vælge et Billede"); } echo "<p />"; echo "Dit billede blev uploadet"; mysql_query("INSERT INTO dr_galleri (brugernavn, billede, dag, maaned, aar) VALUES('".$_SESSION['bruger']."','$tid.$ext','$dag','$maaned', '$aar')") or die(mysql_error()); }else{
//Tjekker om brugeren er logget ind og viser form if ( isset( $_SESSION['bruger'] ) ) { $query = mysql_query("SELECT * FROM dr_brugere WHERE brugernavn LIKE '$bruger' ") or die(mysql_error()); $row = mysql_fetch_array($query);
echo " <form method='POST' action='?side=profil/galleri.php&menu=6' enctype='multipart/form-data'> Vælg et billede:<br> <input type='hidden' name='skriv' value='doit' size='30'> <input type='file' name='file' size='30'> <button name='submit' type='submit' value='Upload'> Upload </button> </form>"; } else { echo " <b>Du skal have en bruger på siden for at kunne se denne side. Opret en bruger <a href='?side=opret.php&menu6'>her</a></b>"; } } ?>
grunden til det ekstra . du havde før, tror jeg ligger i din query: mysql_query("INSERT INTO dr_galleri (brugernavn, billede, dag, maaned, aar) VALUES('".$_SESSION['bruger']."','$tid.$ext','$dag','$maaned', '$aar')") or die(mysql_error());
'$tid.$ext' <- er det ikke forkert?
Bare for at kunne udelukke den fejl kan du så ikke prøve at lave en variabel med $tid.$ext som det eneste indhold? og selvfølgelig bruge den i din query?
selv tak.. der er ofte de mindste ting der nemmest bliver overset ;o)
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.