Avatar billede ofirpeter Nybegynder
26. juni 2003 - 14:44 Der er 29 kommentarer og
3 løsninger

PHP Header fejl

Jeg har endelig fået dette script, som henter billeder ud af MySQl, til at virke.

<?php

$db = @mysql_connect("mysql.web10.dk", "******", "******") or die("Can't connect to server.");
@mysql_select_db("******", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");
print "$billede";
?>

Men det virker kun hvis der ikke står noget andet HTML på siden. Hvordan løser jeg dette?
Hvordan placere jeg f.eks. billedet i en tabel midt på siden?
Avatar billede ahv Nybegynder
26. juni 2003 - 14:46 #1
Du må ikke have noget put put før ->

header("Content-type: $filetype");
Avatar billede ahv Nybegynder
26. juni 2003 - 14:46 #2
<?php

$db = @mysql_connect("mysql.web10.dk", "******", "******") or die("Can't connect to server.");
@mysql_select_db("******", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");

// Herfra og ned kan du fyrer den af med HTML ;o)

print "$billede";
?>
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 14:49 #3
Ikke hvis jeg hopper ud af PHP.

//Alt den anden kode//
header("Content-type: $filetype");
?>

<table>Hej med dig</table>


<?
print "$billede";
?>

</body>
</html>

Hvordan kan jeg hoppe ud, og så hoppe ind igen når jeg skal have mit billede ind?
Avatar billede ahv Nybegynder
26. juni 2003 - 14:51 #4
Du har ikke <html> Til at stå helt i toppen af dokumentet?
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 14:52 #5
Du skal lave et <img src="ditscriptderhenterudafmsyql.php"> i din HTML-kode
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 14:54 #6
Nej det ser sådan ud:

<?php

$db = @mysql_connect("mysql.web10.dk", "gb1404", "1d856ed") or die("Can't connect to server.");
@mysql_select_db("gb1404", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");
?>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<table>Hej med dig</table>


<?
print "$billede";
?>

</body>
</html>
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 14:55 #7
Der  var lige et password. Men du skal bruge et <img>-tag som beskrevet
Avatar billede ahv Nybegynder
26. juni 2003 - 14:55 #8
Hvad indeholder billede? Hvis det kun indeholder en stå skal du have et img tag på som EJ henviser til.
Avatar billede ahv Nybegynder
26. juni 2003 - 14:55 #9
Hvilken fejl for du da? I din overskrift står der jo ->
PHP Header fejl
Avatar billede ahv Nybegynder
26. juni 2003 - 14:56 #10
Fejlen er måske bare at den ikke viser billedet?
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 14:57 #11
Jeg forstår ikke helt.
Der står denne fejl:
Warning: Cannot modify header information - headers already sent by (output started at /home/web/gb1404/babysafe/cms/getdata.php:2) in /home/web/gb1404/babysafe/cms/getdata.php on line 13

Og så viser den billedet med:
D÷€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿ3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿ!ù, Dÿÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CÌ'²¤É“(Sª,HòŸ¿ƒ/WÊœI³fÊ—1óÅüWͦϟ@ƒZœ²³5Û„*] Osv
Avatar billede ahv Nybegynder
26. juni 2003 - 14:58 #12
<?php
$db = @mysql_connect("mysql.web10.dk", "gb1404", "1d856ed") or die("Can't connect to server.");
@mysql_select_db("gb1404", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");
?>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<table>Hej med dig</table>


<?
print "$billede";
?>

</body>
</html>
Avatar billede angam Nybegynder
26. juni 2003 - 14:58 #13
Du har inten tomme linier eller mellemrum inden din første <?php ..?
Avatar billede ahv Nybegynder
26. juni 2003 - 14:58 #14
Et linieskift er også et output.
Avatar billede angam Nybegynder
26. juni 2003 - 14:59 #15
Exactly ....
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 15:01 #16
Jo det havde jeg! Nu kommer der tekst før billedet! :0)
Men! Billedet bliver stadig skrevet som ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ....
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 15:01 #17
Du skal have et <img>-tag i din HTML. Du kan IKKE blande billeder
og HTML på denne måde. Dit billedscript skal så alene hente billedet
(+contenttype)
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 15:06 #18
Men hvordan gør jeg det hvis jeg ikke må flytte header? Hvis jeg skriver <img src="<? $billede ?>"> Er der bar en tom box med et kryds.

Det er ved at være tæt på tror jeg :)
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 15:08 #19
Du skal lave et <img src="ditscriptderhenterudafmsyql.php"> i din HTML-kode
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 15:22 #20
Er der ikke en der vil sætte det ind i den kode som jeg har lagt ud lidt længere oppe?
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 15:22 #21
kan ik helt få det til at virke
Avatar billede angam Nybegynder
26. juni 2003 - 15:24 #22
Her er imagewrapper.php:

<?php
$db = @mysql_connect("mysql.web10.dk", "gb1404", "1d856ed") or die("Can't connect to server.");
@mysql_select_db("gb1404", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");
?>


og her index.html:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table>Hej med dig</table>
<img src="image.php">
</body>
</html>
Avatar billede angam Nybegynder
26. juni 2003 - 15:24 #23
<img src="image.php">
skal være
<img src="imagewrapper.php">
Avatar billede angam Nybegynder
26. juni 2003 - 15:26 #24
.. bemærk at der er TO filer:
En index.html, hvor der blot er et almindeligt image-tag, der refererer til imagewrapper.php

imagewrapper.php, der "opfører" sig som et almindeligt billede (og returnerer content-typen som et billede).
Avatar billede angam Nybegynder
26. juni 2003 - 15:46 #25
Hvis du lige skal teste scriptseme, kan du prøve at erstatte imagewrapper.php med denne kode:

<?php
header("Content-type: image/jpeg");
readfile("test.jpg");
?>

.. og sørge for at der ligger et billede 'test.jpeg'. Jeg har testet index.html med ovenstående imagewrapper.php - og det virker fint :-)
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 15:51 #26
Okay jeg kan bare ikke få det til at virke! Jeg vender tilbage i aften, tror lige jeg har brug for en pause, før det hele ryger ud gennem vinduet :0)
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 15:55 #27
Vis os din kode, eller et link - det er faktisk ret nemt, jeg bruger det selv.
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 16:06 #28
Her er min kode
index:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table>Hej med dig</table>
<img src="imagewrapper.php">
</body>
</html>

imagewrapper:
<?php
$db = @mysql_connect("mysql.web10.dk", "gb1404", "1d856ed") or die("Can't connect to server.");
@mysql_select_db("gb1404", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");

?>

Og det der sker når jeg går ind på index.php
Der står "hej med dig"
Og så er der en tom billede box :(

Øv
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 16:09 #29
print $billede;

mangler i imagewrapper.php
Avatar billede ofirpeter Nybegynder
26. juni 2003 - 16:12 #30
Jubii! I er sgu guld! Mange tak for hjælpen alle sammen. Nu virker det endelig! :0)
Avatar billede angam Nybegynder
26. juni 2003 - 16:14 #31
Du mangler en linie i imagewrapperen. Såvidt jeg kan se loader du aldrig billeder:

<?php
$db = @mysql_connect("mysql.web10.dk", "gb1404", "1d856ed") or die("Can't connect to server.");
@mysql_select_db("gb1404", $db) or die("Can't select database.");

$get_image = "select billede, filetype from billeder where id=4";
$get_image_result = @mysql_query($get_image) or die("Couldn't get image.");

$billede = @mysql_result($get_image_result,0,"billede");
$filetype = @mysql_result($get_image_result,0,"filetype");

header("Content-type: $filetype");
readfile($billede);

?>

.. prøv igen *s*
Avatar billede angam Nybegynder
26. juni 2003 - 16:14 #32
hehe sorry - var for langsom denne gang :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester