MyBB.de Forum

Normale Version: PHP-Seite nur alle X Minuten aufrufbar
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Aloha Gemeinde,

ich suche nach einer Möglichkeit das eine MyBB-PHP-Seite (selbst erstellte Seite) nur alle X Minuten aufrufbar ist.

Also:
Member ruft Seite auf und kann darauf etwas machen
Member kann die Seite X Minuten lang nicht erneut aufrufen

Es handelt sich bei der Seite um ein Registrierungsscript für einen Gameserver und ich möchte damit unterbinden das sich ein und der selbe Member kurz hintereinander mehrere Male registrieren kann.

Jemand eine Idee? Google wirft auch nach der 25 Suche keine brauchbaren Ergebnisse.
Das könnte man doch via IP Abfrage regeln, oder nicht ?
Es gibt eine Konfiguration unter "Login und Registrierung" namens "Zeit zwischen Registrierungen". Das dürfte genau das sein, was du suchst. Wer es allerdings drauf anlegt und seine IP wechselt, der kann auch das umgehen.
(15.10.2015, 20:43)Felk schrieb: [ -> ]Es gibt eine Konfiguration unter "Login und Registrierung" namens "Zeit zwischen Registrierungen". Das dürfte genau das sein, was du suchst. Wer es allerdings drauf anlegt und seine IP wechselt, der kann auch das umgehen.

Ohne diese Funktion in einer eigenen Seite mit einzubauen, wird dies nicht funktionieren. Zeitsperren kann man mit dem nötigen wissen immer umgehen.
(15.10.2015, 20:06)MrBrechreiz schrieb: [ -> ]Das könnte man doch via IP Abfrage regeln, oder nicht ?

Das würde mich nicht weiter bringen, denn es soll nicht per IP geregelt werden sondern eher per UID, denn es ist ja durchaus möglich das Mama, Papa, Bruder, Schwester etc sich auch registrieren wollen.


(15.10.2015, 20:43)Felk schrieb: [ -> ]Es gibt eine Konfiguration unter "Login und Registrierung" namens "Zeit zwischen Registrierungen". Das dürfte genau das sein, was du suchst. Wer es allerdings drauf anlegt und seine IP wechselt, der kann auch das umgehen.

Es geht nicht um die Registrierung im Forum sondern es geht um den Zugriff auf eine PHP-Seite die ins MyBB integriert wurde und auf dieser Seite befindet sich die Registrierung für einen Gameserver.
Dann speichere doch einfach die Zeit, wenn die Seite aufgerufen wird und frage diese beim nächsten Aufruf der Seite ab?
Würde ich gerne machen, wenn ich wüsste wie man das macht^^
Am besten leg dir erstmal eine neue Tabelle in der Datenbank an, in der du die uid und die lastvisit Zeit speicherst.

Dann machst du in der Seite eine Abfrage dieser Daten und falls der user berechtigt ist, wird die Seite aufgerufen und die lastvisit Zeit in der DB aktualisiert.
Eine eigene Tabelle kannst du direkt in der Datenbank z.B. wie folgt anlegen:
Code:
CREATE TABLE IF NOT EXISTS `mybb_myspecialpage` (
`id` int(10) NOT NULL auto_increment,
`uid` int( 10 ) NOT NULL ,
`lastvisit` int( 10 ) NOT NULL,
PRIMARY KEY  (`id`)
);

Ich habe dir mal so eine Seite gebastelt....erforderlich dafür ist die oben erstellte Datenbank-Tabelle (das Präfix musst du dabei eventuell noch anpassen)

Hier nun der Inhalt der Musterseite:
PHP-Code:
<?php

define
("IN_MYBB"1);
define("KILL_GLOBALS"1);
require_once 
"./global.php";

$uid = (int)$mybb->user['uid'];

if (
$uid != 0)
{
$curtime TIME_NOW//aktuelle UNIX Zeit
$timeset 5//Zeitsperre in Minuten 

$timediff TIME_NOW-(60*$timeset); //Berechnung der Zeitunterschiede

$query $db->simple_select('myspecialpage''*'"uid = '".$uid."'");
$timecheck $db->fetch_array($query);

if(
$db->num_rows($query) == || $timediff >= $timecheck['lastvisit'])
{
if(
$db->num_rows($query) < 1)
{
$db->write_query("INSERT INTO `".TABLE_PREFIX."myspecialpage` VALUES (NULL,'$uid', '$curtime')");
}
else
{
$db->update_query("myspecialpage", array('lastvisit' => $curtime),  "uid = '".$uid."'");
}

add_breadcrumb("My Special Page""myspecialpage.php");

$template "<html>
<head>
<title>"
.$settings['bbname']." - My Special Page</title>
{$headerinclude}
</head>
<body>
{$header}
<table border=\"0\" cellspacing=\""
.$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
<thead>
<tr>
<td class=\"thead\" colspan=\"1\"><strong>My Special Page</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td class=\"trow1\" >Das kannst du nur alle 5 Minuten lesen. ;)</td> 
</tr>
</tbody>
</table>
{$footer}
</body>
</html>"
;

$template str_replace("\\'""'"addslashes($template));

eval(
"\$page = \"".$template."\";");

output_page($page); 
}
else
{
error("Du kannst die Seite nur alle ".$timeset." Minuten aufrufen.","Ooops...das klappt leider momentan nicht");
}

}
else
{
error_no_permission();


Die fertige PHP hänge ich auch noch an. Wink
Dumm ist nur, daß man dann warten muss, wenn man etwas vergessen hat, oder etwas falsch eingab (page reload). Dann muss man wieder 5 min warten. Weiterhin muss man Reg. User sein, um die Seite zu nutzen. Das heißt, man müsste sich einmal fpr das Forum Reg., um sich danach auf den Game Server Reg, zu können ? Bisl FAIL oder nicht ? Ausser es ist so gewollt Toungue
So wie ich es verstanden habe, soll es wohl auch so sein.

Das Seitenscript soll ja auch nur eine Idee sein, wie es grundsätzlich funktionieren würde. Individuelle Anpassungen müssten dann noch erfolgen.
Seiten: 1 2