Dann poste nochmal das Script so wie du es hochgeladen hast. Und poste am besten auch mal die URL, wo du das hochgeladen hast.
IP des User in Signatur eines phpBB Forums anzeigen
Einklappen
X
-
PHP-Code:<?php
header('Content-Type: image/png');
// Betriebssystem
if (strstr($HTTP_USER_AGENT, "Windows 95"))
$bs = "Win95";
else if (strstr($HTTP_USER_AGENT, "Windows 98"))
$bs = "Win98";
else if (strstr($HTTP_USER_AGENT, "NT 4.0"))
$bs = "NT";
else if (strstr($HTTP_USER_AGENT, "NT 5.0"))
$bs = "Win2k";
else if (strstr($HTTP_USER_AGENT, "NT 5.1"))
$bs = "WinXP";
else if (strstr($HTTP_USER_AGENT, "Win"))
$bs = "Win";
else if (strstr($HTTP_USER_AGENT, "Mac"))
$bs = "Mac";
else if (strstr($HTTP_USER_AGENT, "Linux"))
$bs = "Linux";
else if (strstr($HTTP_USER_AGENT, "Unix"))
$bs = "Unix";
else
$bs = "Other";
// Browser
if (ereg("MSIE", $HTTP_USER_AGENT)) {
if (strstr($HTTP_USER_AGENT, "MSIE 5.0")) {
$browser = "IE5";
} else if (strstr($HTTP_USER_AGENT,'MSIE 5.5')) {
$browser ="IE55";
} else if (strstr($HTTP_USER_AGENT,'MSIE 6.0')) {
$browser ="IE6";
} else {
$browser ="IE";
}
} else if (ereg("Opera", $HTTP_USER_AGENT)) {
$browser ="Opera";
} else if (ereg("Mozilla/([0-9].[0-9]{1,2})", $HTTP_USER_AGENT)) {
$browser = "Mozilla";
} else {
$browser = "Other";
}
//IP-Adresse
function getip() {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$realip = getenv("REMOTE_ADDR");
}
return $realip;
}
$ip = getip();
//Hostname
$host = gethostbyaddr($ip);
//Datum
$datum = date("d.n.Y"); //aktuelles Datum wird an $datum übergeben
//Zeit
$zeit = date("G:i:s"); //aktuelle Uhrzeit an $zeit übergeben
//log zusammenbauen (Log soll raus)
// $stuff = $datum . " - " . $zeit . " | IP:" . $ip . " Host:" . $host . " OS:" . $bs . " Browser:" . $browser . "\n";
//in dein-script.png schreiben
$file = 'dein-script.png';
$new_picture = imagecreatefrompng($file);
$fontfile = 'verdana.ttf';
$fontsize = 12;
$fontangle = 0;
$text_color = imagecolorallocate($new_picture, 188, 188, 89);
$text = "$ip $host $bs browser";
imagettftext($new_picture, $fontsize, $fontangle, 90, 60, $text_color, $fontfile, $text);
imagepng($new_picture);
imagedestroy($new_picture);
?>
Url = www.gw-dab.de/dein-script.png
Die .htaccess ist ebenfalls im ./html Ordner in dieser Datei steht jedoch nur
<FilesMatch dein-script.png>
ForceType application/x-httpd-php
</FilesMatch>
Wenn Sie PHP ab Version 4.3.0 benutzen, können Sie an dieser Stelle aufhören weiter zu lesen: seit dieser Version sind die PHP-Grafikfunktionen direkt in PHP eingebaut und es sind keine zusätzlichen Installationen notwendig.
Ich bin wirklich für jeden Rat und jede Hilfe dankbar. Wenn jemand einen Fehler findet so poste Ihn bitte und sag mir wieso es nicht geht.
Vielen Dank im Voraus mal für die schnellen Postings hier.
P.S. Dieses *jpg hier in meiner Singantur ist doch sicher auf die gleiche Art und weise gebaut wie ich das hier vorhabe.
Also ist der Quellcode doch:
PHP-Code:<?PHP
$ip = getenv("REMOTE_ADDR"); // IP bestimmen
$host = gethostbyaddr($ip); // IP auflösen und Host bestimmen
echo "Ihre IP lautet: $ip<br>\n";
echo "Ihre Hostadresse lautet: $host\n";
?>Zuletzt geändert von Lord-Byron; 06.02.2005, 17:53.
Kommentar
-
Original geschrieben von Lord-Byron
PHP-Code://in dein-script.png schreiben
$file = 'dein-script.png';
$new_picture = imagecreatefrompng($file);
Du musst also entweder ein Hintergrundbild erstellen, dass du in den gleichen Ordner hochlädst, und dessen Adresse du da einträgst, oder du lässt stattdessen ein neues (leeres) Bild erstellen:PHP-Code:$new_picture = imagecreatetruecolor();
Kommentar
-
Geht leider immer noch nicht aber ich bin ein kleines Stück weiter, bekomme nun nämlich eine Fehlermeldung.
Die Grafik "http://www.gw-dab.de/dein-script.png" kann nicht angezeigt werden, weil sie Fehler enthält.
PHP-Code:<?php
// dein-script.png
header('Content-Type: image/png');
// Betriebssystem
if (strstr($HTTP_USER_AGENT, "Windows 95"))
$bs = "Win95";
else if (strstr($HTTP_USER_AGENT, "Windows 98"))
$bs = "Win98";
else if (strstr($HTTP_USER_AGENT, "NT 4.0"))
$bs = "NT";
else if (strstr($HTTP_USER_AGENT, "NT 5.0"))
$bs = "Win2k";
else if (strstr($HTTP_USER_AGENT, "NT 5.1"))
$bs = "WinXP";
else if (strstr($HTTP_USER_AGENT, "Win"))
$bs = "Win";
else if (strstr($HTTP_USER_AGENT, "Mac"))
$bs = "Mac";
else if (strstr($HTTP_USER_AGENT, "Linux"))
$bs = "Linux";
else if (strstr($HTTP_USER_AGENT, "Unix"))
$bs = "Unix";
else
$bs = "Other";
// Browser
if (ereg("MSIE", $HTTP_USER_AGENT)) {
if (strstr($HTTP_USER_AGENT, "MSIE 5.0")) {
$browser = "IE5";
} else if (strstr($HTTP_USER_AGENT,'MSIE 5.5')) {
$browser ="IE55";
} else if (strstr($HTTP_USER_AGENT,'MSIE 6.0')) {
$browser ="IE6";
} else {
$browser ="IE";
}
} else if (ereg("Opera", $HTTP_USER_AGENT)) {
$browser ="Opera";
} else if (ereg("Mozilla/([0-9].[0-9]{1,2})", $HTTP_USER_AGENT)) {
$browser = "Mozilla";
} else {
$browser = "Other";
}
//IP-Adresse
function getip() {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$realip = getenv("REMOTE_ADDR");
}
return $realip;
}
$ip = getip();
//Hostname
$host = gethostbyaddr($ip);
//Datum
$datum = date("d.n.Y"); //aktuelles Datum wird an $datum übergeben
//Zeit
$zeit = date("G:i:s"); //aktuelle Uhrzeit an $zeit übergeben
//log zusammenbauen (Log soll raus)
// $stuff = $datum . " - " . $zeit . " | IP:" . $ip . " Host:" . $host . " OS:" . $bs . " Browser:" . $browser . "\n";
//in *.png schreiben
$new_picture = imagecreatetruecolor();
$fontfile = 'verdana.ttf';
$fontsize = 12;
$fontangle = 0;
$text_color = imagecolorallocate($new_picture, 188, 188, 89);
$text = "$ip $host $bs browser";
imagettftext($new_picture, $fontsize, $fontangle, 90, 60, $text_color, $fontfile, $text);
imagepng($new_picture);
imagedestroy($new_picture);
?>
Kommentar
-
Äh, ja, da fehlen noch ein paar Parameter für imagecreatetruecolor hatte ich vergessen.
PHP-Code:$new_picture = imagecreatetruecolor(200,100);
Kommentar
-
Original geschrieben von Hopka
Äh, ja, da fehlen noch ein paar Parameter für imagecreatetruecolor hatte ich vergessen.
PHP-Code:$new_picture = imagecreatetruecolor(200,100);
PHP-Code:$new_picture = imagecreatetruecolor(200,100);
Ich weiss das ich den Quelltext eigentlich auslesen kann, benutze den Mozilla 1.7.3 einer seiner Vorteile ist ja das anzeigen ganzer Quelltexte. Aber genau bei diesem png geht es nicht.
Irgendwie geht absolut garnicht im Moment.
Aber ich bekomme jetzt die Fehlermeldung dass das Bild nicht im cache ist *grrrr*
Vielleicht sollte ich den Code wegschmeißen und neu anfangen???
Kommentar
-
So, soweit so gut.
Ja, habe ich bemerkt das bei PHP nichts geht mit html Style. Aber war ne Idee muss ich dringend von weg.
So, der Code sieht nun so aus, hatte ja einige Variablen noch vergessen wie die für den Hintergund. Zumindest wird jetzt die png schonmal erstellt.
PHP-Code:<?php
Header("Content-Type: image/png");
$width = 500; # die Breite
$height = 200; # die Höhe
$img = ImageCreate($width, $height);
$white = ImageColorAllocate($img, 255, 255, 255);
ImageFill($img, 0, 0, $white); # ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit $white
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
$fontfile = 'verdana.ttf';
$fontsize = 12;
$fontangle = 0;
// Betriebssystem
if (strstr($HTTP_USER_AGENT, "Windows 95"))
$bs = "Win95";
else if (strstr($HTTP_USER_AGENT, "Windows 98"))
$bs = "Win98";
else if (strstr($HTTP_USER_AGENT, "NT 4.0"))
$bs = "NT";
else if (strstr($HTTP_USER_AGENT, "NT 5.0"))
$bs = "Win2k";
else if (strstr($HTTP_USER_AGENT, "NT 5.1"))
$bs = "WinXP";
else if (strstr($HTTP_USER_AGENT, "Win"))
$bs = "Win";
else if (strstr($HTTP_USER_AGENT, "Mac"))
$bs = "Mac";
else if (strstr($HTTP_USER_AGENT, "Linux"))
$bs = "Linux";
else if (strstr($HTTP_USER_AGENT, "Unix"))
$bs = "Unix";
else
$bs = "Other";
// Browser
if (ereg("MSIE", $HTTP_USER_AGENT)) {
if (strstr($HTTP_USER_AGENT, "MSIE 5.0")) {
$browser = "IE5";
} else if (strstr($HTTP_USER_AGENT,'MSIE 5.5')) {
$browser ="IE55";
} else if (strstr($HTTP_USER_AGENT,'MSIE 6.0')) {
$browser ="IE6";
} else {
$browser ="IE";
}
} else if (ereg("Opera", $HTTP_USER_AGENT)) {
$browser ="Opera";
} else if (ereg("Mozilla/([0-9].[0-9]{1,2})", $HTTP_USER_AGENT)) {
$browser = "Mozilla";
} else {
$browser = "Other";
}
//IP-Adresse
function getip() {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$realip = getenv("REMOTE_ADDR");
}
return $realip;
}
$ip = getip();
//Hostname
$host = gethostbyaddr($ip);
//Datum
$datum = date("d.n.Y"); //aktuelles Datum wird an $datum übergeben
//Zeit
$zeit = date("G:i:s"); //aktuelle Uhrzeit an $zeit übergeben
//in neues Bild schreiben
$new_picture = imagecreatetruecolor(200,100);
$text_color = imagecolorallocate($new_picture, 0, 0, 0);
$text = "$ip $host $bs $os";
imagettftext($new_picture, $fontsize, $fontangle, 90, 60, $text_color, $fontfile, $text);
imagepng($new_picture);
imagedestroy($new_picture);
?>
Ich verstehe es nicht. habe doch alle Werte festgelegt.
Kann es sein das ich das Ende des Scriptes vielleicht nach oben setzen sollte zum Rest ???
Also Textcolor geht irgendwie garnicht.
Kommentar
-
Mal ganz ehrlich: Wer hat da jetzt dran rumgepfuscht? Du doch mit Sicherheit nicht, oder?
Nimm oben das ImagePNG raus - damit gibst du das Bild aus, und das geht nicht zweimal im gleichen Script - deswegen kriegst du auch nur ein weißes Bild raus.
Dann nimm unten das $new_image = imagecreatetruecolor raus, du erstellst ja jetzt schon ganz oben ein Bild mit imagecreate.
Dann musst du unten noch überall $new_image durch $img ersetzen, denn dein neu erstelltes Bild heißt ja jetzt so.
Außerdem musst du aus deinem Text noch die Variable $os entfernen, die wird nämlich nirgends definiert.
Kommentar
-
Hmmm, doch war ich. War bei PHP.de und habe gegoogelt weil es mich madig gemacht hat.
Das ich nun einen doppeller drin habe ist mir schon aufgefallen.
Die Variable $os war ein Dedanken fehler von mir , meinte $bs habe aber aber $browser vergessen.
Jedoch hatte ich noch ein Problem, mein Forum das phpBB2.0.11 unterstüzt kein PHP und PNG nicht freiwillig, habe erst einen Mod einsetzen müßen.
Aber stimmt, die ganze $new_ müßen jetzt weg. Schon krass worauf man alles achten muss.
Kommentar
-
Original geschrieben von Lord-Byron
Schon krass worauf man alles achten muss.
Außerdem verwendet man, wenn man sich ernsthafter mit PHP beschäftigt, Programme, die einen auf all sowas hinweisen.
Kommentar
-
So, es ist vollbracht.
Mensch war das eine schwere Geburt. Bin aber mit dem Ergebniss sehr zufrieden.
Jedoch ist der Code abgewandelt. So wie der Code hier zu letzt gepostet war von mir waren einfach zu viele Fehler drin. Jetzt benutze ich ein PNG und lasse mir die Daten auf das PNG geben. Wollte ich zwar nicht aber wie gesagt ich bin mit dem Ergebniss sehr zufrieden.
Ja, also eine PHP-Editor. Hmm, ich dachte meiner ist gut, benutze den Dreamweaver MX aber sorichtig blicke ich den nicht habe jtzt einen Script-Editor von einem Freund der mir Fehlerhaft Variale und Tags in der Seitenleiste anzeigt und im Script mit einem roten Ausrufezeichen makiert.
Ich danke jedenfalls für die Hilfe.
Hier mal meine jetztige Umsetzung:
PHP-Code:$image = "name-deines-PNG.png";
$im = imagecreatefrompng($image);
$text = 'Du kannst keine Geheimnisse mehr vor mir haben *muhaha*';
$textg = 'Viel Spaß noch hier im Forum :-)';
$ip = $_SERVER['REMOTE_ADDR'];
$herkunft = $_SERVER['HTTP_REFERER'];
$fullhost = gethostbyaddr($ip);
$host = preg_replace("/^[^.]+./", "*.", $fullhost);
$zeit = time();
$zeit1 = date("d.m.Y", $zeit);
$zeit2 = date("H:i", $zeit);
Dann kommen eben noch die Browser und Betriebsystemvariablen dazu wie in den anderen postings hier.
PHP-Code:$tc = ImageColorAllocate ($im, 255, 255, 255);
$red = ImageColorAllocate ($im, 255, 0, 0);
$green = ImageColorAllocate ($im, 0, 255, 0);
PHP-Code:ImageString($im, 5, 10, 6, "$text ", $tc);
ImageString($im, 3, 10, 30, "Deine IP: ", $red)
;ImageString($im, 3, 115, 30, "$ip ", $green);
ImageString($im, 3, 10, 45, "Du kommst von: ",$red);
ImageString($im, 3, 115, 45, "$herkunft ", $green);
ImageString($im, 3, 10, 60, "Dein Host: ", $red);
ImageString($im, 3, 115, 60, "$host ", $green);
ImageString($im, 3, 10, 80, "Heute ist der ", $red);
ImageString($im, 3, 115, 80, "$zeit1 ", $green);
ImageString($im, 3, 10, 100, "Es ist jetzt ", $red);
ImageString($im, 3, 115, 100, "$zeit2 ", $green);
ImageString($im, 3, 160, 100, "Uhr ", $red);
ImageString($im, 3, 10, 120, "Du benutzt den",$red);
ImageString($im, 3, 110, 120, " $browser",$green);
ImageString($im, 3, 170, 120, "und",$red);
ImageString($im, 3, 195, 120, " $bs",$green);
ImageString($im, 3, 265, 120, "ist Dein Betriebssystem.",$red);
ImageString($im, 5, 10, 160, "$textg ", $tc);
header("Content-Type: image/png");
Imagepng($im,'',100);
ImageDestroy ($im);
Das wars eigentlich. Nicht besonderst aufregend aber funktionell.
Also, nochmals vielen Dank für die Hilfe.Zuletzt geändert von Lord-Byron; 08.01.2006, 13:07.
Kommentar
-
Und jetzt mache noch bitte ein paar Zeilenumbrüche in den eben geposteten Code, damit man nicht horizontal scrollen muss.
Und bitte nimm dieses große Bild aus deiner Signatur hier - hat nämlich sonst auch keiner, wird auch nicht so gerne gesehen.
Wenn du dein Script so schön findest, kannst du es ja in den Code-Schnipseln zur Schau stellen.
Kommentar
Kommentar