Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
Es besteht die Möglichkeit, den Browser ein Fenster öffnen zu lassen, in dem Name und Passwort eingetragen werden müssen. Dies jedoch nur dann, wenn PHP als Modul und nicht als CGI läuft.
Die Umsetzung stellt sich recht einfach dar:
<?php
if($PHP_AUTH_USER!="Matthias" OR $PHP_AUTH_PW!="Kannen") {
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="Privatezone"');
echo "Sie haben den Vorgang abgebrochen!";
exit;
}
?>
<html>
<head>
<title>Privatzone</title>
</head>
<body>
<h1>Hier ist die Privatzone von </h1>
<h2>
<?php
echo "Benutzer: ".$PHP_AUTH_USER." Passwort: ".$PHP_AUTH_PW;
?>
</h2>
</body>
</html>
Bild 8.1: Login-Fenster
Bild 8.2: Privatzone des Anwenders
Beim ersten Aufruf sind beide Variablen $PHP_AUTH_USER und $PHP_AUTH_PW nicht gesetzt. Hierdurch wird der Abschnitt der IF-Anweisung bearbeitet. In diesem werden die beiden Header zurückgegeben, die den Browser veranlassen, nach dem Benutzernamen und dem Passwort zu fragen. Die Bezeichnung für den Privatbereich können Sie nach Belieben anpassen, sämtliche übrigen Bestandteile des Headers sollten Sie genauso übernehmen. Die echo-Anweisung wird lediglich dann ausgegeben, wenn der Anwender bei der Passwortabfrage auf Abbrechen klickt oder im Falle des Internet Explorers drei Versuche, sich zu authentifizieren, misslungen sind. Dann springt der Webserver nach dem echo aus der Datei und der Rest wird nicht mehr ausgegeben. Sollte der Anwender jedoch das korrekte Passwort mit dem korrekten Benutzernamen eingeben, wird der Bereich innerhalb der IF-Anweisung nicht bearbeitet und der Rest der Datei interpretiert.
Sollten Sie auf Nummer sicher gehen wollen, sollten Sie die globalen Servervariablen $_SERVER wie folgt einbinden: