![]() |
[PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Hi,
Ich habe folgendes Problem: Ich eine PHP datei gemacht. Sobald man diese aufruft, wird ein pfad zu einem bild auf meinem server angezeigt, also z.b. ![]()
Code:
Aber so funktionierts net. Auch so is es nix geworden:
[img]http://meinserver.de/meinscript.php[/img]
Code:
Falls mir jemand sagen kann, wie der code richtig sein muss, dass es geht, dann wäre es nett, wenn er es sagen würde :wink: Aber bitte nicht so tipps wie "Binde den php code der datei
<?php
$var = 'http://meinserver.de/meinscript.php'; echo('[img]$var[/img]'); ?> ![]() mfg |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
du musst einen Image-Header senden
Code:
bin mir aber nicht sicher
header("image: png");
am besten schaust du hier nach: ![]() [edit2] so, habs gefunden:
Code:
und dann musst du das bild noch reinbringen
header ("Content-type: image/png");
Code:
generell könnte man imho auch header("Content-type: image"); oder header("Content-type: file"); senden
include "bild.png";
[edit] verlesen :oops: :oops: wenn du ' verwendest, kannst du variablen nicht einfach so reinschreiben, nur bei " daraus folgt:
Code:
order
<?php
$var = 'http://meinserver.de/meinscript.php'; echo('[img]'.$var.'[/img]'); ?>
Code:
<?php
$var = 'http://meinserver.de/meinscript.php'; echo("<img src=\"$var\">"); ?> |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Versuchs mal so (ungetestet):
Code:
[img]<?php require [/img]">
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Das wird nur zur Folge haben, dass die Ausgabe der php-Datei als Source-Pfad fuers Bild verwendet wird, was natuerlich fehlschlaegt. Wie gesagt: die php-Datei, die im src-Attribut des img-Tags steht muss einen Image-Header (content-type/(jpeg|png|gif)) senden, und anschliessend die Daten rausschicken, z.B. mit readfile(). Greetz alcaeus |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Zitat:
Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
8) *blitz* :mrgreen: Greetz alcaeus |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
OK, thx für die schnelle hilfe. Leider funzt es noch nicht richtig. Ich habe jetzt mal den einen code von Mystic berichtigt, da dieser im php teil paar kleine fehler hatte, wie z.b. wird bei php anstatt " ein ' verwendet:
Code:
Wenn ich die seite aufrufe, erscheint zwar die seite mit dem bild objekt, leider wird aber kein bild gezeigt... Klicke ich da jetzt rechte maustaste und "Grafikadresse kopieren", kommt dieser pfad raus:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
Code:
Wo is da jetzt der fehler, das ich so einen pfad bekomme ?
http://meinserver.de/%3C?php%20require('http://meinserver.de/meinscript.php');%20?%3E
mfg |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Mein Code war doch syntaktisch richtig.
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
1. Klar gibts " in PHP...das war vollkommen richtig vom Mystic.
2. Das sieht danach aus, dann dein Webspace kein PHP kann / du .html genommen hast statt .php //EDit: womit schribst du die Dateien? Welcher Editor? Oder son komisches Ding wie Frontpage? *igitt* |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
*lok* Klar kein mein server php. Ich habe ne menge php scripts aufm server und auch ein PHP-forum... und die funktionieren ohne probleme. Ich habe jetzt den fehler gefunden, also meine testdatei mit dem img-tag war im html format. Mach ichs in php, dann gehts, warum weiß ich auch net... wie kann ich das auch in einer html datei machen ?
Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Gibts hier jemanden, der mir darauf eine richtige und sinnvolle anwort geben kann, mit der ich auch was anfangen kann !? Also wenn das hier in einer PHP datei geh:
Code:
Dann sollte doch in einer HTML datei dieser code gehen:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
Code:
Geht aber nicht... für mich is das etwas verwirrend.
<?php
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img] ?> |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Also erstmal:
Der 2. code is völliger Müll. Man kann nicht <?php ?> in einem <?php ?> machen! Zu dem Html. Das geht (siehe DP) aber man muss den Webserver (z.B. Apache) so einstellen, dass er auch .html umwandelt. |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Code:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Zitat:
Das Beispiel von Mystic funktioniert nur wenn du das in ein Script auf demselben Server packst. [Weiter] Einzige Variante für HTML könnte ich mir so vorstellen: Du machst in einer versteckten div einen iframe, dessen SRC du auf dein Skript setzt. Dahinter benutzt du JavaScript, nimmst den Inhalt des iframe mit innerHtml und packst ihn als Quelladresse in dein Bild. Bin mir aber nicht sicher, 1. ob das überhaupt geht und 2. ob das alle Browser unterstützten. [Noch ein Nachtrag] Du kannst natürlich auch einfach dein Skript auf dem Server so abändern, so dass es statt
Code:
das hier benutzt
echo $bildpfad;
Code:
header("Location: $bildpfad");
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
@Neuni: Wo steht des mit dem Server ? Also das man ihn so einstellt, das es funktioniert ? Oder kannste mir sagen wie des geht ? Finde hier im Forum nix.
@BenjaminH: Ähhh was willste mir mit deinem Post sagen ? Das ich Neunis Code nur mit PHP angeführt hab ? Na sowas aber auch :zwinker: |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
*argl*
Das Problem ist gar kein richtiges Problem, es ist ein Verständnisproblem! :x Wir unterscheiden zwei Dinge: 1. Das PHP-Skript soll ein Bild ausgeben (von dem scheinen alle die eine Antwort geschrieben haben auszugehen) 2. Das PHP-Skript soll den Pfad zu einem Bild ausgeben, das meinte der Fragesteller wohl. Da das Skript den Pfad ausgibt und nicht das Bild selbst schlägt sowas wie
XML-Code:
natürlich fehl!!
[img]skript.php[/img]
Schreibt mal in eine Datei den Pfad zu nem Bild rein und gebt diese Datei im SRC-Attribut an. Das kann ja nciht funktionieren! Momentan hat der Fragesteller also Variante 2, er braucht aber Variante 1. Um das zu erreichen hat er zwei Möglichkeiten: 1a. Er muss auf das Bild umleiten. Wenn der Browser dann die Anfrage an dein PHP-Skript schickt leitet man weiter auf das eigentliche Bild, der Browser wird dieses abrufen und anzeigen. Zwei Posts vor mir hat Flocke das vorgeschlagen, er hat es am Schluß unter "[Noch ein Nachtrag]" geschrieben: Zitat:
1b. Die umständliche Variante: Dein PHP-Skript muss das Bild zurückliefern. Das ist eigentlich nur interessant wenn Du entweder nicht willst dass jeder sieht wo das Bild auf dem Server liegt oder wenn Du an dem Bild etwas ändern willst. Dann nämlich kann man die PHP-Funktionen CreatePNG() etc. verwenden. Da dies hier aber nicht gebraucht wird erklär ich das auch nicht weiter :stupid: Noch ein kleiner Tipp zum Testen: Wenn Du Dein PHP-Skript aufrufst muss Dein Browser nicht die URL zum Bild anzeigen, sondern das Bild selbst. Wenn Du das geschafft hast kannst Du das Skript in einem IMG-Tag als SRC angeben. :thumb: HTH |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Ich hatte meine Idee vor dem Schreiben nicht getestet, daher geht's nicht ganz so, wie ich zunächst dachte. Aber mit einem frame statt einem iframe kann der IE das (für Firefox geht's so nicht, ich hab's aber nicht weiter ausprobiert). Datei img_script.php:
Code:
Das wäre also in diesem Fall die "http://meinserver.de/meinscript.php".
<?php echo "http://www.google.com/images/logo_sm.gif"; ?>
Datei img_frameset.html:
Code:
Dieses Dokument definiert ein Frameset mit einem "unsichtbaren" Frame oben, in den das Skript die URL des Bildes ausgibt.
<html>
<head> <title>Image test</title> </head> <frameset rows="0,*" frameborder="0" framespacing="0" border="0"> <frame src="img_script.php" name="otherFrame" scrolling="no" noresize> <frame src="img_frame.html"> </frameset> </html> Datei img_frame.html:
Code:
Der JavaScript-Code greift jetzt mit "innerText" genau diesen Ergebnistext ab und setzt ihn als "src" in das Bild, et voilá - man siehe und staune :shock: - ich hab's auf jeden Fall getan. Allerdings habe ich schon einige Versuche gebraucht, bis ich die ...window.document.body.innerText-Kette in dieser Reihenfolge zusammen hatte.
<html>
<head> </head> <body> <div>[img][/img]</div> <script type="text/javascript"> document.getElementById('outputElement').src = parent.frames['otherFrame'].window.document.body.innerText; </script> </body> </html> Je nach Sicherheitsstufe kann es aber wohl sein, dass der IE die Operation verweigert (ich denke um so was wie "Cross Site Scripting" zu verhindern). |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Ohje, das führt jetzt in ne falsche richtung. Also folgendes (hätte es wohl gleich anfangs sagen sollen :gruebel: )
Es sollte funktionieren, ohne irgendwas großes mit frames oder so rumzumachen. Jetzt sag ichs mal anders rum, vllt kann mir so besser geholfen werden. Mein Ziel dieses ganzen aufwandes ist es, einen kleinen code zu bekommen, den jeder ganz einfach auf seine homepage einbauen kann (daher wollte ich das mit Img machen), eben am besten wie ein einfaches bild. Es sollen eben verschiedene Banner an dieser stelle gezeigt werden, also bei jedem besuch ein anderer zufälliger banner. Dies heißt glaube ich Bannerrotation oder so. Der php script auf meinem server macht dies eben. Er generiert einen pfad, den er dann mit echo ausgibt, also Serveradresse + Eine zufällige zahl + .gif und somit steht dann ein pfad da. Es wär daher nicht so gut, wenn der user dann noch extra mit frames rummachen muss. vllt versteht ihr mich jetzt besser... :gruebel: :zwinker: Edit: Ahja, ich will mich nicht bei anderen Bannerrotations Anbietern anmelden, da ich eben selber so nen dienst machen will. mfg |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
dann gebe anstelle des pfades doch gleich das bild zurück
Code:
anstelle von Filename halt deinen zufallsdateinamen.
$fp = fopen($filename,"r");
$filepart = fread($fp, filesize($filename)); print($filepart); fclose($fp); |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Aber wenn ich jetzt neue banner hinzufüge, muss ich meinen code bei mir und alle anderen bei sich ändern ! Das is also nicht besonders gut !
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
die anderen müssen doch nix ändern. Die anderen binden das bild wie folgt ein
Code:
un du musst dann eben die zufallsbild.php anpassen, bzw. kannst du ja auch die datei so schreiben das alle bilder aus einem bestimmten verzeichnis in die zufallsauswahl kommen.
[img]http://yourpage/zufallsbild.php[/img]
und die zufallsbild.php sieht dann eben so aus
Code:
<?
$fp = fopen($filename,"r"); $filepart = fread($fp, filesize($filename)); print($filepart); fclose($fp); ?> |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Code:
ersetzen durch ein
echo $url;
Code:
und das Einbinden bei den Nutzern deines Dienstes erfolgt dann (wie jetzt auch schon mehrfach beschrieben) mit:
Header("Location: $url");
Code:
[img]http://yourpage/zufallsbild.php[/img]
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Wie wäre es, wenn du alle Dateien as dem Bilder-Verzeichnis ausliest, und eine dann per Zufall auswählst ?
Ich dachte dann an so etwas: (Achtung - ungetestet)
Code:
<?php
$path = "/mein_bild_verzeichnis"; $list = array(); $handle = opendir( $path ); while (false !== ($file = readdir ($handle))) { $list[] = $file; } closedir($handle); srand(); // muss ab PHP 4.2.0 nivht mehr verwendet werden $index = rand( 0 , count($list)-1 ); $fp = fopen( $list[$index] , "r" ); $filepart = fread($fp, filesize($filename)); print($filepart); fclose($fp); ?> |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
@All: Jaaa jetzt gehts endlich... jetzt blick ich den sinn von Header auch :bounce1: *sehr glücklich ist*
Allerdings hab ich jetzt noch ein kleines problem mit den Browsern: öffne ich die testseite mit dem img-tag im Internet Explorer, geht es, also zufälliger banner erfolgt. Bei Firefox geht dies allerdings nur einmal, also beim start und beim ersten random, danach wird bei jedem aufruf der selbe banner gezeigt. Dies liegt ja am cache, da er jedes mal den selben pfad im img-tag hat (der pfad zum script.php) und einfach immer das selbe bild vom ersten random nimmt, da er meint, es is ja sowieso das selbe :warn: :mrgreen: So, wie kann ich das jetzt unterbinden ? Hatte die idee einfach ne zufallszahl als variable an den pfad anzuhängen, aber da müsste ich ja wieder einen kleinen code in die html seite einbauen, die dann diese zufallszahl macht. Es gibt doch bestimmt ne einfachere möglichkeit oder ? Durch mein rumgeteste hab ich irgendwie sogar ne möglichkeit gefunden, den code nur über den img-tag aufrufen zu können :dance: :freak: ... hab da einfach noch son zeug an das header angehängt und somit kommt beim direkten aufruf ein fehler. Ruft mans aber mit der testseite auf, also im img-tag, so wird der banner normal gezeigt, aber is ja jetzt unwichtig ! @idontwantaname: Mhh, deine Idee mit dem lesen des ordners ist sogar noch besser, als meine methode. Leider geht dein code nicht:
Code:
Weiß net warum dieser fehler kommt... kann es sein, das man mit readdir nur ordner aufm pc auslesen kann (einfach ma ne vermutung) ?
Warning: opendir([url]http://meinserver.de/Werbung[/url]): failed to open dir: not implemented in /var/www/dasbinich/html/script2.php on line 5
Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/dasbinich/html/script2.php on line 6 Warning: closedir(): supplied argument is not a valid Directory resource in /var/www/dasbinich/html/script2.php on line 9 Warning: fread(): supplied argument is not a valid stream resource in /var/www/dasbinich/html/script2.php on line 14 Warning: fclose(): supplied argument is not a valid stream resource in /var/www/dasbinich/html/script2.php on line 16 Und funktioniert der script auch so, dass die banner verschiedene namen und endungen haben können oder müssen die wieder alle nummern und am ende gif haben ? Wär ja am besten, wenn er einfach irgend eine datei aus dem ordner nimmt, egal welcher name und typ. mfg |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
:shock: was hab ich denn da für ein script gepostet :mrgreen:
hier die verbesserte und getestete version:
Code:
Achtung: ein / muss beim pfad hinten dran sein
<?php
$path = "bilder/"; $list = array(); $handle = opendir( $path ); while (false !== ($file = readdir ($handle))) { if( $file !== "." && $file !== ".." ) $list[] = $file; } closedir($handle); $index = rand( 0 , count($list)-1 ); $fp = fopen( $path.$list[$index] , "r" ); $filepart = fread($fp, filesize($path.$list[$index])); print($filepart); fclose($fp); ?> ![]() Bildverzeichnis: ![]() |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Zitat:
Code:
Header('Expires: Mon, 14 Aug 1995 03:00:00 GMT');
Header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); Header('Cache-Control: no-store, no-cache, must-revalidate'); Header('Cache-Control: post-check=0, pre-check=0', FALSE); Header('Pragma: no-cache'); Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
@Flocke: es geht um mein skript, ich hab aber völligen Blödsinn gepostet
aber ich hab mich auch ausgebessert und zwar ![]() |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Hab ich ja gesehen...
Sein Fehler rührt aber laut Fehlermeldung daher, dass er hier:
Code:
die HTTP-Adresse seines Webservers eingesetzt hat:
<?php
$path = "bilder/"; ...
Code:
sonst würde diese Fehlermeldung anders lauten:
<?php
$path = "http://meinserver.de/Werbung"; ... Zitat:
|
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
@Flocke: OK, das mit dem Header dings wegen dem Cache funktioniert :thumb:
@idontwantaname: OK jetzt geht der code, aber er gibt mir ne menge unverständliche zeichen, also er öffnet das bild als text. Aber ich brauch doch nur nen zufälligen pfad... |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Wenn du das mit Header("Location $url") machst, dann brauchst du die Hälfte von dem Skript nicht!
Code:
<?php
$path = "bilder/"; $list = array(); $handle = opendir( $path ); while (false !== ($file = readdir ($handle))) { if( $file !== "." && $file !== ".." ) $list[] = $file; } closedir($handle); $index = rand( 0 , count($list)-1 ); /* Die folgenden 4 Zeilen können weg $fp = fopen( $path.$list[$index] , "r" ); $filepart = fread($fp, filesize($path.$list[$index])); print($filepart); fclose($fp); */ Header("Location: " . $path . $list[$index]); ?> |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
So habe ich das auch gehabt, leider ne zeile zu viel :oops: :-D
Nochmal zurück zu dem, mit dem cache: Es geht jetzt auf einmal nicht mehr... es kommt jetzt immer der selbe banner, also auf der testseite mit dem img-tag. Ruf ich den script direkt auf, so zeigt er verschiedene an !? :o :shock: mfg |
Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
Es kann (wie gesagt) sein, dass Firefox die Header-Angaben ignoriert, die das Cachen unterbinden sollen, wenn er eine Redirection findet (also einen "Location:"-Header).
Hier mal ein vollständiges Codebeispiel das funktioniert und das du nur noch an deine Bedürfnisse anpassen musst.
Code:
<?php
// Suchpfade für Bilder, wichtig: KEIN Slash am Ende! $pathes = array( "bilder" ); // Mögliche Bildtypen (reguläre Ausdrücke) $extensions = array( "jpe?g?" => 'image/jpeg', "gif" => 'image/gif', "png" => 'image/png', "tiff?" => 'image/tiff', "(bmp|dib)" => 'image/bmp' ); // Dateityp bestimmen function getFileType($file) { global $extensions; foreach ($extensions as $ext => $type) if (eregi('\.'.$ext.'$', $file)) return $type; return ""; } // Alle Dateien einsammeln $files = array(); foreach ($pathes as $path) { $dir = opendir($path); while ($file = readdir($dir)) if (is_file("$path/$file") && getFileType($file)) $files[] = "$path/$file"; closedir($dir); } // Nicht cachen header('Expires: Mon, 14 Aug 1995 03:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', FALSE); header('Pragma: no-cache'); if (count($files)) { // Zufällige Datei auswählen $file = $files[rand(0, count($files) - 1)]; // Bild ausgeben header("Content-Type: " . getFileType($file)); readfile($file, false); } else echo "<html>\n<body>\n<h1>Fehler</h1>\n Keine Bilder gefunden</p>\n</body>\n</html>"; ?> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz