http://p.infinitedreams.de/upic/upic.php
Genau, so etwas meinte ich. Nur das jetzt die Endung ‚.jpg‘
heißen soll.
Ich habe jetzt auf Opera 7.54 upgedatet. Da wird auch ein
Bild, das ‚upic.php‘ heißt angezeigt. Bei der älteren Version
gabs da nur den Binärcode des Bildes zusehen.
Auch wenn der richtige Header ausgegeben wurde? Das wäre ein arges Problem, waren die Programmierer betrunken? Opera benutze ich nicht, eigentlich nur, weil es so ein Trumm von Programm ist. Jetzt habe ich einen Grund mehr.
Firefox (aktuell: 1.0.4) ist Dein Freund *g* - klein, hübsch, schnell und sicher - und vor allem: konform.
Ich habe auf dem Apacheserver leider keine Rechte die conf-
Datei zu ändern.
Brauchts net.
Also, es gibt keine möglichkeit, das jpg-Dateien vom PHP
Interpreter, interpretieren zu lassen.
Das verstehe ich nicht. Ist das Deutsch?
Zum Punkto URL Manipulation: http://…/bild.php/bild.jpg,
halte ich für keinen Fall für verwerflich. Ich habe ja keine
Bösen absichten.
Wie schön, das beruhigt uns
Bist also ein netter Kerl… Trotzdem, /bild.php/bild.jpg-> nein. /bilder/bild_x.jpg -> ja.
Dann müste ja das ganze Wikipediaprojekt verwerflich sein.
Da kann man ja, wenn man z.B. etwas über SQL erfahren will
‚http://de.wikipedia.org/wiki/SQL‘. man könnte theoretisch
auch ‚http://de.wikipedia.org/index.php?wiki=SQL‘ oder
ähnliches eingeben, wenn es so programmiert worden wäre. Also,
wie gesagt: ‚PFUI‘ ist daran nichts; denn Wikipedia ist in
meinen Augen ein sehr wertvolles Projekt.
Dazu habe ich mich bereits geäußert, das kann sich ja keiner
anhören. Wikipedia weiß eben mit Suchmaschinen umzugehen.
Also, gibt es eine möglichkeit, Variablen aus ‚vorgegaukelten‘
unterordnern zu lesen?
Natürlich geht das mit URL-Manipulation, damit geht fast alles.
Also… erstelle eine .htaccess mit folgendem Inhalt:
RewriteEngine on
RewriteRule ^.\*bild\_(.+)\.jpg$ /php/image.php?id=$1 [L]
Erklärung: Du weist Apache an, alle URLs auf deiner Domain (egal ob in der Root oder in einem Unterordner), welche mit
bild_x.jpg enden, auf das im Verzeichnis /php/image.php umzuleiten, und die id als $_GET-Parameter mitzugeben.
z.B.
www.meinedomain.com/bilder/existiert\_nicht/bild\_1.jpg
wird vom Server als
www.meinedomain.com/php/image.php?id=1
verstanden.
(http weggelassen, damit’s kein Link wird)
Nun zum PHP-Skript:
<?php $imagefile = '/root/pfad/zur/domain/img/foto'.$_GET['id'].'.jpg';<br />
if(isset($\_SERVER['HTTP\_USER\_AGENT']) && preg\_match("/MSIE/", $\_SERVER['HTTP\_USER\_AGENT'])) {
ini\_set( 'zlib.output\_compression','Off' ); //IE-Bug
}
header('Content-type: image/jpeg');
header('Pragma: public');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
$picture = imagecreatefromjpeg($imagefile);
imagejpeg($picture);
?\>
Erklärung: $imagefile enthält den absoluten Dateinamen zum tatsächlichen Bild - Wenn Du das selbst machst, brauchst Du das eh nicht. (wie imagecreatexy funktioniert weißt Du ja). Wichtig sind die Header und den Cache abzuschalten. Weiters der blöde IÄh-Bug: generierte Bilder speichert der IE (abhängig davon, welche Version Du davon hast und welcher der 10E6+1-Patches schon angewandt ist) am liebsten als .bmp, deshalb der Käse mit ini_set. Ansonsten dürfte das Beispiel klar sein. Testen kannst Du das, wenn Du die .htaccess per FTP auf dein Root-Verzeichnis lädst, das Skript als ‚image.php‘ im Verzeichnis /php/ speicherst und im Ordner /img/ ein JPG mit Namen „foto1.jpg“ hochlädst - Bei Aufruf von
www.meinedomain.com/bilder/weissnicht/habichnicht/bild\_1.jpg
wird es dann angezeigt.
Gruß,
Rudy