webForumDet fria alternativet

src image och php

14 svar · 340 visningar · startad av Zacay

ZacayMedlem sedan juli 200164 inlägg
#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!

cascaMedlem sedan feb. 20003 262 inlägg
#2

Använd en SQL-fråga, typ

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

;)

------------------
"It's my poor friend me."

ZacayMedlem 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?

ZacayMedlem sedan juli 200164 inlägg
#4

Någon? =) ???

sgtpepperMedlem sedan apr. 20005 524 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.

------------------
"To iterate is human, to recurse, divine" - L. Peter Deutch

spangoMedlem sedan juni 20006 147 inlägg
#6

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

------------------
"There's no such thing as a stupid question, only stupid people"

Mats95Medlem sedan juli 200144 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)

------------------
TOTD: RTFM and THINK!

spangoMedlem sedan juni 20006 147 inlägg
#8

Gifstödet är borttaget numera...

------------------
"There's no such thing as a stupid question, only stupid people"

Mats95Medlem sedan juli 200144 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! ;)

------------------
TOTD: RTFM and THINK!

[Redigerat av Mats95 den 13 aug 2001]

ZacayMedlem 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

ZacayMedlem 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

spangoMedlem sedan juni 20006 147 inlägg
#12
intro_on.src = "bild.php";

:q

------------------
"There's no such thing as a stupid question, only stupid people"

ZacayMedlem 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)

=)

sgtpepperMedlem sedan apr. 20005 524 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.

------------------
"To iterate is human, to recurse, divine" - L. Peter Deutch

ZacayMedlem 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

132 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
130 ms — hämta tråd, inlägg och bilagor (db)