'; //Hier kann die CSS-Class Bezeichnung definiert werden, welche //bei jedem Hyperlink hinzugefügt wird. Zum Beispiel //... //(Diese Einstellung ist optional) $BACKLINK_SELLER['HYPERLINK_CLASS'] = ''; //URL, die zu der Seite Ihrer Webpräsenz führt (z.B. http://www.example.com/my_page/) //(Die Defaulteinstellung muss in den meisten Fällen nicht geändert werden) $requestUri = $_SERVER['REQUEST_URI']; if(substr($requestUri, 0, 1) == '/') {$requestUri = substr($requestUri, 1);} //remove leading slash $requestUri = str_replace('http://www.internet-navigator.eu/', '', $requestUri); //make sure that request uri is without domain $BACKLINK_SELLER['PAGE_URL'] = 'http://www.internet-navigator.eu/' . $requestUri; //Mit einem aktivierten Caching wird der zurückgegebene HTML-Code //in einer Datei für mindestens eine Stunde gespeichert. //Bitte definieren Sie auch einen gültigen Dateipfad (siehe weiter unten) //ACHTUNG: WIR EMPFEHLEN DAS CACHING ZU AKTIVIEREN, DA DIES DIE //ZUGRIFFSZEITEN IHRER WEBSEITE ERHÖHT. AUSSERDEM BESEITIGT DAS AKTIVIERTE //CACHING EINIGE TIMEOUT-PROBLEME, FALLS UNSER SERVER VORÜBERGEHEND NICHT ZUR VERFÜGUNG STEHT. $BACKLINK_SELLER['CACHING_ENABLED_FLAG'] = true; //true (aktiviert) oder false (deaktiviert) //Dateipfad zu der Caching-Datei. //Für jede URL wird eine solche Datei angelegt //ACHTUNG: DIESE DATEI MUSS SCHREIB- UND LESE-RECHTE BESITZEN. //SIE KÖNNEN DIESE RECHTE ÜBER DIE CHMOD-EINSTELLUNG SETZEN. //BITTE KONFIGURIEREN SIE AUCH EINEN UNTERVERZEICHNIS, IN DEM DIESE //CACHE-DATEIEN ERSTELLT WERDEN - ANSONSTEN WERDEN DIESE DIREKT IM //ROOT-VERZEICHNISS IHRER WEBPRESENZ ERSTELLT. $BACKLINK_SELLER['CACHED_FILE_PATH'] = $_SERVER['DOCUMENT_ROOT'] . '/bs-751911517-' . md5($BACKLINK_SELLER['PAGE_URL']) . '.txt'; //IP von dem Benutzer, der auf Ihre Webpräsenz zugreift $BACKLINK_SELLER['USER_IP'] = $_SERVER['REMOTE_ADDR']; if(!defined("BACKLINK_SELLER")) {define("BACKLINK_SELLER", serialize($BACKLINK_SELLER));} if(!in_array('BacklinkSeller', get_declared_classes())) //if not already declared { class BacklinkSeller { var $config = null; function retrieveHTML() { $this->config = unserialize(BACKLINK_SELLER); $cachingDirectory = substr($this->config['CACHED_FILE_PATH'], 0, strrpos($this->config['CACHED_FILE_PATH'], '/') + 1); if($this->config['CACHING_ENABLED_FLAG'] && is_writable($cachingDirectory)) {return $this->retrieveHTMLWithCaching();} return $this->retrieveHTMLFromServer(); } function retrieveHTMLWithCaching() { if($this->isCachedFileExpired()) { $response = $this->retrieveHTMLFromServer(); //if server is down then cache HTML response for max 48 hours if($response == 'UNABLE_TO_CONNECT' && $this->isCachedFileExpired(48)) { //backlinkseller server is still not available //in this case we empty cached file $this->writeHTMLToCachedFile(''); } else { //update cached file $this->writeHTMLToCachedFile($response); } } return $this->loadHTMLFromCachedFile(); } function retrieveHTMLFromServer() { //build request $request = '/channel.php?domain_id=' . $this->config['DOMAIN_ID'] . '&account_id=' . $this->config['ACCOUNT_ID'] . '&html_before=' . urlencode($this->config['HTML_BEFORE_BACKLINK']) . '&html_after=' . urlencode($this->config['HTML_AFTER_BACKLINK']) . '&page=' . urlencode($this->config['PAGE_URL']) . '&xhtml=1' . '&user_ip=' . $this->config['USER_IP']; if($this->config['TEST_FLAG']) {$request .= '&test=1';} if(isset($this->config['HYPERLINK_CLASS'])) {$request .= '&class=' . urlencode($this->config['HYPERLINK_CLASS']);} //try to connect to backlinkseller server @$socket = fsockopen('channel4.backlinkseller.de', 80, $errorNumber, $errorMessage, 5); if(!$socket) {return 'UNABLE_TO_CONNECT';} //retrieve response $response = null; stream_set_timeout($socket, 5); fwrite($socket, 'GET ' . $request . " HTTP/1.1\r\nHost: channel4.backlinkseller.de\r\n\r\n"); $response = fread($socket, 1000000); fclose($socket); if(strpos($response, "\r\n\r\n") !== false) {$response = trim(substr($response, strpos($response, "\r\n\r\n")));} if(!$this->config['DEBUG_FLAG']) //if debug is disabled { //if response contains any message and not HTML code as expected if(substr($response, 0, 7) == 'ERROR: ' || substr($response, 0, 4) == 'OK: ') {return '';} //do not display this message } $response = str_replace(array('\"', "\\'"), array('"', "'"), $response); //remove quotes return $response; } function writeHTMLToCachedFile($html) { $handle = fopen($this->config['CACHED_FILE_PATH'], 'w'); flock($handle, LOCK_EX); fwrite($handle, $html); flock($handle, LOCK_UN); fclose($handle); } function loadHTMLFromCachedFile() { if(file_exists($this->config['CACHED_FILE_PATH'])) {return file_get_contents($this->config['CACHED_FILE_PATH']);} return ''; } function isCachedFileExpired($hoursToLive = 1) { if(!file_exists($this->config['CACHED_FILE_PATH'])) {return true;} if(filemtime($this->config['CACHED_FILE_PATH']) < time() - (60 * 60 * $hoursToLive)){return true;} return false; } } } //output backlinkseller html with backlinks $backlinkseller = new BacklinkSeller(); echo($backlinkseller->retrieveHTML()); ?>

Handarbeiten/Basteln

 

Bastel & Hobbykiste

Kategorie: Hobby & Freizeit

  • Umfassendes Produktangebot mit über 9.800 Artikeln und Büchern


  • Alles zum Stricken, Sticken und Häkeln

  • enorme Kundenbindung durch Forum, Blog und wöchentlichen Newsletter

  • absolutes Spezialsortiment mit höchster Relevanz

  • durchschnittlicher Warenkorb bei knapp 50,- EUR - häufige Wiederkehr

  • laufend wechselnde Angebot

buttinette

Kategorie: Hobby & Freizeit

Im Onlineshop finden Sie ein reichhaltiges Sortiment mit über 12.000 Artikeln zum Basteln, Nähen und Handarbeiten. Des Weiteren bieten sie eine eine große Auswahl an Stoffen und Wolle. Das Riesenangebot an Karnevalskostümen-und zubehör ist das ganze Jahr über verfügbar. Jeden Montag erscheinen die ?Schnäppchen der Woche` und am Monatsanfang die ?Monatsknüller`. Großen Wert legt buttinette auf ihren TopService: 14-tägiges Umtausch- und Rückgaberecht, Meterwaren-Service, verschiedene Zahlungsmöglichkeiten, u.a. auch per Rechnung u.v.m.