[PHP-Skript] Anzahl der Zugriff beschränken

Cyperdrache

Grünschnabel
Hallo,

ich stehe mal wieder vor einem problem.

Ich habe eine PHP-Datei geschrieben für eine viel besuchte Seite. Das Problem ist der Skript wird zu oft ausgeführt.

Ich suche eine möglichkeit zu sagen:

Pro 3 Sekunden darf nur einer zur zeit drauf zu greifen.

Wie gesagt, die Seite ist viel besucht und daher, dauern MYSQL-Einträge zu lange.

LG. Dennis
 
Problem ist, ich kann nur auf die PHP-Seite und ich bin relativ neu im PHP Bereich

Wenn du mir mal zeigen könntest wie das aussehen soll, wäre es super

LG. Dennis
 
Dann versuch es über Session: Lege in der Session den Zeitstempel der letzten Anfrage ab und wenn die Differenz zwischen der letzten Abfrage und dem aktuellen Zeitstempel bspw. kleiner 3 ist, dann wird die Anfrage beendet. Beispiel:

PHP:
<?php
// Session einschalten
session_start();

// Vorinitialisieren
$last_access = 0;
// Prüfen, ob schon ein Zugriff statt gefunden hat, wenn ja, letzten Zeitstempel holen
if(isset($_SESSION['last_access'])) {
  $last_access = (int)$_SESSION['last_access'];
}

// Prüfen ob letzter Zeitstempel vor weniger als 3 Sekunden gesetzt wurde, 
// wenn ja Meldung ausgeben und beenden
if($last_access && (time() - $last_access < 3)) {
  die("Zu schneller Zugriff");
}

// Aktuellen Zeitstempel setzen
$_SESSION['last_access'] = time();

// Ab hier kommen die eigentlichen Datenbank-Abfragen....
?>
 
Wenn du das Script so in dein PHP-Script einfügst, das die Datenbank-Abfragen macht, brauchst du nichts weiter zu definieren. $_SESSION ist die Superglobale Variable für Session-Daten. Sobald session_start() aufgerufen wurde, kannst du darin Daten ablegen, die, wenn die Seite fertig geparst und an den Client (Browser) gesendet wurden, auf dem Webserver gespeichert werden, damit sie beim nächsten session_start() wieder geladen werden können. Wenn du mehr darüber wissen willst, solltest du diese Seite anschauen:

http://www.usegroup.de/software/phptutorial/sessions.html
 
Zurück