Avatar billede acid-head Nybegynder
16. juni 2004 - 17:47 Der er 15 kommentarer og
1 løsning

JPG og PHP i samme fil..

Hej eksperter..

Jeg vil høre om det er muligt at have et JPG billede og noget PHP kode i den samme fil.. Altså fx.

<fil>

$billeddata = "10101001011001 :)"

echo "Noget mere kode";

</fil>

Kode og billede skal altså være i samme fil, så PHP-filen ikke skal inkluderer billedet fra en anden fil..

Er det muligt..?
Avatar billede thedeathart Nybegynder
16. juni 2004 - 17:50 #1
Du kan vist godt hvis du laver jpg-billedet om til binær-data, men det vil være alt for meget til at lægge i en .php fil, du kan med GD-lib2 lægge det i en mysql-database.

Men det er ikke noget jeg vil anbefale.
Avatar billede acid-head Nybegynder
16. juni 2004 - 18:03 #2
Det skal bare fungere som et password-beskyttet billede.. Og password-tjekket skal være inde i selve billedet, derfor er det ikke for meget at lægge i en php-fil :)

Hvordan laver jeg så JPG-billedet om til binær-data?
Avatar billede swaxi Nybegynder
16. juni 2004 - 18:11 #3
tjah ... dette her ville give dig en php-fil, med et jpg-billede i en variabel. for at beskytte binære data, er variablen base64-enkodet. så hvis du skal bruge den, skal du dekode den først med base64_decode()

som du kan se er det rimeligt langhåret, og jeg tror da også at du griber dit problem helt forkert an. har du overvejet, at bruge htaccess til at beskytte dine filer ?
<?php
$data = file_get_contents("billede.jpg");
$encoded_string = base64_encode($data);
if (!$handle = fopen("test.php", 'wb')) {
    die("fejl");
}
$content = "<?php\n$encoded_data = \"".$encoded_string."\";\n?>";
if (!fwrite($handle, $content)) {
    die("fejl");
}
fclose($handle);
?>
Avatar billede swaxi Nybegynder
16. juni 2004 - 18:12 #4
eh ... erstat
$content = "<?php\n$encoded_data = \"".$encoded_string."\";\n?>";
med :
$content = "<?php\n\$encoded_data = \"".$encoded_string."\";\n?>";
Avatar billede dennismp Nybegynder
16. juni 2004 - 18:14 #5
<?php
  if( $etsikkerhedstjek ) {
    header("Content-type: image/jpeg");
    readfile('../etdir/enfil.jpg');
  }
?>

Så skal du bare placerer enfil.jpg i et directory som man ikke kan se fra websiden (fx. vha .htaccess).
Avatar billede warren27 Nybegynder
16. juni 2004 - 18:17 #6
Man kan jo bare lave et sreenshot af billedet, så har man det jo alligevel !!!

http://www.yalla.dk
Avatar billede acid-head Nybegynder
16. juni 2004 - 18:19 #7
Swaxi: Kan godt forstå din undring.. Men billederne skal kun benyttes af nogle få stykker, eller det er i hvert fald det, der er meningen. Derfor jeg er sådan lidt paranoid. Overvejede også at løse problemet vha. htaccess beskyttelse, men så er filerne jo ikke beskyttet, hvis de downloades. Det skal være rimelig sikkert - så sikkert at uanset hvad, så skal man taste det password.

dennismp: Det er meningen at billederne ikke skal includes af PHP, men ligge som en variabel i PHP-filen.. :)
Avatar billede dennismp Nybegynder
16. juni 2004 - 18:20 #8
.. hvis du ikke kan se billedet, så hjælper et screenshot nada. Når først billedet bliver sendt til browseren, så er det self. trivielt at gemme billedet.
Avatar billede dennismp Nybegynder
16. juni 2004 - 18:22 #9
acid-head: Jo det er jeg klar over, men jeg forstår ikke hvad du opnår ved at lave billedet som "embedded" i din php-fil?
Avatar billede swaxi Nybegynder
16. juni 2004 - 18:23 #10
> men så er filerne jo ikke beskyttet, hvis de downloades.
det fatter jeg hat - ligegyldig hvor meget sikkerhed du har kørende, så er de kun beskyttet indtil folk har downloaded dem ?
htaccess er noget af det mest sikre du kan bruge. hvis du virkeligt er paranoid, kan du jo køre hele din side over SSL ...
Avatar billede acid-head Nybegynder
16. juni 2004 - 18:28 #11
Heh.. Jeg forstår godt jeres undren.. Men det er også meningen af dem, som har passwordet, må kunne gemme billedet. Meningen med at gemme billederne inde i filen, er at hvis nogle får fat i PHP-filerne uden passwordet, så kunne skal kunne se billederne :)

Og uanset om i synes det er tåbeligt eller hvad, så virker swaxis metode :) Tak!
Avatar billede acid-head Nybegynder
16. juni 2004 - 18:29 #12
"så kunne skal kunne se billederne :)"

så IKKE skal kunne se billederne! .. Vigtig pointe! :)
Avatar billede dennismp Nybegynder
16. juni 2004 - 18:33 #13
Jeg tror at acid-head forventer at ved at embedded billedet i en php fil, så bliver php'en kørt hver gang man skal se filen. Det gør den altså nødvendigvis ikke.

Når du når så langt, kan skal du lave: <img src="http://domæne.com/ditscript.php">

.. men det hindre slet ikke brugeren i at gemme filen lokalt (da browseren modtager en jpeg-fil.. og dette format ikke har nogen form for styring/kontrol/beskyttelse som du ønsker).

Eneste alternativ er vist at lave noget klientside der kan dekode dit billede.. Så du scrambler dit billede og en applet/flash/etc ved hvordan den kan vises.. Men så er det, som warren27 siger, ikke noget problem at lave et screenshot. Der findes ikke rigtig nogen god løsning (som jeg kender)..

warren: jeg misforstod spørgsmål i første omgang - du har helt ret :)
Avatar billede dennismp Nybegynder
16. juni 2004 - 18:34 #14
glem mit indlæg.
Avatar billede moviez Nybegynder
16. juni 2004 - 18:36 #15
billedet kan sættes måske i en AVI file, der kan de ikke tag screenshots, men så kan de gemme avi filen, du kan ligge dem i flash film, men så kan de jo tag screenshots, du gemmer dem i mysql så kan man stadigvæk gemme dem i jpg fil, du kunne måske lav sådan hvis man trykker på SCREENSHOTS så sker der et eller andet der får billedet til at forsvinde, ellers jeg tror måske noget JAVA kodning kan sikre det lidt bedre.
Avatar billede warren27 Nybegynder
16. juni 2004 - 19:36 #16
Jo man kan godt lave sreenshots af film der bliver afspillet i feks windows-medie-play. Du skal bare bruge "hypersnap dx" http://www.hyperionics.com - det er genialt.

Og man kunne vel også tag et billed med sit digitale-kamara, men jeg ved ikke hvor godt det bliver, man skal nok passe godt med blitz...
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