• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Dynamisches Bild erzeugen und .htaccess

roteisen

New member
Hallo Leutchen,

ich habe eine Dynamische Signatur im Netz gefunden (zur freien Verfügung und Veränderung selbstverständlich) die ich mir anpassen will.

Es wird über ein php-Script ein dynamisches Bild erzeugt.

Das Problem ist die Dateiendung des erzeugten Bildes. Ich kann bei mir keine .htaccess platzieren, weil ich einen Webspace habe, also keinen eigenen Server. Also kann ich auch kein mod_rewrite so ohne weiteres durchführen (hat man mir gesagt...).

Eine .htaccess ist immer gleich wieder "verschwunden".

Nun ist bei vielen Seiten eine Bildeinbindung mit der Bildendung .php nicht möglich/erlaubt.

sig.php


Hier ist das Original (Server gerade eben down): http://sputnik3.dyndns.org/blogolin/index.php?get=show_topic&t_id=5

Hier geht es zum Beispiel. Ich will also der Datei eine Bildendung geben, muss also den Server irgendwie austricksen.

Wie kann man das denn am besten tun?

Besten Dank,
Roteisen
 
Zuletzt bearbeitet:
der Punkt vor dem .htaccess bedeuted dass es eine versteckte Datei ist (auf unix systemen), wahrscheinlich versteckt dein ftp browser sie deshalb einfach, durchsuch mal die optionen nach nem punkt ala "versteckte Dateien anzeigen"
 
der Punkt vor dem .htaccess bedeuted dass es eine versteckte Datei ist (auf unix systemen), wahrscheinlich versteckt dein ftp browser sie deshalb einfach, durchsuch mal die optionen nach nem punkt ala "versteckte Dateien anzeigen"


Danke für den Tip!

Die .htaccess ist da. Aber wenn ich die sig.php in sig.png umbenenne wird ein Fehler angezeigt.

Was mache ich ggf. falsch?

Hier mal die sig.php (in der ich schon einige Dinge auskommentiert habe)

PHP:
<?php
/*
Sig ist eine kleine aber doch recht anpassbare Forensignatur.
Sie lässt sich auch noch erweitern.
Änderrungen könnt Ihr gerne vornehmen, solltet Ihr was neues Einbauen, lasst es mich wissen,
so kann es bei einer Weiterentwicklung einfliessen.
Sig könnt Ihr jederzeit nach belieben verändern und erweitern, lasst jedoch bitte folgendes stehen.
-------------------------------------------
Sig copyright 2007 by Sixpack
website: www.sputnik3.de
mail: Dominik.Schalling@iesy.net
-------------------------------------------
*/
header("Content-type: image/png");
//beginn der Random Pic funktion
$img = "bg.png,bg2.png,bg3.png,bg4.png,bg6.png,bg7.png";//img dateien
$path = "./img/"; //img ordner
//beginn zufall
mt_srand((double)microtime() * 1000000);
$img = preg_replace('/\\s+/', '', $img); // whitespaces entfernen
$img = preg_replace('/,{2,}/', ',', $img); // mehrfache kommata entfernen
$img = trim($img, ','); // überflüssige kommata am anfang und am ende entfernen
$img = explode(',', $img); // zum array konvertieren
$img = $img[rand(0, (count($img) - 1))]; // zufälliges bild auswählen

//Bild erzeugen auch möglich mit ImageJpeg($img) oder Imagegif($img)
$img = imagecreatefrompng("$img");

// Textfarbe sollte klar sein
$white  = imagecolorallocate($img,255,255,255);
$black  = imagecolorallocate($img,0,0,0);
$red    = imagecolorallocate($img,255,0,0);
$green  = imagecolorallocate($img,0,255,0);
$blue   = imagecolorallocate($img,0,0,255);
$grau   = ImageColorAllocate($img,120,120,120);
$gelb   = ImageColorAllocate($img,255,185,15);
$sandyb = ImageColorAllocate ($img,139,139,0);
// Dynymische begrüssung
// Abfrage der momentanen Stunde (G -> 0-23)
$std = date("G");
// Vergleichsoperatoren
if     ($std >= 5 && $std < 9){          // von 5.oo Uhr bis 8.59 Uhr
        $begruessung = "Guten Morgen!";}
