27. oktober 2008 - 00:26
Der er
17 kommentarer og 2 løsninger
PHP billed skal ikke vises
Hej, jeg henter billeder fra min database, men når der ikke er gemt et billed viser den bare en tom ramme med et rødt kryds inden i, kan dette ikke fjernes så når der ikke er et billed tilgængeligt, så vises der ikke noget?: billedside.php echo '<img src="logo.php?logo='.$row['id'].'" height="40" width="236">'; logo.php <?php if(is_numeric($_GET['logo'])) { $id = intval($_GET['logo']); require_once('./../connect.php'); $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id'"); if(mysql_num_rows($query) == 1) { $row = mysql_fetch_assoc($query); header('Content-type: image/jpeg'); echo $row['logo']; } } ?>
Annonceindlæg fra SuperOffice
27. oktober 2008 - 07:33
#1
http://dk2.php.net/file_exists <?php
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
?>
27. oktober 2008 - 08:57
#2
Hvis dit billede er gemt i databasen, burde du kunne lave et tjek, om $row['logo'] indeholder noget, hvis ikke, så kunne du jo vise: BILLEDET FINDES IKKE (altså som et billede eller noget)
27. oktober 2008 - 09:04
#3
Ja, der er vel to tilgange (hvor jeg læser det som om du er ude efter den første): 1) billedside.php bør tjekke, om der i DB findes et logo for ID - hvis ikke, skal echo '<img src="logo.php?logo='.$row['id'].'" height="40" width="236">'; ignoreres. 2) logo.php kan generere (eller, mere optimalt; returnere et forudgenereret) et billede a lá "intet billede"...
27. oktober 2008 - 19:05
#4
Tak for de fine forslag. Burde dette ikke virke? For det gør det ikke..... if (file_exists($row[logo])) { echo '<img src="logo.php?logo='.$row['id'].'" height="40" width="236">'; }
27. oktober 2008 - 19:28
#5
Hmmm - jo, hvis $row['logo'] er en komplet eller relativ sti til en billed-FIL. Jeg læser imidlertid dit eksempel derhen, at billederne opbevares _i_ databasen. Og så holder den naturligvis ikke.
27. oktober 2008 - 22:33
#6
Det har du helt ret i, men så er jeg da helt på gale spor, få billederne opbevares i databasen
27. oktober 2008 - 23:14
#7
har prøvet denne, men vil heller ikke, nogen der kan hjælpe? if (filesize($row[logo]) >= 1) { echo '<img src="logo.php?logo='.$row['id'].'" height="40" width="236">'; } else { echo 'Intet billede'; }
27. oktober 2008 - 23:37
#8
$filename = '/path/to/foo.txt'; Husk komplet sti som sagt før.
28. oktober 2008 - 06:59
#9
fant0mas: Der er ikke tale om en sti, men billedet er gemt som en blob i databasen. Kunne du måske ikke lave noget ala: <?php if(is_numeric($_GET['logo'])) { $id = intval($_GET['logo']); require_once('./../connect.php'); $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id'"); if(mysql_num_rows($query) == 1) { header('Content-type: image/jpeg'); $row = mysql_fetch_assoc($query); if(strlen($row['logo'])>0){ echo $row['logo']; }else{ $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'Intet billede', $text_color); imagejpeg($im); imagedestroy($im); } } } ?>
31. oktober 2008 - 18:23
#10
Hej igen, kan ikke få det til at virke, den viser stadig en kasse med et rødt kryds i må gøre noget forkert, nogle forslag??? MIN BILLEDSIDE.PHP echo '<img src="logo.php?logo='.$row['id'].'">'; MIN LOGO.PHP <?php if(is_numeric($_GET['logo'])) { $id = intval($_GET['logo']); require_once('./../connect.php'); $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id'"); if(mysql_num_rows($query) == 1) { $row = mysql_fetch_assoc($query); header('Content-type: image/jpeg'); echo $row['logo']; } else{ $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'Intet billede', $text_color); imagejpeg($im); imagedestroy($im); } } ?>
31. oktober 2008 - 19:13
#11
Test lige: <?php if(isset($_GET['logo']) && is_numeric($_GET['logo'])){ $id = intval($_GET['logo']); require_once('./../connect.php'); $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id' LIMIT 1"); if(mysql_num_rows($query) == 1){ $row = mysql_fetch_assoc($query); header('Content-type: image/jpeg'); echo $row['logo']; }else{ header('Content-type: image/jpeg'); $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'Intet billede', $text_color); imagejpeg($im); imagedestroy($im); } } ?>
31. oktober 2008 - 19:52
#12
samme problem...
31. oktober 2008 - 20:17
#13
Prøv så at ret: header('Content-type: image/jpeg'); til: header('Content-type: text/html'); (begge steder) Og kald så: logo.php?id=(samme id som ikke virker)
31. oktober 2008 - 20:29
#14
Er ked af at sige det, det funker bare ikke... Hvad kan der mon være galt.?
31. oktober 2008 - 20:39
#15
Og der kommer slet ingen fejl eller noget ? Smid lige denne fil på en server og smid et link til filen herind: <?php if(isset($_GET['logo']) && is_numeric($_GET['logo'])){ $id = intval($_GET['logo']); require_once('./../connect.php'); $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id' LIMIT 1") or die(mysql_error()); if(mysql_num_rows($query) == 1){ $row = mysql_fetch_assoc($query); header('Content-type: text/html'); echo $row['logo']; }else{ header('Content-type: text/html'); $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'Intet billede', $text_color); imagejpeg($im); imagedestroy($im); } }else{ echo 'FEJL : ID ikke sat'; } ?> Det kan ikke passe det ikke virker eller i de mindste smider en fejl.
31. oktober 2008 - 21:16
#16
Problemet er fundet og løst. Tomme blob's bliver stadig fundet og derfor fejler visningen. Løsningen blev at lave: $query = mysql_query("SELECT logo FROM kopitest WHERE id = '$id' AND LENGTH(logo) > 10 LIMIT 1") or die(mysql_error()); Det virker ihf.
31. oktober 2008 - 21:16
#17
Og et var!
31. oktober 2008 - 21:16
#18
+ s
31. oktober 2008 - 21:44
#19
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling