Reload-Sperre
Toeb
- php
0 bleicher0 Toeb0 Jan Feddersen0 Toeb
Hallo zusammen und einen schönen Sonntag,
ich stehe vor einem Problem. Und zwar möchte ich eine Seite erstellen, auf der die Benutzer alles mögliche separat auswählen können, aber jeweils nur einmal. D.h. hat der Benutzer eine Sache bestätigt und versucht dies noch einmal, muss eine Meldung kommen in der Art "Du kannst nicht zweimal bestätigen".
Erst dachte ich an eine IP-Sperre, die ich auch schon hatte, aber dann ist mir eingefallen, dass alle diejenigen, die hinter einem Proxy sitzen und mehrere Personen, die über einen Router gehen ein Problem haben.
Also fällt IP Sperre schon einmal weg. Dann dachte ich an Sessions. Da es aber auf der Seite viele Sachen zum "einmal" klicken geben soll, müsste ich mit Cookies arbeiten, da ich nicht permanent alle möglichen Session-IDs über den Link mitgeben kann. Wenn der Benutzer jetzt keine Cookies zulässt, sieht es wieder schlecht aus.
Kann mir vielleicht jemand helfen und einen möglichen Lösungsansatz nennen, oder besser ein Tutorial?
Hier mal mein Probeweise gebastelter Code, der mit Cookies arbeiten sollte. Ist dieser in dieser Form eigentlich in Ordnung?
// Lebensdauer setzen und Session sarten
session_set_cookie_params(60);
session_start();
// Überprüfen, ob test1 oder test2 übergeben wurde
if ( isset($_GET['test1']) )
{
if(!isset($_SESSION['test1']))
{
echo "<br />Jetzt wird eine Aktion 1 ausgeführt<br />";
$_SESSION['test1'] = true;
} else {
echo "<br />Eine Minute für Test 1 warten<br />";
}
}
if ( isset($_GET['test2']) )
{
if(!isset($_SESSION['test2']))
{
echo "<br />Jetzt wird eine Aktion 2 ausgeführt<br />";
$_SESSION['test2'] = true;
} else {
echo "<br />Eine Minute für Test 2 warten<br />";
}
}
?>
<a href="test.php?test1=t1">Test1</a><br />
<a href="test.php?test2=t2">Test2</a>
Schonmal vielen Dank im voraus und noch einen schönen Sonntag Abend.
Gruß Tobias
Grüße,
es ist nicht möglich einen Benutzer 100% zu identifizieren, anlegen von Benutzerkonten mit Passwortzugang ist das Maximalerreichbare, eher du zu fortschrittlicheren Methoden (offline nehmen des COntents) greifen müsstest.
MFG
bleicher
Danke bleicher,
an diese Lösung dachte ich auch gerade. Einfach in einer Datenbank festhalten, wer welche Aktion getätigt hat. D.h. Login ist Pflicht.
Danke dir. Falls es trotzdem noch ein paar Tipps diesbezüglich geben sollte, freue ich mich über jeden Beitrag.
Mal nebenbei, kennt jemand eine gute Seite, oder Tutorial, welches erklärt wie man einen einfach Reload eines Teilbereiches einer Website mittels Ajax erreicht?
Gruß Tobias
Wegen des Logins in Ajax:
http://xajaxproject.org/en/docs-tutorials/
Dort Processing with Forms
und dann ne Xbelibige Session handling oder sowas in PHP ... ist recht simpel
--------------
IT & PR - Fenebris.com
janfeddersen _at_ dunkelnetz _dot_ de
Kredite, Umschuldung, Finanzen
Danke dir Jan für die Info!
Auf meiner Seite werden nur registrierte Personen aggieren können, wie von bleicher vorgeschlagen. Hierfür habe ich eine neue Tabelle in der DB angelegt in der jede mögliche Aktion als Spalte vorliegt.
tableAction {id_user, aktion1, aktion2,...}
Beim Anlegen eines Users werden die Werte der Spalten auf NULL gesetzt und bei jeder getätigten Aktion wird die jeweilige Spalte den Wert 1 erhalten.
So kann jederzeit überprüft werden, welche Aktion getätigt wurde und welche nicht.
Nochmal danke für die Ajax Seite, die werde ich mir bei Gelegenheit mal genauer anschauen, da besteht noch reichlich Bedarf bei mir ;)
Liebe Grüße und guten Wochenstart, Tobias
PS: vielleicht kann mein Vorgehen auch noch jemand anderem helfen^^
Fals du noch fragen zum xajax framework hast, kannste mich gerne fragen ... benutz das mitlerweile recht viel weils simple und effizient ist. Ich benutz die Combo Smarty/xajax ...
schreib sonst einfach ne mail :)
--------------
IT & PR - Fenebris.com
janfeddersen _at_ dunkelnetz _dot_ de
Kredite, Umschuldung, Finanzen