Einfacher Captcha Code

Zufallszahl wird in der Cookie Variable „seckey“ gespeichert und kann von dort aus mit einer einfachen if-Abfrage geprüft werden.

<?php
 
if($_POST[seckey]==$_COOKIE[seckey]){
// Captchaverify okay
 
} else { 
// Captchacode falsch
 
}
?>

Beispielbild

Captcha Bild

Quelltext

<?php
 
$zufallszahl = mt_rand(10000, 99999);
setcookie("seckey", $zufallszahl); 
 
header("Content-Type: image/png");
/* das Bild und seine Eigenschaften */
$im = imagecreate(61, 21); //das bilde erstellen
$bgcolor = imagecolorallocate($im, 255, 255, 255); //Backgroundcolor setzen
$fontcolor = imagecolorallocate($im, 0, 0, 0); //Schriftfarbe setzen
$gridcolor = imagecolorallocate($im, 128, 128, 128); //Schriftfarbe setzen
 
/* die Linien auf das Bild "zeichnen" */
for($x=0; $x <= 100; $x+=10)
    imageline($im, $x, 0, $x, 50, $gridcolor);
for($y=0; $y <=50; $y+=5)
    imageline($im, 0, $y, 100, $y, $gridcolor);
 
/* den Zahlencode auf das Bild "schreiben" */
imagestring($im, 5, 8, 3, $_COOKIE['seckey'], $fontcolor);
imagepng($im);
imagedestroy($im);
?>

Service Online Status

Mit diesem DokuWiki Plugin können Sie den Status von Diensten TCP/UDP anzeigen als Bild mit/ohne Text und als Textversion.

Bekannte Probleme

Nicht alle UDP Services werden korrekt angezeigt. Dies hängt mit dem UDP Protokoll zusammen, da UDP ein verbindungsloses Protokoll ist im gegensatz zu TCP. Bei UDP wird in der Regel keine Verbindung aufgebaut bevor nicht Daten gesendet oder empfangen werden müsssen. Bei DNS (udp/53) funktioniert die Statusanzeige. Andere UDP Services habe ich noch nicht getestet.

Download

Quelltext


 */

// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');

/**
 * All DokuWiki plugins to extend the parser/rendering mechanism
 * need to inherit from this class
 */
class syntax_plugin_sos extends DokuWiki_Syntax_Plugin {

    function getInfo(){
      return array(
        'author' => 'Maximilian Thoma',
        'email'  => 'info@thoma.cc',
        'date'   => '2007-12-18',
        'name'   => 'Service Online Status',
        'desc'   => 'Service Online Status Plugin, -TCP fully supported, UDP experimental- usage: {{sos>protocol:ip_addr:port:img(y/n)|Description}}',
        'url'    => 'http://www.thoma.cc',
      );
    }

    function getType()  { return 'substition'; }
    //function getPType() { return 'block'; }
    function getSort()  { return 309; }

    function connectTo($mode)
    {
      $this->Lexer->addSpecialPattern('\{\{sos>.+?\}\}', $mode, 'plugin_sos');
    }

    function handle($match, $state, $pos, &$handler){
    $data = substr($match, 6, -2);
		$pos = strpos($data, '|');
		if ($pos === FALSE)
		{
			$description = '';
			$target = $data;
		}
		else
		{
			$description = substr($data, $pos + 1);
			$target = substr($data, 0, $pos);
		}
        return array(target => $target, description => $description);
	}

	function render($mode, &$renderer, $data) {
        if($mode == 'xhtml'){
            $renderer->doc .= $this->_sos($data);
            return true;
        }
        return false;
    }

    function _sos($data){
  	global $ID;

	// Explode Data protocol:ip_addr:port:img(y/n)
	$data_tmp=explode(":",$data[target]);
	$protocol=$data_tmp[0];
	$ip_addr=$data_tmp[1];
	$port=$data_tmp[2];
	$img=$data_tmp[3];
	$description=$data[description];

	// TCP or UDP
	$status = @fsockopen("$protocol://$ip_addr", $port, $errno, $errstr, 5);
 	if (!$status) {
	// Offline TCP
	if($img=="y"){
		// Mit Bild
		$src = DOKU_URL.'lib/plugins/sos/images/off.png';
		$buffer.="
\"($protocol\\$port)$description
"; } else { // Ohne Bild if($description==""){ $buffer.="
$protocol\\$port $ip_addr not reachable.
"; } else { $buffer.="
$description not reachable.
"; } } @fclose($status); } else { // Online oder UDP if($protocol=="tcp"){ if($img=="y"){ // Mit Bild $src = DOKU_URL.'lib/plugins/sos/images/on.png'; $buffer.="
\"($protocol\\$port)$description
"; } else { // Ohne Bild if($description==""){ $buffer.="
$protocol\\$port $ip_addr is reachable.
"; } else { $buffer.="
$description is reachable.
"; } } @fclose($status); } // oder UDP if($protocol=="udp"){ fwrite($status, "\n"); if(fread($status, 26)==""){ // Offline if($img=="y"){ // Mit Bild $src = DOKU_URL.'lib/plugins/sos/images/off.png'; $buffer.="
\"($protocol\\$port)$description
"; } else { // Ohne Bild if($description==""){ $buffer.="
$protocol\\$port $ip_addr not reachable.
"; } else { $buffer.="
$description not reachable.
"; } } } else { //Online if($img=="y"){ // Mit Bild $src = DOKU_URL.'lib/plugins/sos/images/on.png'; $buffer.="
\"($protocol\\$port)$description
"; } else { // Ohne Bild if($description==""){ $buffer.="
$protocol\\$port $ip_addr is reachable.
"; } else { $buffer.="
$description is reachable.
"; } } } fclose($status); } } return $buffer; } } ?>

Installation

Variante 1: Pluginmanager

Die URL vom Download in den Pluginmanager reinkopieren und Installieren anklicken.

Variante 2: Manuell

Den Inhalt des .tgz in lib/plugins kopieren.

Einbinden in die Webseite

Syntax

{{sos>protocol:ip_addr_oder_fqdn:port:img(y/n)|description}}

Empfehlenswert ist das Abschalten des Caches. Am Anfang der Webseite folgendes einfügen.

~~NOCACHE~~

Demo / Beispiele

Als Test verwende ich die IP-Adresse (FQDN) dieser Homepage und die Serviceports tcp/80 (vorhanden), tcp/801 (nicht vorhanden) und udp/53 (vorhanden), udp/3232 (nicht vorhanden).

Nur Bild

{{sos>tcp:www.thoma.cc:80:y}}
{{sos>tcp:www.thoma.cc:801:y}}
{{sos>udp:www.thoma.cc:53:y}}
{{sos>udp:www.thoma.cc:3232:y}}

ergibt: y ( B, 0 downloads) y ( B, 0 downloads) y ( B, 0 downloads) y ( B, 0 downloads)

Bild mit Beschreibung

{{sos>tcp:www.thoma.cc:80:y| www @ www.thoma.cc}}
{{sos>tcp:www.thoma.cc:801:y| xyz @ www.thoma.cc}}
{{sos>udp:www.thoma.cc:53:y| dns @ www.thoma.cc}}
{{sos>udp:www.thoma.cc:3232:y| zxy @ www.thoma.cc}}

ergibt: www @ www.thoma.cc ( B, 0 downloads) xyz @ www.thoma.cc ( B, 0 downloads) dns @ www.thoma.cc ( B, 0 downloads) zxy @ www.thoma.cc ( B, 0 downloads)

Nur Text

{{sos>tcp:www.thoma.cc:80:n}}
{{sos>tcp:www.thoma.cc:801:n}}
{{sos>udp:www.thoma.cc:53:n}}
{{sos>udp:www.thoma.cc:3232:n}}

ergibt: n ( B, 0 downloads) n ( B, 0 downloads) n ( B, 0 downloads) n ( B, 0 downloads)

Text mit Beschreibung

{{sos>tcp:www.thoma.cc:80:n| www @ www.thoma.cc}}
{{sos>tcp:www.thoma.cc:801:n| xyz @ www.thoma.cc}}
{{sos>udp:www.thoma.cc:53:n| dns @ www.thoma.cc}}
{{sos>udp:www.thoma.cc:3232:n| zxy @ www.thoma.cc}}

ergibt: www @ www.thoma.cc ( B, 0 downloads) xyz @ www.thoma.cc ( B, 0 downloads) dns @ www.thoma.cc ( B, 0 downloads) zxy @ www.thoma.cc ( B, 0 downloads)

Ping Tool Plugin

Mit diesem Tool können Sie per Webschnittstelle ping ausführen.

Anforderungen

Ping Tool benötigt PEAR.

  • Folgende PEAR Pakete müssen installiert sein
    • Net_Ping 1.45 oder neuer

Download

Folgende Versionen sind verfügbar:

Installation

Variante 1: Pluginmanager

Die URL vom Download in den Pluginmanager reinkopieren und Installieren anklicken.

Variante 2: Manuell

Den Inhalt des .tgz in lib/plugins kopieren.

Einbinden in die Webseite

An der gewünschten Stelle folgendes einfügen:

~~ping~~

Empfehlenswert ist das Abschalten des Caches. Am Anfang der Webseite folgendes einfügen.

~~NOCACHE~~

Traceroute Query Tool Plugin

Mit diesem Tool können Sie per Webschnittstelle traceroute ausführen.

Anforderungen

Traceroute Query Tool benötigt PEAR.

  • Folgende PEAR Pakete müssen installiert sein
    • Net_Traceroute 0.21.1 oder neuer

Download

Folgende Versionen sind verfügbar:

Installation

Variante 1: Pluginmanager

Die URL vom Download in den Pluginmanager reinkopieren und Installieren anklicken.

Variante 2: Manuell

Den Inhalt des .tgz in lib/plugins kopieren.

Einbinden in die Webseite

An der gewünschten Stelle folgendes einfügen:

~~trace~~

Empfehlenswert ist das Abschalten des Caches. Am Anfang der Webseite folgendes einfügen.

~~NOCACHE~~

Whois Query Tool Plugin

Whois Abfragen für Dokuwiki.

Download

Downloads

Installation

Variante 1: Pluginmanager

Die URL vom Download in den Pluginmanager reinkopieren und Installieren anklicken.

Variante 2: Manuell

Den Inhalt des .tgz in lib/plugins kopieren.

Einbinden in die Webseite

An der gewünschten Stelle folgendes einfügen:

~~whois~~

Empfehlenswert ist das Abschalten des Caches. Am Anfang der Webseite folgendes einfügen.

~~NOCACHE~~

Heise RSS Feed Plugin

Aktuelle Heise News für Dokuwiki.

Hinweis von der Heise Webseite

Wir gestatten anderen Websites (widerruflich) die kostenfreie Übernahme unserer News-Headlines mit aktiven Links auf unsere News-Artikel. Diese dürfen jedoch nicht in Frames dargestellt werden, sondern müssen ein neues Browser-Fenster öffnen. Sie können bei der Übernahme der Überschriften auf folgende Dateien zurückgreifen.

Download

Installation

Variante 1: Pluginmanager

Die URL vom Download in den Pluginmanager reinkopieren und Installieren anklicken.

Variante 2: Manuell

Den Inhalt des .tgz in lib/plugins kopieren.

Einbinden in die Webseite

An der gewünschten Stelle folgendes einfügen:

~~heise~~

Empfehlenswert ist das Abschalten des Caches. Am Anfang der Webseite folgendes einfügen.

~~NOCACHE~~

Anzahl der News einstellen

In der Datei lib/plugins/heise/syntax.php folgenden Parameter ändern:

// Wieviel News soll er anzeigen
$show_news = 20;