Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen (https://www.delphipraxis.net/50548-%5Bphp%5D-pfad-aus-externer-php-einem-img-tag-einbauen.html)

Äfan 27. Jul 2005 14:08


[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. http://meinserver.de/bilder/irgendwas.gif. Jetzt will ich in einer anderen html datei, diesen generierten pfad in ein img-tag einfügen. Ich habe das erst so probiert:

Code:
[img]http://meinserver.de/meinscript.php[/img]
Aber so funktionierts net. Auch so is es nix geworden:

Code:
<?php
  $var = 'http://meinserver.de/meinscript.php';
  echo('[img]$var[/img]');
?>
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 http://meinserver.de/meinscript.php in die datei mit dem bild ein". thx

mfg

idontwantaname 27. Jul 2005 14:17

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
du musst einen Image-Header senden
Code:
header("image: png");
bin mir aber nicht sicher

am besten schaust du hier nach:
http://at.php.net/manual/de/ref.image.php

[edit2] so, habs gefunden:
Code:
header ("Content-type: image/png");
und dann musst du das bild noch reinbringen
Code:
include "bild.png";
generell könnte man imho auch header("Content-type: image"); oder header("Content-type: file"); senden

[edit] verlesen :oops: :oops:
wenn du ' verwendest, kannst du variablen nicht einfach so reinschreiben, nur bei "
daraus folgt:
Code:
<?php
  $var = 'http://meinserver.de/meinscript.php';
  echo('[img]'.$var.'[/img]');
?>
order
Code:
<?php
  $var = 'http://meinserver.de/meinscript.php';
  echo("<img src=\"$var\">");
?>

Mystic 27. Jul 2005 15:17

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Versuchs mal so (ungetestet):

Code:
[img]<?php require [/img]">

alcaeus 27. Jul 2005 16:13

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Mystic
Versuchs mal so (ungetestet):

Code:
[img]<?php require [/img]">

Du solltest testen bevor du was schreibst :mrgreen:
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

Flocke 27. Jul 2005 16:19

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von alcaeus
Das wird nur zur Folge haben, dass die Ausgabe der php-Datei als Source-Pfad fuers Bild verwendet wird, was natuerlich fehlschlaegt.

ist das nicht genau das, was er wollte?
Zitat:

Ich eine PHP datei gemacht. Sobald man diese aufruft, wird ein pfad zu einem bild auf meinem server angezeigt,
Zitat:

Zitat von alcaeus
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().

Sein Programm liefert den Pfad zum Bild und nicht das Bild selbst.

alcaeus 27. Jul 2005 16:21

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Flocke
Sein Programm liefert den Pfad zum Bild und nicht das Bild selbst.

:duck: Ich sollte mehr schlafen :oops:


8) *blitz* :mrgreen:

Greetz
alcaeus

Äfan 27. Jul 2005 20:17

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:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
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:

Code:
http://meinserver.de/%3C?php%20require('http://meinserver.de/meinscript.php');%20?%3E
Wo is da jetzt der fehler, das ich so einen pfad bekomme ?

mfg

Mystic 27. Jul 2005 21:16

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Mein Code war doch syntaktisch richtig.

Neuni 27. Jul 2005 21:59

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*

Äfan 27. Jul 2005 23:02

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:

//EDit: womit schribst du die Dateien? Welcher Editor? Oder son komisches Ding wie Frontpage? *igitt*
Ich verwende für so kurze codes den Windows Editor, da es damit am einfachsten und schnellsten geht, ansonsten Dreamweaver.

Flocke 28. Jul 2005 06:59

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
warum weiß ich auch net...

Das ist jetzt nicht dein Ernst, oder?

Äfan 28. Jul 2005 13:47

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Flocke
Zitat:

Zitat von Äfan
warum weiß ich auch net...

Das ist jetzt nicht dein Ernst, oder?

Ich glaube deine frage is jetzt nicht dein ernst :shock: Oh man...

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:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
Dann sollte doch in einer HTML datei dieser code gehen:

Code:
<?php

[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]

?>
Geht aber nicht... für mich is das etwas verwirrend.

Neuni 28. Jul 2005 14:20

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.

BenjaminH 28. Jul 2005 14:26

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
Dann sollte doch in einer HTML datei dieser code gehen:

Code:
<?php

[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]

?>
Geht aber nicht... für mich is das etwas verwirrend.

Genau wie Neuni gesagt hat ohne die übergeordneten PHP Tags:
Code:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]

Flocke 28. Jul 2005 14:30

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
Zitat:

Zitat von Flocke
Zitat:

Zitat von Äfan
warum weiß ich auch net...

Das ist jetzt nicht dein Ernst, oder?

Ich glaube deine frage is jetzt nicht dein ernst :shock: Oh man...

Doch, das habe ich ernst gemeint 8)

Zitat:

Zitat von Äfan
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:
[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]
Dann sollte doch in einer HTML datei dieser code gehen:

Code:
<?php

[img]<?php require('http://meinserver.de/meinscript.php'); ?>[/img]

?>
Geht aber nicht... für mich is das etwas verwirrend.

PHP wird auf dem Server ausgeführt und nicht in deinem Browser. Darum wird es in HTML bei dir nie funktionieren.

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:
echo $bildpfad;
das hier benutzt
Code:
header("Location: $bildpfad");

Äfan 28. Jul 2005 18:22

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:

derpepe 28. Jul 2005 18:53

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:
[img]skript.php[/img]
natürlich fehl!!
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:

Zitat von Flocke
Du kannst natürlich auch einfach dein Skript auf dem Server so abändern, so dass es statt
[source]echo $bildpfad;[/source]

das hier benutzt
[source]header("Location: $bildpfad");[/source]

(auch wenn der Rest von Flocke keinen Sinn ergibt :mrgreen:)

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

Flocke 28. Jul 2005 21:20

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von derpepe
(auch wenn der Rest von Flocke keinen Sinn ergibt :mrgreen:)

Na da muss ich doch glatt noch was zu sagen: sorry wenn's zu kompliziert war (:mrgreen: zurück) :twisted:

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:
<?php echo "http://www.google.com/images/logo_sm.gif"; ?>
Das wäre also in diesem Fall die "http://meinserver.de/meinscript.php".

Datei img_frameset.html:
Code:
<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>
Dieses Dokument definiert ein Frameset mit einem "unsichtbaren" Frame oben, in den das Skript die URL des Bildes ausgibt.

Datei img_frame.html:
Code:
<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>
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.

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

Äfan 28. Jul 2005 22:31

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

SirThornberry 28. Jul 2005 22:46

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
dann gebe anstelle des pfades doch gleich das bild zurück
Code:
  $fp = fopen($filename,"r");
  $filepart = fread($fp, filesize($filename));
  print($filepart);
  fclose($fp);
anstelle von Filename halt deinen zufallsdateinamen.

Äfan 28. Jul 2005 22:53

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 !

SirThornberry 28. Jul 2005 22:59

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:
[img]http://yourpage/zufallsbild.php[/img]
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.
und die zufallsbild.php sieht dann eben so aus
Code:
<?
$fp = fopen($filename,"r");
$filepart = fread($fp, filesize($filename));
print($filepart);
fclose($fp);
?>

Flocke 29. Jul 2005 07:22

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
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.

Wie jetzt schon zwei Mal geschrieben: du musst dann einfach im besagten PHP-Script auf deinem Server das
Code:
echo $url;
ersetzen durch ein
Code:
Header("Location: $url");
und das Einbinden bei den Nutzern deines Dienstes erfolgt dann (wie jetzt auch schon mehrfach beschrieben) mit:
Code:
[img]http://yourpage/zufallsbild.php[/img]

idontwantaname 29. Jul 2005 07:48

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);
?>

Äfan 29. Jul 2005 10:02

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:
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
Weiß net warum dieser fehler kommt... kann es sein, das man mit readdir nur ordner aufm pc auslesen kann (einfach ma ne vermutung) ?

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

idontwantaname 29. Jul 2005 10:37

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:
<?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);
?>
Achtung: ein / muss beim pfad hinten dran sein
http://hanappi.teklab.de/das_problem/
Bildverzeichnis: http://hanappi.teklab.de/das_problem/bilder/

derpepe 29. Jul 2005 13:52

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
@All: Jaaa jetzt gehts endlich... jetzt blick ich den sinn von Header auch :bounce1: *sehr glücklich ist*

Nichts anderes wollten Flocke und ich Dir die ganze Zeit nahe bringen ;-)

Flocke 29. Jul 2005 14:05

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Zitat:

Zitat von Äfan
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:

Sezte mal die folgenden Zeilen in dein Script (weiß nicht ob's hilft, d.h. ob Firefox die restlichen Header auswertet wenn's ne Redirection ist):
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:

Zitat von Äfan
Leider geht dein code nicht:

Code:
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
Weiß net warum dieser fehler kommt... kann es sein, das man mit readdir nur ordner aufm pc auslesen kann (einfach ma ne vermutung) ?

Noch einmal langsam: WO wird dein PHP-Skript ausgeführt? Richtig: auf dem Server! D.h. es muss nicht "http://meinserver.de/Werbung" als Pfad in dem Skript stehen, sondern "/var/www/dasbinich/html/Werbung" oder noch besser "../Werbung".

idontwantaname 29. Jul 2005 14:15

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 hier :-D

Flocke 29. Jul 2005 14:43

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:
<?php
  $path = "bilder/";
...
die HTTP-Adresse seines Webservers eingesetzt hat:
Code:
<?php
  $path = "http://meinserver.de/Werbung";
...
sonst würde diese Fehlermeldung anders lauten:
Zitat:

Warning: opendir(http://meinserver.de/Werbung): failed to open dir: not implemented in /var/www/dasbinich/html/script2.php on line 5

Äfan 29. Jul 2005 14:55

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...

Flocke 29. Jul 2005 15:50

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]);
?>

Äfan 29. Jul 2005 22:04

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

Flocke 30. Jul 2005 09:43

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