PHP + Javascript per Image in HTML ausgeben
thomas
- programmiertechnik
Hört sich schwerer an als es ist ;)
ich hab eine Datei, die sowohl PHP als auch Javascript enthält.
Diese Datei wollte ich jetzt in eine HTML-Datei per <img> einbinden, ging aber nicht...
<html>
<head>
<title>Test</title>
</head>
<body>
<img src="http://localhost/ht/test/js.php">
</body>
</html>
und in der js.php:
<?php
Header("Content-type: image/gif");
?>
Geht das überhaupt? Wenn nicht könnte ich die js.php ja auch per Javascript in die HTML-Seite includieren, aber das klappte auch nicht... normal geht das doch so:
<html>
<head>
<title>Test</title>
</head>
<body>
<script language="JavaScript" src="http://localhost/ht/test/js.php">
</script>
</body>
</html>
Krieg aber nur eine Fehlermeldung.. Liegt das am inhalt meiner js.php?
Danke für hilfreiche Antworten!
Tag thomas.
ich hab eine Datei, die sowohl PHP als auch Javascript enthält.
Diese Datei wollte ich jetzt in eine HTML-Datei per <img> einbinden, ging aber nicht...
Was heißt "ging aber nicht"? Hast du error_reporting eingeschaltet?
<?php
Header("Content-type: image/gif");
?>
Ja, und wo sind die Bilddaten?
Geht das überhaupt?
Ja, sicher:
header("Content-type: image/gif");
$bild = [link:http://de.php.net/manual/de/function.imagecreatefromgif.php@title=imagecreatefromgif]("pfad/zu/deinem/bild.gif");
[link:http://de.php.net/manual/de/function.imagegif.php@title=imagegif]($bild);
Weitere Hinweise gibt's in den Userkommentaren zu den verlinkten Funktionen.
Siechfred
Da ich da nicht ganz durchblicke:
ich will mit der Gdlib kein Bild erzeugen, sondern eine PHP-Datei als "Bild" tarnen --> js.gif == js.php
Dazu reichen Header alleine nicht???
Zweck: Einbinden eines Counters auf Webspace ohne PHP-Unterstützung.
Die Lösung wäre mir viel leiber als per Javascript zu includieren...
Tag thomas.
ich will mit der Gdlib kein Bild erzeugen, sondern eine PHP-Datei als "Bild" tarnen --> js.gif == js.php
Genau dafür ist der von mir gepostete Code gedacht.
Dazu reichen Header alleine nicht???
Nein, du musst schon Daten mitschicken, was soll ein Browser sonst anzeigen?
Siechfred
Also ist die Gdlib dazu zwingend nötig?
Und wie siehts mit der Javascript-Lösung aus?
Tag thomas.
Also ist die Gdlib dazu zwingend nötig?
Nein, du kannst das Bild auch als Binärdaten einlesen und ausgeben, so in der Art sollte es funktionieren (wo sind bloß die PHP-Experten, wenn man sie mal braucht ...):
--- bild.php ---
<?php
$bild = "pfad/zu/deinem/bild.gif";
$fh = fopen($bild, "r");
$data = fread($fh, filesize($bild));
fclose($fh);
header("Content-type: image/gif");
echo $data;
?>
--- HTML ---
<img src="bild.php">
Siechfred
echo $begrüßung;
(wo sind bloß die PHP-Experten, wenn man sie mal braucht ...):
Man wird ja wohl mal ausgehen dürfen... :-)
Ich denke, der OP will was ganz anderes. Es hört sich so an, als ob er was doch noch realisieren will, was der Provider aber nicht freigegeben hat.
Also, thomas, noch mal ganz langsam und zum Mitschreiben bitte: Was möchtest du erreichen und welche Voraussetzungen sind gegeben bzw. welche nicht?
echo "$verabschiedung $name";
Also, thomas, noch mal ganz langsam und zum Mitschreiben bitte: Was möchtest du erreichen und welche Voraussetzungen sind gegeben bzw. welche nicht?
Nichts dramatisches, wie gesagt ;)
Auf einem Webspace OHNE PHP-Unterstützung soll ein PHP-Script (Counter) aufgerufen werden, das ist alles!
Es ging mir darum, welche Möglichkeiten es da gibt!
echo $begrüßung;
Auf einem Webspace OHNE PHP-Unterstützung soll ein PHP-Script (Counter) aufgerufen werden, das ist alles!
Es ging mir darum, welche Möglichkeiten es da gibt!
Im Prinzip keine. Um PHP-Scripte ausfühen zu können muss PHP vorhanden sein.
PHP ist eine serverseitige Technik und Javascript eine clientseitige. Letzteres hilft dir bei deinem Problem nicht weiter. Du brauchst einen Server auf dem PHP laufen kann.
Das Script, das dir die Zählergrafik erzeugt, kann jedoch auf einem anderen Server liegen, als deine statischen HTML-Seiten. Das <img> bindest du wie gewöhnt in den HTML-Text ein und als src gibst du die URL zu diesem Zählergrafikscript an. Das muss dann eine Grafik zurückliefern, z.B. so wie es Siechfred bereits aufzeigte.
echo "$verabschiedung $name";
Ja klar,
es gibt ja einen Server mit PHP und einen ohne. Vielleicht hätte ich das gleich zu Beginn erwähnen sollen...
Wenn ich mit Javascript includen will klappt das bei mir nicht so richtig...
echo $begrüßung;
es gibt ja einen Server mit PHP und einen ohne. Vielleicht hätte ich das gleich zu Beginn erwähnen sollen...
Soweit dachte ich mir das auch schon...
Wenn ich mit Javascript includen will klappt das bei mir nicht so richtig...
Warum willst du das? Was soll das Javascript machen?
echo "$verabschiedung $name";
Warum willst du das? Was soll das Javascript machen?
Die PHP-Seite per JS einbinden:
<script language="JavaScript" src="http://domain/test.php">
</script>
Inhalt test.php (etwas lang):
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
if (language.indexOf('de') > -1) document.write ('Browser-Sprache: Deutsch');
else if (language.indexOf('en') > -1) document.write ('Browser-Sprache: Englisch');
else if (language.indexOf('it') > -1) document.write ('Browser-Sprache: Italienisch');
else
document.write ('Browser weder Deutsch, noch Englisch, noch Italienisch.');
if (navigator.cookieEnabled) cookie = "Cookies: aktiviert";
else cookie = "Cookies: nicht aktiviert";
document.write("<br>" + cookie)
document.write("<br>Auflösung:" + screen.width + " x " + screen.height + "<br>Flash-Version: ")
function isDefined(property) {
return (typeof property != 'undefined');
}
var flashVersion = 0;
function getFlashVersion() {
var latestFlashVersion = 8;
var agent = navigator.userAgent.toLowerCase();
// NS3 needs flashVersion to be a local variable
if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
flashVersion = 0;
}
// NS3+, Opera3+, IE5+ Mac (support plugin array): check for Flash plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
var flashPlugin = navigator.plugins['Shockwave Flash'];
if (typeof flashPlugin == 'object') {
for (var i = latestFlashVersion; i >= 3; i--) {
if (flashPlugin.description.indexOf(i + '.') != -1) {
flashVersion = i;
break;
}
}
}
}
// IE4+ Win32: attempt to create an ActiveX object using VBScript
else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
var doc = '<scr' + 'ipt language="VBScript"> \n';
doc += 'On Error Resume Next \n';
doc += 'Dim obFlash \n';
doc += 'For i = ' + latestFlashVersion + ' To 3 Step -1 \n';
doc += ' Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';
doc += ' If IsObject(obFlash) Then \n';
doc += ' flashVersion = i \n';
doc += ' Exit For \n';
doc += ' End If \n';
doc += 'Next \n';
doc += '</scr' + 'ipt> \n';
document.write(doc);
}
// WebTV 2.5 supports flash 3
else if (agent.indexOf("webtv/2.5") != -1) flashVersion = 3;
// older WebTV supports flash 2
else if (agent.indexOf("webtv") != -1) flashVersion = 2;
// Can't detect in all other cases
else {
flashVersion = flashVersion_DONTKNOW;
}
return flashVersion;
}
flashVersion_DONTKNOW = -1;
//<![CDATA[
var requiredVersion = 5;
var flashVersion = getFlashVersion();
if (flashVersion >= requiredVersion) {
document.write('<p>You have Flash ' + flashVersion + ' installed on the current browser.</p>');
}
else if (flashVersion > 0) {
document.write('<p>The version of Flash installed on the current browser is ' + flashVersion + '.</p>');
}
else if (flashVersion == 0) {
document.write('<p>You don't have Flash installed on the current browser.</p>');
}
else if (flashVersion == flashVersion_DONTKNOW || flashVersion == null) {
document.write('<p>This browser does not support Javascript-based Flash detection.</p>');
}
//]]>
document.write("Farben: " + screen.colorDepth + " Bit");
</SCRIPT>
<?php
echo "<br>Browser: {$_SERVER['HTTP_USER_AGENT']}";
?>
Klappt aber nicht... sollte aber so gehen :( Oder hab ich was übersehen?
Ok habs schon, in der test.php darf natürlich kein PHP-Code sein *ichdepp*.
echo $begrüßung;
Ok habs schon, in der test.php darf natürlich kein PHP-Code sein *ichdepp*.
Das ist dann aber keine PHP-Seite mehr, sondern nur noch Javascript. Diese Datei bekäme von mir dann die Endung .js (nach Entfernen des HTML-Codes darin <SCRIPT... ).
echo "$verabschiedung $name";