Auge: $_POST von Fremden Server wird verarbeitet

Beitrag lesen

Hallo

Admin-Backend steht das Formular:

<form action="/" method="post">

<input type="submit" name="cachecleaner" value="Cache säubern" />
</form>

  

> Ich werde dass ganze jetzt noch um ein input-hidden erweitern; aber wie könnte ich dass noch mit einer Authentifizierung lösen?  
  
Wenn du dich gegenüber dem Webserver per .htaccess authentifizierst, wird der Benutzername bei jedem Seitenzugriff an den Server übermittelt, solange der Browser nicht geschlossen wird. So weit, so klar. Aus dem Array $\_SERVER ist der Benutzername auslesbar. Es gibt zwei Möglichkeiten, wie der Schlüssel heißt, das kommt, wenn ich nicht irre, darauf an, ob PHP als Modul oder CGI läuft. Schau einfach in die Ausgabe von phpinfo(), die innerhalb deines Admin-Backends aufgerufen wird.  
  
Danach sollte dein Cachelöscher etwa so aufgerufen werden:  
  
~~~php
if (isset($_POST['cachecleaner'])  
   and $_POST['cachecleaner']=='Cache säubern'  
   and !empty($_SERVER['AUTH_USER'])  
   and $_SERVER['AUTH_USER']=='Malcolms_Benutzername'  
   // 'AUTH_USER' ist eine der Möglichkeiten, wie der Schlüssel heißen kann)  
   {  
   $smarty->clear_all_cache();  
   }

Die Voraussetzung wäre allerdings, dass dieser Aufruf innerhalb des Admin-Backends aufgerufen wird.

Die Function $smarty->clear_all_cache(); Funktioniert nur, wenn ich sie auf der „index.php“ aufrufe und nicht über das „Admin-Backend“ (ansonsten hätte ich dieses Problem nicht).

Blöde Frage: Warum geht das nur so?

Tschö, Auge

--
Die deutschen Interessen werden am Liechtenstein verteidigt.
Veranstaltungsdatenbank Vdb 0.2