webForumDet fria alternativet
Logga in / Bli medlem

src image och php

PHP

14 svar · 342 visningar · startad av Zacay

Medlem sedan juli 200164 inlägg
Frågan#1

Hej!!!!
Kan man göra så här?

<img src="bild.php?id=234">

och så visar den bilden på id=234 ????

Isåfall hur gör man?
Tack på förhand!

Medlem sedan feb. 20005 891 inlägg
#2

Använd en SQL-fråga, typ

$sql = "SELECT * FROM tabell WHERE id = $id"

;)

Medlem sedan juli 200164 inlägg
#3

Jo det visste jag , men vad ska finna i databasen ???

ska man använda fopen, efter att den hämtat ngt i databasen?

Medlem sedan juli 200164 inlägg
#4

Någon? =) ???

Medlem sedan apr. 20007 588 inlägg
#5

Antingen så lagrar du hela bilden i databasen eller så lagrar du endast metadata, dvs information, om bilden i databasen, själva bilden lagras i filsystemet.

Det första alternativet är mindre lämpligt för normala tillämpningar så därför är det smidigaste om du lagrar bilden i filsystemet.

Låt säga att du har en katalog vid namn /web/imagebank där alla bilder lagras.

Du har en databastabell, imgbank, där varje bild i katalogen beskrivs, denna kan se ut på följande vis:

ID        - primärnyckel
FILENAME  - bilden filnamn
GENRE     - främmande nyckel till den bildgrupp som bilden tillhör
CREATOR   - upphovsman

Om du har två bilder, nisse.jpg samt orvar.png i katalogen så kan tabellen se ut så här:

1, nisse.jpg, 1, 'Nisse Nilsson'
2, orvar.png, 1, 'Orvar Orvarsson'

För att visa dessa bilder med information om upphovsman samt bildgrupp så läser du helt enkelt in rätt rad med cascas SQL-sats och bygger upp URL-en till bilden (http://server/imagebank/\<skapad url till bilden> ) och langar in den i en <IMG SRC="">-tagg, under bilden kan du t.ex skriva ut namnet på upphovsmannen och annat trevlig info om bilden som du lagrat i databasen.

Om du bestämt vill att alla accesser till din bild MÅSTE gå genom din PHP-sida (alltså ingen direktlänkning till http://server/imagebank/nisse.jpg) så får du läsa in bilden med fopen(), sätta content-type till t.ex image/jpeg med Header("Content-type: image/jpeg) och sedan skriva bilden till klienten.

Medlem sedan juni 20008 205 inlägg
#6

Det smidigaste i det senaste fallet torde vara readfile...

Medlem sedan juli 200143 inlägg
#7

Låt oss anta att du skriver:

<img src="bild.php?id=234">

Sen skapar du en fil med namnet bild.php som ser ut såhär:

<?php
mysql_connect("host","username","password");
$mysql_result = mysql_query("SELECT img FROM IMAGES WHERE UID = $id");
while ($img = mysql_fetch_array($mysl_result)) {
$im = @ImageCreateFromGIF($img["img"]);
}
echo $im;
?>

Detta borde räcka, men som vanligt lämnas inga garantier.
Du kan ju anpassa scriptet så att du kan ladda olika bildformat. Å dessutom så kan du lägga till lite copyrightinfo å sånt på bilden!
// imagecreatefromjpeg(string img)
// imagecreatefrompng(string img)

Medlem sedan juni 20008 205 inlägg
#8

Gifstödet är borttaget numera...

Medlem sedan juli 200143 inlägg
#9

I know, men han kan ju ha en gammal installation.
Dessutom så la jag till raderna på slutet just därför! ;)

Medlem sedan juli 200164 inlägg
#10

Hehe, jag har den senaste installationen..

tack för all er hjälp, ska försöka lista ut ngt snart när jag har tid,

=)) ni har varit jätte hjälpsamma!

Ha dé gött

Medlem sedan juli 200164 inlägg
#11

Hej igen,
jag lcykades göra allt, men
har jag stött på ett problem!

<script language="javascript">
<!--
intro_on = new Image();

// Sökvägen till bilderna som det skall bytas emellan...
//---------------------------------------
intro_on.src = "<?php include('bild.php'); ?>";
//---------------------------------------

setTimeout("byt1()", 10000);
// 10000 milisekunder = 10 sekunder

function byt1()
{
if (document.images)
{
document.intro.src= '<?php include('bild.php'); ?>';
}
setTimeout("byt1()", 10000);

}

//-->
</script>

</head>
<body>
<img src="<?php include('bild.php'); ?>" name="intro">

När jag kör det så ersätts alla

<?php include(bild.php); ?>
MOT
images/bild.jpg

Eftersom bild.php ,
men då kommer javascriptet vara helt onödig!

bild.php gör bara en echo(bildaddress).

Jag vill istället lura html och javascriptet att bild.php är själva bilden!

bild.php ska returnera bilden. ingen address på bilden =)

tack igen

Medlem sedan juni 20008 205 inlägg
#12
intro_on.src = "bild.php";

:q

Medlem sedan juli 200164 inlägg
#13

Det där funkar inte eftersom bild.php är inte en bild ,
jag måste ju göra så att bild.php returnerar en bild .. att den ska fungera som en bild (gif eller jpeg)

=)

Medlem sedan apr. 20007 588 inlägg
#14

I bild.php:

Sätt Content-type till image/jpeg eller gif eller vad det nu må vara.

Läs in bilden från lämplig datakälla (filsystem/databas)

Skriv ut bilden.

Klart! Nu är bild.php en bild vad webbläsaren anbelangar.

Medlem sedan juli 200164 inlägg
#15

Content type har jag redan tänkt på =)))
men sen var det funktionen som läser in bilden ifrån databasen.

Jag kan ta fram en address ifrån en databas,
sen att göra det till en bild med php kan jag inte =))

du kanske har en liten bit kod till mig eller ?

MVH
Zacay

258 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)