elseif ($std >= 9 && $std <= 18) {       // von 9.oo Uhr bis 18.59 Uhr
        $begruessung = "Guten Tag! ";}
elseif ($std >= 19 && $std <= 23) {       // von 19.oo Uhr bis 23.59 Uhr
        $begruessung = "Guten Abend! ";}
else   {$begruessung = "Du solltest schlafen gehen!";}   // von 00.00 Uhr bis 4.59 Uhr

// Auslesen der Browser
if (ereg( 'MSIE',$_SERVER[HTTP_USER_AGENT])) {
if (strstr($_SERVER[HTTP_USER_AGENT],'MSIE 5.0')) {
$browser = "Internet Explorer 5";
} elseif (strstr($_SERVER[HTTP_USER_AGENT],'MSIE 5.5')) {
$browser = "Internet Explorer 5.5";
} elseif (strstr($_SERVER[HTTP_USER_AGENT],'MSIE 6.0')) {
$browser = "Internet Explorer 6";
} else {
$browser = "Internet Explorer";
}
} elseif (ereg( 'Opera',$_SERVER[HTTP_USER_AGENT])) {
$browser = "Opera";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Firefox")) {
$browser = "Firefox";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Safari")) {
$browser = "Safari";
} elseif (ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) {
$browser = "Lynx";
} elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) {
$browser = "WebTV";
} elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) {
$browser = "Konqueror";
} elseif (ereg( 'Mozilla/([0-9].[0-9]{1,2})',$_SERVER[HTTP_USER_AGENT])) {
$browser = "Mozilla";
} else {
$browser = "Unknown";
}

/*
// Auslesen der Betriebssysteme
if (strstr($_SERVER[HTTP_USER_AGENT], "Windows 95")) {
$os = "Windows 95";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Windows 98")) {
$os = "Windows 98";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "NT 4.0")) {
$os = "Windows NT";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "NT 5.0")) {
$os = "Windows 2000";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "NT 5.1")) {
$os = "Windows XP";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Win")) {
$os = "Windows";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Mac")) {
$os = "MacOS";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Linux")) {
$os = "Linux";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "FreeBSD")) {
$os = "FreeBSD";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "SunOS")) {
$os = "SunOS";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "IRIX")) {
$os = "IRIX";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "BeOS")) {
$os = "BeOS";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "OS/2")) {
$os = "OS/2";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "AIX")) {
$os = "AIX";
} elseif (strstr($_SERVER[HTTP_USER_AGENT], "Unix")) {
$os = "Unix";
} else {
$os = "Unbekanntest System";
}/*
// IP bestimmen und Host auslesen
$ip = getenv("REMOTE_ADDR");
$host = gethostbyaddr($ip);
*/
//Datum Uhrzeit
$datum = date("d.m.Y");
$uhrzeit = date("H-i");
/*
//Funktion für Views (dat öffnen lesen zählen schreiben schliessen)
if(!file_exists("count.txt"))
{$counter=fopen("count.txt", "a");}
else
{$counter=fopen("count.txt", "r+");}
$aufruf=fgets($counter,100);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
fclose($counter);
$views= "Views gesammt: " . $aufruf;
*/
//Sig Version mit Copyright
//$version= "Sig.0.2.8 © 2007 by Sixpack | powered by bplaced.net | ";
// Die Textausgaben
imagettftext($img, 12, 0, 120, 15, $gelb, "fonts/kr1.ttf", "Tux sagt ");
imagettftext($img, 12, 0, 180, 15, $white,"fonts/kr1.ttf", "". $begruessung );

imagettftext($img, 12, 0, 120, 30, $gelb, "fonts/kr1.ttf", "Heute ist der ");
imagettftext($img, 12, 0, 210, 30, $white,"fonts/kr1.ttf", "". $datum ." es ist " . $uhrzeit . " Uhr" );

imagettftext($img, 12, 0, 120, 45, $gelb, "fonts/kr1.ttf", "Dein OS ist: ");
imagettftext($img, 12, 0, 200, 45, $white, "fonts/kr1.ttf", "". $os);

imagettftext($img, 12, 0, 120, 60, $gelb, "fonts/kr1.ttf", "Dein Browser ist: ");
imagettftext($img, 12, 0, 230, 60, $white, "fonts/kr1.ttf", "". $browser);

imagettftext($img, 12, 0, 120, 75, $gelb, "fonts/kr1.ttf", "deine IP-Adresse: ");
imagettftext($img, 12, 0, 230, 75, $white, "fonts/kr1.ttf", "". $ip);

imagettftext($img, 12, 0, 120, 90, $gelb, "fonts/kr1.ttf", "dein Host ist: ");
imagettftext($img, 12, 0, 120, 105, $white, "fonts/kr1.ttf", "". $host);

imagettftext($img, 12, 0, 120, 130, $gelb, "fonts/kr1.ttf", "Einen Guten Rutsch nach 2008 von Six");

imagettftext($img, 10, 0, 10, 145, $white, "fonts/visitor2.ttf", "". $version . $views);
imagepng($img);


//Brainfuck
//RSS-feed einer Website auslesen neuste Zeile (ueberschrift)
//Klick-counter
//Random Zitatspruch !
?>

Hier die .htaccess:

Code:
RewriteEngine On
RewriteRule sig.png sig.php

Es soll laut der Aussage des Erstellers dann durch Verwendung der rewrite-
Funktion machbar sein die PHP-Datei als PNG (oder auch JPG oder
GIF) zu "tarnen", so daß die Dateiendung eines Bildes verwendet werden kann, jenachdem was man in der sig.php einträgt.

Und bei ihm klappt das auch, wenn man seine Datei anzeigt, und die Endung betrachtet, ist das kein php-file, sondern eine Bilddatei.
 
Zuletzt bearbeitet:
genaue Fehlermeldung? Wenn dein Provider kein mod_rewrite unterstützt wird es nichts bringen das in die htaccess zu schreiben.
Du kannst ansonsten eventuell einstellen das png Dateien vom Server auch durch den PHP-Parser gejagt werden.
 
Nach der Umbenennung wird die Datei nicht gefunden. Sie ist natürlich da.

Es erscheint also ein 404er Fehler komischerweise.

Not Found

The requested URL /sigg/sig.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

ABER:

ich habe gerade entdeckt, daß wenn die Datei sig.php heißt, sie sich auch unter sig.png aufrufen läßt!
Na wenn das nix ist :D

Komisch, oder ist das das Ergebnis des rewritigs?
 
Zuletzt bearbeitet:
ABER:

ich habe gerade entdeckt, daß wenn die Datei sig.php heißt, sie sich auch unter sig.png aufrufen läßt!
Na wenn das nix ist :D

Komisch, oder ist das das Ergebnis des rewritigs?
Das ist nicht komisch, sondern das normale, erwartete Verhalten.
Du solltest Dich vielleicht mal in die Rewrite-Thematik einlesen.
 
Das ist nicht komisch, sondern das normale, erwartete Verhalten.
Du solltest Dich vielleicht mal in die Rewrite-Thematik einlesen.

Ja sicher. Danke nochmal für die Antworten.

Nun ist mein Problem Nummer eins gelöst. Aber wie bekomme ich nun ein RSS-Feed in die Grafik? Also nur die Überschriften.

Zum Beispiel den von diesem Forum:

http://forum.jswelt.de/external.php?type=RSS2

Also die jetzt angezeigten Informationen in der Grafik sollen gegen die Überschriften des RSS-Feeds ausgetauscht werden.

Ich hab leider von PHP keinen Dunst, nur bissi Bastelerfahrung vom phpBB-Modden, aber das reicht nicht aus. Ich kann die jetzigen Anzeigen zwar auskommentieren oder ändern, weiß aber nicht wie ich ein RSS-Feed anzeigen lassen kann.

Könntet ihr mir da vielleicht weiterhelfen?
 
Zuletzt bearbeitet:
Zurück
Oben