[Tutorial]Kleine Dynamische Foren Signatur in PHP

so habe nun lange gesucht aber immernoch noch nichts gefunden.
habe bisher sowas:

<? $ip = "ip-adresse"; $ping = exec("ping $ip -n 1"); if(eregi("Verlust", $ping)) { print "$ip ist nicht Erreichbar"; } else { print "$ip ist Erreichbar"; } ?>
glaube aber das ich damit sehr falsch liege oder?
Somit würde ich ja Prüfen, ob mein rechner Online ist und i8ch nicht in der Community.
Also wie müsste ich es anstellen, damit ich eine Signatur erstellen kann, die mir z.B. meinen Online status, in diesem Forum sagt?
Hatte auch schon die idee, da solche Onlinebanner angeboten werden, wo steht ob man on oder off ist, auszulesen und dann zu Sagen ich bin off oder on, was so über Xampp gut lief. Aber hier funktioniert es ja nicht, weil die Funktion gesperrt ist. (file_get_contents)
Wie könnte an sowas sonst anstellen?
Nach Dynamischer Ip faken etc. habe ich schon nach gegoogelt ohne Erfolg…

WTF… file_get_contents ist activ… exec allerdings nicht :p

moin @ichundso

wie gesagt wenn du es abfragen möchtest ob du in einem Forum bzw. comunity online bist wird es eben schwierig du brauchst da mysql zugang. jedenfalls fällt mir derweil nichts anderes ein.
man könnte alle x min die „alle user anzeigen“ Seiten crawlen und schauen ob dein Name dabei ist wenn ja dann ON wenn nein dann OFF. :ps: :ps:

Sowas verursacht aber unötigen traffic/serverlast (müsstest sowas mit miro denke ich absprechen) da es ja alle xmin ausgeführt werden müsste bzw nen cronjob damit das auch passiert, und du bräuchtest wieder mindestens url_fopen. :whata:

Du siehst es wird also schwierig !! :wink3:

Gruss Six !coffee

Moin,

zur dynamischen IP:
dyndns.com/services/dns/dyndns/
no-ip.com/services/managed_d … c_dns.html

(2 min Google …)

MfG
myPages

OK thx für die Tipps und Hinweise :smiley:

1. Lösung: url_fopen() !warn
Mit dieser Funktion kannst du z.B. den ICQ-Status auslesen.

2. Lösung: exec() !warn
Du sendest einen Pink an deinen PC und wertest ihn aus.
Du brauchst:
DynDNS Account
DynDNS Software oder Router mit DynDNS-Unterstützung
Portfreigabe am Router
Firewall-konfiguration

3. Lösung: ftp_connect()

  1. Du installierst auf deinem Rechner einen FTP-Server, z.B. FileZilla.
  2. Erstelle dir hier einen DynDNS Account
  3. Installiere entweder eine DynDNS Software auf deinem Rechner oder aktiviere (sofern vorhanden) die DynDNS-Unterstützung deines Routers
  4. Richte die Portfreigabe (Port 21) am Router ein
  5. Firewall-konfiguration (Port 21 muss frei sein)
    Fertig!

Du kannst deinen Status nun z.B. so abrufen:

<?php $ftp_server = "deindyndnsaccount.dyndns.org"; $connection_id = @ftp_connect("$ftp_server"); if (!$connection_id) { $status = "offline"; } else { $status = "online"; ftp_quit($connection_id); } ?>

Hoffe es hat geholfen.

die ersten beiden funktionieren leider auf bplaced (noch) nicht, das dritte ist doch zu aufwendig…
Am Einfachsten (auf bplaced) ist es, wenn du vom PC (!) einen Request auf die PHP-Datei ausführst (mit irgendeinem PW oder so) und dieser Code dann den Letzten Zugriff speichert…wenn dieser weniger als 5 Minuten zurückliegt bist du online, sonst offline :wink:

[quote]mit irgendeinem PW oder so[/quote]Du kannst z.B. php als Dienst im Hintergrund laufen lassen und ein php-script abgrasen lassen. Das könnte dann z.B. so aussehen:

<?php do{ $db = implode("", file("http://deinwebaccount.bplaced.net/status.php")); sleep(900); }while(1<2); ?>Dieser Code bezweckt, dass eine URL aufgerufen wird. Danach wird 15 Minuten gewartet.

sebbo

<?php
while(true)
{
   $h = fopen("http://xyz.de");
   fclose($h);
   sleep(900);
}

ich würde es aber eher mit C++ oder VB machen :wink:

Wir sind hier aber im PHP-Thread!

sebbo

Wollte gerade die Signatur hochladen aber man braucht ja dazu auch noch eine Schrift online. Ich wusste jetzt nicht ob das gegen irgendein copyright oder so verstösst oder kann ich einfach eine schrift von meinem pc hochladen?

greets
andi

also bei dem tut ist sie mit arial…die war bei meinem windows natürlich dabei…aber ich hab jetzt keine ahnung ob die sontzt was kostet. oder wist ihr welche schrift man verwenden kann?

Hab jetzt schon ziemlich viel an dem Script herumgebastelt aber es lauft irgendwie nicht. Der php code sieht so aus und ist unter http://aschachinger.bplaced.net/test/sig.php erreichbar:

[code]<?
header(“Content-type: image/png”); // Fuer eine PNG Datei
//header(“Content-type: image/jpeg”); // Fuer eine JPG Datei
//header(“Content-type: image/gif”); //Fuer eine Gif Datei

$img = imagecreatefrompng(“imgsrc/sig.png”); //sollte das Pic in einem Unterordner liegen muesst Ihr diesen mit angeben zB. /img/deine_Datei.png
$white = imagecolorallocate($img,255,255,255);
$black = imagecolorallocate($img,0,0,0);
$red = imagecolorallocate($img,255,0,0);
$blue = imagecolorallocate($img,0,0,255);

// 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 = “—”;
}
// Bestimmen der Views
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);

// Uhrzeit und Datum Bestimmen
$datum = date(“d.m.Y”);
$uhrzeit = date(“H:i”);

// IP bestimmen und Host auslesen
$ip = getenv(“REMOTE_ADDR”);
$host = gethostbyaddr($ip);
// OS anzeigen (OS = Operating System = Dein System z.b. WindowsXP)
imagettftext($img, 10, 0, 10, 10, $black, “./fonts/kr1.ttf”, "Dein OS ist: ");
imagettftext($img, 10, 0, 85, 10, $red, “./fonts/kr1.ttf”, “”. $os);
// Browser anzeigen
imagettftext($img, 10, 0, 10, 25, $black, “./fonts/kr1.ttf”, "dein Browser ist: ");
imagettftext($img, 10, 0, 115, 25, $blue, “./fonts/kr1.ttf”, “”. $browser);
// IP-Adresse anzeigen
imagettftext($img, 10, 0, 10, 40, $black, “./fonts/kr1.ttf”, "deine IP-Adresse: ");
imagettftext($img, 10, 0, 120, 40, $red, “./fonts/kr1.ttf”, “”. $ip);
// Host anzeigen
imagettftext($img, 10, 0, 10, 55, $black, “./fonts/kr1.ttf”, "dein Host ist: ");
imagettftext($img, 10, 0, 88, 55, $blue, “./fonts/kr1.ttf”, “”. $host);
// Datum anzeigen
imagettftext($img, 10, 0, 10, 70, $black, “./fonts/kr1.ttf”, "Datum: ");
imagettftext($img, 10, 0, 53, 70, $blue, “./fonts/kr1.ttf”, “” . $datum);
// Zeit anzeigen
imagettftext($img, 10, 0, 125, 70, $black, “./fonts/kr1.ttf”, "Zeit: ");
imagettftext($img, 10, 0, 152, 70, $blue, “./fonts/kr1.ttf”, “” . $uhrzeit);
// Views anzeigen
imagettftext($img, 10, 0, 190, 70, $red, “./fonts/kr1.ttf”, “View:” );
imagettftext($img, 10, 0, 225, 70, $red, “./fonts/kr1.ttf”, “” . $aufruf);
ImagePNG($img);

?>[/code]

das bild ist unter http://aschachinger.bplaced.net/imgsrc/sig.png erreichbar.

Also wär super wenn mir wer hälfen kann!!

greets
andi

Moin,

hälfen kann ich nicht, nur helfen. Schon mal in den Quelltext geschaut? :wink:

Dort steht:

Ich würde mal sagen, dass du dich noch ein wenig mehr mit den Funktionen auseinander setzen solltest, da zum imagettftext andere Werte erwartet, genauso wie imagecolorallocate und imagecreatefrompng findet schon mal das Bild nicht. Was auch nicht verwunderlich ist, da das Bild nicht unter Adresse/test/imgsrc/sig.png zu erreichen ist, sondern unter Adresse/imgsrc/sig.png, d.h. bei imagecreatefrompng müsste das so aussehen:

imagecreatefrompng('./../imgsrc/sig.png');

Ich würde mal vorschlagen, dass du dich der Fehler bzw. der Warnings annimmst und dich dann nochmal meldest, wenn alle Fehler beseitigt sind und es trotzdem nicht klappt.

MfG
myPages

Poste mal was in den Betreffenden Zeilen steht.

mfg

wie bist du da zum Quelltext gekommen? :ps:

also ich hab jetzt sig.png einfach nach /test/ verschoben aber es zeigt sich keine wirkung :ps:

also ich wär schon zimlich für hälfen…

quelltext anschauen geht bei mir nicht weil es nur ein bild ist…der macht einfach gar nichts…

aber die sig.png ist vorhanden! die liegt im gleichen verzeichnis wie die sig.php!

hi,

also versuch mal nicht das bild zu verschieben sondern den quelltext anzupassen:

imagecreatefrompng(’./…/imgsrc/sig.png’);

wie von Scram vorhin schon beschrieben.

Und paste doch bitte noch mal den Quellcode wie er gerade aktuell ist :wink:

Gruss Six

hab das bild verschoben und den quelltext angepasst…

also hier die /test/sig.php


<?
header("Content-type: image/png"); // Fuer eine PNG Datei
//header("Content-type: image/jpeg"); // Fuer eine JPG Datei
//header("Content-type: image/gif"); //Fuer eine Gif Datei

$img = imagecreatefrompng("./../test/sig.png"); //sollte das Pic in einem Unterordner liegen muesst Ihr diesen mit angeben zB. /img/deine_Datei.png
$white = imagecolorallocate($img,255,255,255);
$black = imagecolorallocate($img,0,0,0);
$red = imagecolorallocate($img,255,0,0);
$blue = imagecolorallocate($img,0,0,255);

// 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 = "---";
}
// Bestimmen der Views
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);

// Uhrzeit und Datum Bestimmen
$datum = date("d.m.Y");
$uhrzeit = date("H:i");

// IP bestimmen und Host auslesen
$ip = getenv("REMOTE_ADDR");   
$host = gethostbyaddr($ip);   
// OS anzeigen (OS = Operating System = Dein System z.b. WindowsXP)
imagettftext($img, 10, 0, 10, 10, $black, "./../../fonts/kr1.ttf", "Dein OS ist: ");
imagettftext($img, 10, 0, 85, 10, $red, "./../fonts/kr1.ttf", "". $os);
// Browser anzeigen
imagettftext($img, 10, 0, 10, 25, $black, "./../fonts/kr1.ttf", "dein Browser ist: ");
imagettftext($img, 10, 0, 115, 25, $blue, "./../fonts/kr1.ttf", "". $browser);
// IP-Adresse anzeigen
imagettftext($img, 10, 0, 10, 40, $black, "./../fonts/kr1.ttf", "deine IP-Adresse: ");
imagettftext($img, 10, 0, 120, 40, $red, "./../fonts/kr1.ttf", "". $ip);
// Host anzeigen
imagettftext($img, 10, 0, 10, 55, $black, "./../fonts/kr1.ttf", "dein Host ist: ");
imagettftext($img, 10, 0, 88, 55, $blue, "./../fonts/kr1.ttf", "". $host);
// Datum anzeigen
imagettftext($img, 10, 0, 10, 70, $black, "./../fonts/kr1.ttf", "Datum: ");
imagettftext($img, 10, 0, 53, 70, $blue, "./../fonts/kr1.ttf", "" . $datum);
// Zeit anzeigen
imagettftext($img, 10, 0, 125, 70, $black, "./../fonts/kr1.ttf", "Zeit: ");
imagettftext($img, 10, 0, 152, 70, $blue, "./../fonts/kr1.ttf", "" . $uhrzeit);
// Views anzeigen
imagettftext($img, 10, 0, 190, 70, $red, "./../fonts/kr1.ttf", "View:" );
imagettftext($img, 10, 0, 225, 70, $red, "./../fonts/kr1.ttf", "" . $aufruf);
ImagePNG($img);

?>

oo…das ist durch suchen & ersetzten so geworden :neutral_face: