Home Sitemap Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen

Webcoding: Ein Script zur Nutzung des AWS mit SimpleXML und cURL

Voraussetzung:  Ab PHP 5.1.2 (oder höher) - SimpleXML und cURL müssen ermöglicht sein!

Das Listing auf dieser Seite entspricht einem in Teilbereichen überarbeiten Script aus 2009. Neu hinzu kam eine Zugriffskontrolle, über die ein Administrator volle Kontrolle hat. So kann er festlegen, wie viele Suchanfragen und Seitenaufrufe ein einzelner Besucher pro Browsersitzung oder pro Stunde ausführen kann. Weiterhin kam der Parameter MoreSearchResultsUrl hinzu, der von Amazon mit der API Version 2011-08-01 eingeführt wurde.
Auch ist es dem Administrator mit diesem Script möglich einzelne Angebote bzw. deren ASIN zu sperren, um gegebenenfalls auf eine Beschwerde wegen unkorrekter Angaben umgehend reagieren zu können.

Um dieses Script und den Amazon Web Services testen zu können, muss Ihr Webspace über eine neuere PHP Version (5.1.2 oder höher) verfügen. Weiterhin müssen SimpleXML sowie cURL ermöglicht sein. Bitte denken Sie daran, Sie können das Script erst testen, nach dem Sie sich bei Amazon.de als Partner und bei Amazon.com als Entwickler registriert haben. Insgesamt sind drei Kennungen erforderlich, um eine Antwort vom Amazon Server zu erhalten. Sollte bei Ihrem Webspace lediglich cURL nicht ermöglicht sein, stellen wir noch eine Alternative vor.

Navigation / Beschreibung

Da das Demo für dieses Listing weitestgehend unseren bisherigen Demos entspricht, haben wir auf ein zusätzliches Demo verzichtet.

  • Demo (aus 2009)
  • Download (Script von dieser Seite ohne Menü - Oktober 2011)

Bei der Beschreibung des Script berücksichtigen wir sowohl das Listings auf dieser Seite, als auch ein um ein Menü erweitertes Listing. Auch dieses bieten wir Ihnen als kleinen DemoShop zum Testen an. (In Kürze, geplante bis Ende Oktober 2011)

Hinweis: Obwohl die Dateien nur geparst ausgeliefert werden und der Inhalt der Dateien dadurch im Verborgenen bleibt, wurden die Dateinamen bei den dargestellten Listings geändert, damit nicht jeder Besucher gleich erfährt, in welcher Datei sich Kennwörter und Zugangsschlüssel befinden. Wenn Sie völlig sicher gehen möchten, können Sie die Datei bzw. beim DemoShop alle Dateien umbenennen, nur müssen in diesem Fall alle Include-Anweisungen angepasst werden.

Listing der Datei edittext bzw. beim DemoShop der Datei settings.php

<?php

//------ Hier muessen Sie Ihre persoenlichen Zugangsschluessel eintragen! -------------------------

#$secret_access_key = "00GEHEIM0000000";   //-- Hier Ihren geheimen Zugangs-Schlüssel eintragen
#$access_key_id     = "00PHANTASIE0000";   //-- Hier Ihre AWSAccessKeyId eintragen
#$associate_id      = "000phantasie-21";   //-- Hier Ihre Partner-Id eintragen
#$einKennwort       = "Kennwort1234567";   //-- Ein ein sicheres Kennwort ist zu vergeben!


//------ Ab hier nur bei Bedarf die Zahlenwerte oder Texte aendern! -------------------------------

$sessiwert  = 100;           // maximale Anzahl von Zugriffen pro Sitzung
$stdencount = 120;           // maximale Anzahl von Zugriffen pro Stunde von einer IP
$suchbegrl  =  32;           // maximale Laenge des eingegebenen Suchbegriffs + maxlength im Formular aendern
$tableweite = 880;           // Tabellenweite bei Bedarf anpassen

$Anbieter1  = "Verlag/Produzent";
$Anbieter2  = "Publisher/Produzent";

$titelei1 = "<span class=\"goldbraun\">Literatur / B&uuml;cher zum Thema ";
$titelei2 = " bei Amazon</span>";

$Anbieter1 = "Verlag/Produzent";
$Anbieter2 = "Publisher/Produzent";

$kommcook = "\t<p style=\"text-align: center; color: #800000\">".
            "Ihr Browser scheint keine Cookies zu akzeptieren. Wenn diese Browserfunktion<br>\n".
            "\tdeaktiviert ist, sind weder das Formular noch die Seitenlinks nutzbar!</p>\n\n";
			
$lfehler  = "Falls dieser Fehler nur einmalig auftritt, sollten Sie die Seite lediglich aktualisieren.".
            "<br>\nTritt der Fehler hingegen wiederholt auf, sollten die Gruende ermittelt und der ".
            "Fehler behoben werden!\n";

$inOrdoff = "<p style=\"text-align: center; color: #800000\">Der eingegebene Suchbegriff war ".
            "unvollstaendig<br>\noder enthielt zu viele ungueltige Zeichen!</p>\n";

$controff = "\n<p style=\"text-align: center; color: #800000\">".
            "Es erfolgten innerhalb kurzer Zeit sehr viele <em>(eventuell automatisierte)</em> ".
            "Seitenaufrufe<br>\noder Suchanfragen. Aus diesem Grund wurde die Suchfunktion ".
            "vor&uuml;bergehend deaktiviert.<br>\nGern k&ouml;nnen Sie diese Seite zu einem ".
            "sp&auml;teren Zeitpunkt erneut </p>\n";

$varcoff1 = "<p style=\"text-align: center; color: #800000\">".
            "Von der von Ihnen benutzten IP-Adresse ";
			
$varcoff2 = " kamen innerhalb kurzer Zeit sehr <br>\n".
            "viele <em>(eventuell automatisierte)</em> Suchanfragen. Aus diesem Grund wurde die ".
            "Suchfunktion<br>\nvor&uuml;bergehend deaktiviert. Gern k&ouml;nnen Sie diese Seite zu ".
            "einem sp&auml;teren Zeitpunkt erneut<br>\nbesuchen.</p>\n";			
?>

Listing der eigentlichen Datei shop.php

<?php 
ini_set("session.use_trans_sid", "0");
session_start();

/*-------------------------------------------------------------------------------------------------
 ItemPage >= 1 - Es werden alle Seiten gecrawlt, die sich ohne eine Formulareingabe aufrufen lassen. 
 ItemPage >= 2 bis 10 - Es werden bei Suchanfragen 1 bis 10 Ergebnisseiten gecrawlt. 
 Dieser Wert sollte mit bedacht gewaelht werden, um keinen Clone zu erzeugen.
 --------------------------------------------------------------------------------------------------
*/
if ($_GET["ItemPage"] >= 1){$robots = "noindex,nofollow";}
else {$robots = "index,follow";}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Ein Demo mit cURL, Cache und Zugriffskontrolle</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="demo.css">
<meta name="robots" content="<?php echo $robots; ?>"> 
</head>

<body>

<h1 style="text-align: center">Ein Demo mit cURL, Cache und Zugriffskontrolle</h1>
<div align="center"><center>

<?php

//------ Rubrik und Thema vorwaehlen, damit Seite nicht leer ladet! -------------------------------

$dierubrik = "Books";     //-- Eine Rubrik eintragen, z.B. Books oder Tools
$meinthema = "Internet";  //-- Ein Suchwort, Thema, Titel oder Autor eintragen

if (file_exists("edittext.php")) {include ("edittext.php");
       } 
else {echo "Die gesuchte Datei ist nicht vorhanden";
       } 

/*-------------------------------------------------------------------------------------------------
 Abfrage ob bei Bentuzung des Formulars oder eines Seitenlinks ein Sessions-Cookie angenommen wurde. 
 Falls nicht, so wird weiter unten ein Hinweis ausgegeben.
 --------------------------------------------------------------------------------------------------
*/
if ($_GET["Keywords"]){

    if(!isset($_SESSION["Kennung"]) or $_SESSION["Kennung"] != $einKennwort){$kommentar = "on";
}}

//------ Funktion um unnoetige HTML-Tags aus 'Beschaffenheit' zu entfernen. -----------------------

function noTags($htmltags) {

	$eingg = array("<b>","</b>","<i>","</i>");
	$ausgg = array("","","","");
	$htmltags = str_replace($eingg,$ausgg,$htmltags);

return $htmltags;
}
//------ Der Briefkasten vom Formular mit Umwandlung der Umlaute ----------------------------------

if ($_GET["Keywords"] and $_SESSION["Kennung"] == $einKennwort and $_SESSION["scounter"] < $sessiwert) {

  $SearchIndex = $_GET["SearchIndex"];
  $Keywords    = $_GET["Keywords"];
  $ItemPage    = $_GET["ItemPage"];

  $eingang = array("Ä","ä","Ö","ö","Ü","ü","ß");
  $ausgang = array("Ae","ae","Oe","oe","Ue","ue","ss");
  $umlaute = str_replace($eingang,$ausgang,$Keywords);

  $umlaute  = preg_replace("/[^a-zA-Z0-9-]/", " ", $umlaute);
  $umlaute  = trim($umlaute);
  $fuerform = $umlaute;

  $umlaute     = preg_replace("/[ ]/", "+", $umlaute);   
  $SearchIndex = preg_replace("/[^a-zA-Z]/", "no", $SearchIndex);
  $ItemPage    = preg_replace("/[^0-9]/", "1", $ItemPage);
}
  else {$SearchIndex = $dierubrik;
        $umlaute     = $meinthema;
        $ItemPage    = 1;
        $fuerform    = " ";
       }

  $laengevon  = strlen($umlaute);

  if ($laengevon > $suchbegrl) {$umlaute  = substr($umlaute, 0, $suchbegrl);
     }
  if ($laengevon >  2) {$inOrdnung = "on";
     }
    else {$inOrdnung = "off";
	    } 

//------ Das Kennwort fuer die Session darf erst unterhalb des Briefkastens uebergeben werden! ----

if (!isset($_SESSION["Kennung"])) {$_SESSION["Kennung"]  = $einKennwort;
                                   $_SESSION["scounter"] = 0;
}
if ($_SESSION["scounter"] < $sessiwert) {$sessicontrol = "on";}

   else {$sessicontrol = "off";}

   $_SESSION["scounter"]++;

/*-------------------------------------------------------------------------------------------------
 Zusaetzliche Zugriffskontrolle um automatisierte Suchanfragen einzuschraenken. Zuerst werden die 
 bisherigen Eintraege aus der Kontrolldatei eingelesen und ein neuer Eintrag wird hinzugefuegt.
 Sollte der Hinweis - Fehler beim Schreiben in Visitcontrol! - ausgegeben werden, sind fuer den
 Ordner ablage CMOD-Rechte zu vergeben.
 --------------------------------------------------------------------------------------------------
*/
date_default_timezone_set("Europe/Berlin");

     $ip_von = $_SERVER["REMOTE_ADDR"];
     $controldatei = "ablage/visitscontrol.txt";
     $speichertime = time();
     $controlzeit  = $speichertime -3600;

if (file_exists($controldatei)){

@$fuercontrol = fopen($controldatei,"r") or die ("Fehler beim Oeffnen von Visitcontrol!");

    while(!feof($fuercontrol)) {

    $eintraege = fgets($fuercontrol, 100);
    $eintraege = preg_replace("/[^a-zA-Z0-9_.:&=-]/", "+", $eintraege);	 

		parse_str($eintraege);

		if ($proStunde > $controlzeit){

                    $gesamt_stunde[] = $ipad;

                    $alterstring .= trim("proStunde=".$proStunde."&ipad=".$ipad)."\n";

	unset($proStunde);
	unset($ipad); 
   }
} 
fclose($fuercontrol);
}

$neuerstring = trim("proStunde=".$speichertime."&ipad=".$ip_von)."\n";

@file_put_contents($controldatei,$alterstring.$neuerstring) or die ("Fehler beim Schreiben in Visitcontrol!");

@$zaehlips = array_count_values($gesamt_stunde);
$gstunden  = count($gesamt_stunde); 


/*-------------------------------------------------------------------------------------------------
 Erst wenn mehr Zugriffe als vorgewaehlt in einem kurzen Zeitraum erfolgten, wird dieser Teil der 
 Zugriffskontrolle aktiv und gegebenenfalls fuer eine einzelne IP der Zugriff voruebergehend gesperrt.
 Die Voreinstellung von 50 kann erhoeht oder verringert werden, wobei beide Werte gleich sein sollten.
 --------------------------------------------------------------------------------------------------
*/

if ($gstunden >= $stdencount){

         foreach ($zaehlips as $checkips => $sperrwert) {

         if ($sperrwert >= $stdencount) {$ipArray[] = trim($checkips);}
         } 
         }

         $Anzahl = count($ipArray); 

             if ($Anzahl >= 1) {

                 if (in_array($ip_von, $ipArray)) {$varcontrol = "off";
                     }
                     else {$varcontrol = "on";

                     }} else {$varcontrol = "on";} 


//------ Hier erhalten die Kategorien ihren deutschen Namen. --------------------------------------

$deutsche = array("Books"              => "B&uuml;cher",
                  "Music"              => "Musik",
                  "DVD"                => "DVDs",
                  "Toys"               => "Spielwaren &amp; Modellbau",
                  "OutdoorLiving"      => "Hobby &amp; Freizeit",
                  "Software"           => "Software",
                  "Tools"              => "Werkzeug",
                  "SoftwareVideoGames" => "Video &amp; PC Spiele",
                  "HomeGarden"         => "Haus &amp; Garten",
                  "Kitchen"            => "Haushalt",
                  "Photo"              => "Fotografie",
                  "Electronics"        => "Elektronik");

$DErubrik = $deutsche[$SearchIndex];

//------ Die Titelzeile ---------------------------------------------------------------------------

echo "\t<p style=\"text-align: center\">".$titelei1.$umlaute.$titelei2."</p>\n\n";

     if ($kommentar == "on"){echo $kommcook;}

/*-------------------------------------------------------------------------------------------------
 Eine Funktion fuer ein Formular und das obere Suchformular. Falls nur ein Formular erwuenscht, so 
 einfach eine der beiden Ausgaben "echo formularFELD" loeschen. Moeglichst vorher eine 
 Sicherungskopie vom Script anlegen.
 --------------------------------------------------------------------------------------------------
*/

function formularFELD($Suchoption,$SearchIndex,$DErubrik,$fuerform){

$MyForm = "\t<form name=\"".$Suchoption."\" action=\"".basename($_SERVER["PHP_SELF"])."\" method=\"get\" accept-charset=\"iso-8859-1\">\n".
          "\t<select name=\"SearchIndex\">\n".
          "\t<option value=\"".$SearchIndex."\">".$DErubrik."</option>\n".
          "\t<option value=\"Books\">B&uuml;cher</option>\n".
          "\t<option value=\"DVD\">DVD</option>\n".
          "\t<option value=\"Music\">Musik</option>\n".
          "\t<option value=\"Toys\">Spielwaren</option>\n".
          "\t<option value=\"OutdoorLiving\">Hobby &amp; Freizeit</option>\n".
          "\t<option value=\"Software\">Software</option>\n".
          "\t<option value=\"Tools\">Werkzeug</option>\n".
          "\t<option value=\"SoftwareVideoGames\">Video &amp; PC Spiele</option>\n".
          "\t<option value=\"HomeGarden\">Haus &amp; Garten</option>\n".
          "\t<option value=\"Kitchen\">Haushalt</option>\n".
          "\t<option value=\"Photo\">Fotografie</option>\n".
          "\t<option value=\"Electronics\">Elektronik</option>\n".
          "\t</select>\n\n\t&nbsp; Eingabe: \n\n".
          "\t<input type=\"text\" name=\"Keywords\" value=\"".$fuerform."\" size=\"30\" maxlength=\"30\">\n".
          "\t<input type=\"hidden\" name=\"ItemPage\" value=\"1\">\n".
          "\t<input type=\"submit\" value=\"Suchen\">\n".
          "\t</form>\n\n";

return $MyForm;
}

$Suchoption = "SuchoptionO";

echo formularFELD($Suchoption,$SearchIndex,$DErubrik,$fuerform);


echo "\t<hr style=\"margin-top: 20px; color: #fdfcfb; background-color: #fdfcfb\">\n";

/*-------------------------------------------------------------------------------------------------
 Falls der eingebende Suchbegriff in Ordnung war, werden die restlichen Parameter gebildet und fuer 
 den Versand kodiert. Die Parameter werden dann entsprechend des Byte-Wertes ihrer Schluessel geordnet.
 --------------------------------------------------------------------------------------------------
*/

if ($inOrdnung == "on" and $varcontrol == "on" and $sessicontrol == "on"){

$aktuelle   = urlencode(gmdate("Y-m-d\TH:i:s\Z"));
$jahreszahl = explode("-", $aktuelle);

      if ($jahreszahl[0] >0) {$aktuellezeit = $aktuelle;}

         else {$datum = getdate();      // Fehlerkorrektur bei fehlender Jahreszahl siehe Beschreibung! 
               $jahr  = $datum["year"];

               $aktuellezeit = urlencode($jahr."-".gmdate("m-d\TH:i:s\Z"));
               }

$SearchIndex = urlencode($SearchIndex);
$umlaute     = urlencode($umlaute);


$alleparameter = "AWSAccessKeyId" ."=".  $access_key_id       ."&".
                 "AssociateTag"   ."=".  $associate_id        ."&".
                 "ItemPage"       ."=".  $ItemPage            ."&".
                 "Keywords"       ."=".  $umlaute             ."&".
                 "Operation"      ."=". "ItemSearch"          ."&".
                 "ResponseGroup"  ."=". "Medium"              ."&".
                 "SearchIndex"    ."=".  $SearchIndex         ."&".
                 "Service"        ."=". "AWSECommerceService" ."&".
                 "Timestamp"      ."=".  $aktuellezeit        ."&".
                 "Version"        ."=". "2011-08-01";


    $stringsigna = "GET\n"."ecs.amazonaws.de"."\n"."/onca/xml"."\n".$alleparameter;   
    $signature   = base64_encode(hash_hmac("sha256", $stringsigna, $secret_access_key, True));
    $signature_2 = urlencode($signature);


$datenneu = "http://ecs.amazonaws.de/onca/xml?".$alleparameter."&Signature=".$signature_2;


//------ Eine Funktion, um die XML per cURL anzufordern. -----------------------

function proRES($antwort){

$einAgent = $_SERVER["HTTP_USER_AGENT"];

if (isset($einAgent) and !empty($einAgent)) { 

    $einAgent = "Mozilla/5.0 (compatible; Shop/PHP; +http://www.Ihre-Domain.de/shop.php)";

	$myhoney = curl_init($antwort);

	curl_setopt($myhoney, CURLOPT_HEADER, false);
	curl_setopt($myhoney, CURLOPT_USERAGENT, $einAgent);
	curl_setopt($myhoney, CURLOPT_RETURNTRANSFER, true);

	$eingang = curl_exec($myhoney);
	$infogen = curl_getinfo($myhoney, CURLINFO_HTTP_CODE);

    curl_close($myhoney);

    if ($infogen === 200 or $infogen === 301){$antwort = $eingang;
	} 
    else {$antwort = $infogen;}
    return $antwort;

}
else {$antwort = false;}
return $antwort;
}

/*--------------------------------------------------------------------------------------------------
 Es wird ueberprueft, ob eine Cache-Datei vorhanden ist und ob diese Cache-Datei nicht leer und nicht
 aelter als eine Stunde ist.
 --------------------------------------------------------------------------------------------------
*/

$cachedatei = "ablage/".$dierubrik."-".$meinthema.".xml";
$cachezeit  = time()-3600;


if ($SearchIndex == $dierubrik and $umlaute == $meinthema and $ItemPage == 1){

    if (file_exists($cachedatei) and filesize($cachedatei) > 1024){

        if (filemtime($cachedatei) < $cachezeit){

            $datast = proRES($datenneu);

            if (strlen($datast) > 3) {

                @file_put_contents($cachedatei, $datast) or die ("F 1 - ".$lfehler);
                $daten = $datast;}

                else {exit ("HTTP Statuscode: ".$datast."\n");}

            }
            else {$daten = @file_get_contents($cachedatei) or die ("F 2 - ".$lfehler); 
			      }
    }

    else {  $datast = proRES($datenneu);

        if (strlen($datast) > 3) {

            @file_put_contents($cachedatei, $datast) or die ("F 3 - ".$lfehler);
            $daten = $datast;}

            else {exit ("HTTP Statuscode: ".$datast."\n");}
            }
}
else {$datast = proRES($datenneu);

	if (strlen($datast) > 3) {$daten = $datast;}
			
	else {exit ("HTTP Statuscode: ".$datast."\n");} 
}


//------ Die XML-Datei wird als String geladen. ---------------------------------------------------
		
$response = simplexml_load_string($daten); 


//-- Ab hier beginnt die Ausgabe. -----------------------------------------------------------------

if ($response->Items->Item) {

    echo "\n\t<table border=\"0\" width=\"".$tableweite."\" cellspacing=\"0\" cellpadding=\"0\">\n";  

foreach ($response->Items->Item as $movie) {

/*-------------------------------------------------------------------------------------------------	
 Die erste Zeile darf nur aktiviert werden, wenn Sie, aus welchen Gruenden auch immer, ein Angbot
 nicht einblenden moechten. Es lassen sich auch mehrere Angebote sperren. Auch ist es im Falle einer
 eventuellen Sperrung unbedingt erforderlich, die schliessende Klammer weiter unten zu aktivieren!
 --------------------------------------------------------------------------------------------------
*/
//  if ($movie->ASIN != XXX0000XXX){

    echo "\t<tr><td style=\"text-align: center; padding-right: 10px; padding-top: 12px; padding-bottom: 15px; ".
         "border-bottom: 1px solid #ffffff\">\n";  

//------ Das Produktfoto mit Link zur Detailseite. -------------------------------------------------

   if ($movie->MediumImage->URL){

       echo "\t<a href=\"".$movie->DetailPageURL."\" target=\"_blank\">".
             "<img src=\"".$movie->MediumImage->URL."\" border=\"0\" alt=\"Cover\"></a></td>\n";
    } 
       else { echo "\tLeider kein Bild <br> vorhanden.\n";
    }

    echo "\t<td style=\"text-align: center; padding-left: 10px; padding-top: 12px; padding-bottom: 15px; ".
         "border-bottom: 1px solid #ffffff\">\n";

//------ Die Titel von den Produkten mit Link zur Detailseite. ------------------------------------

    echo "\t<a href=\"".$movie->DetailPageURL."\" target=\"_blank\" class=\"braungold\">".
         htmlspecialchars(utf8_decode($movie->ItemAttributes->Title))."</a><br>\n"; 

//------ Autoren, Mitautoren und Uebersetzer ------------------------------------------------------

   if ($movie->ItemAttributes->Author[0]){ 
       echo "\tAutor: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[0]));
    }  else {echo "\t";
    }
   if ($movie->ItemAttributes->Author[1]){ 
       echo " - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[1]));
    }
   if ($movie->ItemAttributes->Author[2]){ 
       echo " - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[2]));
    }

//------ Verlag, Produzent, Art der Bindung, Datum ------------------------------------------------

   if ($SearchIndex == "Books") {$Anbieter = $Anbieter1;}
       else {$Anbieter = $Anbieter2;}

   if ($movie->ItemAttributes->Publisher){ 
       echo "<br>\n\t".$Anbieter.": ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Publisher));
    }  else {echo "<br>\n\t".$Anbieter.": keine Angaben";
    }
   if ($movie->ItemAttributes->Binding){ 
       echo " - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Binding))."<br>\n";
    }  else {echo "<br>\n";
    }
   if ($movie->ItemAttributes->PublicationDate){ 
       echo "\terschienen: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->PublicationDate));
    }  else {echo "\terschienen: k.A.";}

//------ Bemerkungen zur Beschaffenheit - falls vorhanden! --------------------------------------- 

   if ($movie->ItemAttributes->Feature[0]){ 
       echo "<br>\n\tBeschaffenheit: ".htmlspecialchars(utf8_decode(noTags($movie->ItemAttributes->Feature[0])));
    }  else {echo "<br>\n\tBeschaffenheit: keine Angaben";
    }
   if ($movie->ItemAttributes->Feature[1]){ 
       echo ", ".htmlspecialchars(utf8_decode(noTags($movie->ItemAttributes->Feature[1])));
    } 
   if ($movie->ItemAttributes->Feature[2]){ 
       echo ", ".htmlspecialchars(utf8_decode(noTags($movie->ItemAttributes->Feature[2])));
    } 

//------ Listenpreis bei Amazon, Neupreis und Angebotspreise Marktplatz --------------------------

   if ($movie->ItemAttributes->ListPrice->FormattedPrice){ 
       echo "<br>\n\tListenpreis bei Amazon.de: ".
             htmlspecialchars(utf8_decode($movie->ItemAttributes->ListPrice->FormattedPrice))."<br>\n";
    }  else { echo "<br>\n\tListenpreis bei Amazon.de: k.A.<br>\n";
    }
   if ($movie->OfferSummary->LowestNewPrice->FormattedPrice){ 
       echo "\tPreis: ".htmlspecialchars($movie->OfferSummary->LowestNewPrice->FormattedPrice).
            " <span class=\"graumittle\">(Marktplatz)</span>";
    }  else { echo "\tPreis: keine Angaben <span class=\"graumittle\">(Marktplatz)</span>";
    }
   if ($movie->OfferSummary->LowestUsedPrice->FormattedPrice){ 
       echo " / gebraucht erh&auml;ltlich ab: ".htmlspecialchars($movie->OfferSummary->LowestUsedPrice->FormattedPrice).
            "<br>\n\t<br>\n";
    }  else { echo " / erh&auml;ltlich ab: keine Angebote<br>\n\t<br>\n";
    }

//------ Link zur Detailseite und Ende Zellen. ----------------------------------------------------

    echo "\t<a href=\"".$movie->DetailPageURL."\" target=\"_blank\" class=\"braungold\">weitere Details</a><br>". 
         "\n\t</td></tr>\n\n";

// Schließende Klammer im Fall der Sperrung einer ASIN aktivieren! ->}

}

    echo "\t<tr><td align=\"center\" style=\"padding-left: 10px; padding-right: 10px; padding-top: 10px; ".
         "padding-bottom: 10px\" colspan=\"2\">\n\n";  		


//------- Auswertung Response --------------------------------------------------------------------- 

$ItemPage     = $response->Items->Request->ItemSearchRequest->ItemPage;
$SearchIndex  = $response->Items->Request->ItemSearchRequest->SearchIndex;
$Keywords     = $response->Items->Request->ItemSearchRequest->Keywords;
$MoreSearch   = $response->Items->MoreSearchResultsUrl;
$TotalResults = $response->Items->TotalResults;
$TotalPages   = $response->Items->TotalPages;


	if (isset($SearchIndex)) {$SearchIndex = $SearchIndex;
	}   else {echo $SearchIndex = "Fehler SearchIndex?";
	}
	if (isset($Keywords)) {$Keywords = $Keywords;}   
            else {echo $Keywords = "Fehler Keywords?";
	}
	if (isset($TotalResults)) {$TotalResults = $TotalResults;
	}   else {echo $TotalResults = "Keine Resultate?";
	}
	if (isset($TotalPages)) {$TotalPages = $TotalPages;}
            else {echo $TotalPages = "Keine Pages?";
	}
	if (isset($MoreSearch)) {$MoreSearch = $MoreSearch;
	    $MoreText = "» weitere Ergebnisse bei Amazon.de «\n";
	}   
	else {echo $MoreSearch = "#";
	           $MoreText   = "*";
	}

echo "\tSeite ".htmlspecialchars($ItemPage)." - Rubrik ".$deutsche[(string)$SearchIndex].
     " - Thema: ".htmlspecialchars($Keywords)."<br> Treffer insgesamt: ".htmlspecialchars($TotalResults).
     " auf ".htmlspecialchars($TotalPages). " Seiten<br><br>\n\n";

/*--------------------------------------------------------------------------------------------------
 Ausgabe des unteren Suchformulars. Falls nicht erwuenscht, einfach loeschen.   htmlspecialchars
 --------------------------------------------------------------------------------------------------
*/

$Suchoption = "SuchoptionU";

echo formularFELD($Suchoption,$SearchIndex,$DErubrik,$fuerform);


//------- Hier beginnt der Seitencounter. ---------------------------------------------------------

echo "\t</td></tr>\n\t<tr><td style=\"padding-top: 10px; padding-bottom: 10px\" colspan=\"2\">\n\n".
     "\t<table border=\"0\" width=\"100%\"><tr><td width=\"33%\" align=\"left\" style=\"padding-left: 20px\">\n";


$Keywords    = preg_replace("/[ ]/", "+", $Keywords);

   if ($TotalPages > 1) {

        if ($ItemPage > 1) {

        echo  "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
              "SearchIndex"."=". $SearchIndex  ."&".
              "Keywords"   ."=". $Keywords     ."&".
              "ItemPage"   ."=".($ItemPage -1)).
              "\">« zur&uuml;ck </a>\n";

        }  else {echo "\t<span class=\"zueinsam\">« zur&uuml;ck</span></td>\n";} 
        }

$scautor  = "Script von www.seo-welten.de";
$lscautor = "href=\"http://www.seo-welten.de\"";

echo "\t<td width=\"33%\" align=\"center\"><a class=\"braunklein\" ".$lscautor." target=\"_blank\">".$scautor."</a></td>\n".
     "\t<td  width=\"34%\" align=\"right\" style=\"padding-right: 20px\">\n";  


     if ($TotalPages > 1) {

        if ($ItemPage*1 < $TotalPages and $ItemPage*1 < 10) {

        echo  "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
              "SearchIndex"."=". $SearchIndex  ."&".
              "Keywords"   ."=". $Keywords     ."&".
              "ItemPage"   ."=".($ItemPage +1)).
              "\">n&auml;chste Seite »</a>\n";
			   
        }  else {echo "\t<a class=\"braungold\" href=\"".htmlspecialchars($MoreSearch)."\">".$MoreText."</a>\n";}
        }


   	echo "\t</td></tr></table>\n\n\t</td></tr></table>\n";

}
else {echo "<p style=\"text-align: center; color: #800000\">Fehler bei Item-Kontrolle</p>\n";}

/*-------------------------------------------------------------------------------------------------
 Nachfolgend die Ausgabe der Hinweise bei fehlerhaften Eingaben, automatisierten oder allgemein zu 
 haeufigen Zugriffen von einer einzigen IP-Adresse, zum Beispiel durch spielende Kinder.
 --------------------------------------------------------------------------------------------------
*/
}
elseif ($inOrdnung    == "off") {echo $inOrdoff;}
elseif ($sessicontrol == "off") {echo $controff;}
elseif ($varcontrol   == "off") {echo $varcoff1.$ip_von.$varcoff2;}

?>  
</center></div>
</body>
</html>

Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen