Da ich dies aus beruflichen Gründen verwenden muss, habe ich einige Nachforschungen angestellt.
Die Hauptidee besteht darin, zuerst die Benutzer-ID und eine Sitzungs-ID in Cookies einzufügen und dann die Sitzungs-ID und die Benutzer-ID in die Sitzungstabelle in der Datenbank einzufügen. Wenn Sie das Forum öffnen, überprüft das System, ob die COOKIES-Informationen mit den Informationen in der Datenbank übereinstimmen. Wenn sie identisch sind, kann eine automatische Anmeldung wie folgt durchgeführt werden:
<?php
//Erhalte eine zufällige 32-Bit-SESSIONID
//Jeden Wert initialisieren
$Session_testId=create_sess_id(32);
$SessionIp='192.168.0.100';
$cookie_path='/';
$cookieName='phpbb3_1w36a';
$userBrowserInfo= $_SERVER["HTTP_USER_AGENT"];
$userIpAdd=$_SERVER["REMOTE_ADDR"];
//Benutzernamen und Passwort des Formulars abrufen
$cmd_username=$_POST["Benutzername"];
$cmd_password=$_POST["password"];
//Überprüfen Sie zuerst mit der CMS-Systemtabelle, ob die ID in der BBS-Benutzertabelle des entsprechenden Benutzernamens abgefragt wird
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$selectUid="select user_id from bbs_users where username='$cmd_username'";
$uidResult=mysql_query($selectUid);
$userId=null;
while($row1 = mysql_fetch_array($uidResult, MYSQL_NUM))
{
$userId=$row1[0];
}
//echo $userId;
mysql_close($link);
//Benutzer-ID-Informationen in Cookies einfügen
setcookie($cookieName.'_u',$userId,time()+100000000,$cookie_path,$SessionIp,false);
//SessionID-Informationen in Cookies einfügen
setcookie($cookieName.'_sid',$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//Sitzungsinformationen in die Tabelle phpb_sessions einfügen
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$sqlcommand="insert into bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.=" Werte('$Session_testId',$userId,'".time()."','".time()."','".time()."','$userIpAdd', '$userBrowserInfo','index.php')";
//echo $sqlcommand;
mysql_query($sqlcommand);
mysql_close($link);
//Erzeuge eine 32-Bit-Zufallszahl
Funktion create_sess_id($len=32)
{
// Mikrosekunden der aktuellen Zeit abrufen
list($u, $s) = eXPlode('', microtime());
$time = (float)$u + (float)$s;
// Eine Zufallszahl generieren
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
//Sitzungs-ID generieren
$sess_id = md5( md5($time). md5($rand_num) );
//Die SessionID abfangen, die die erforderliche Länge angibt
$sess_id = substr($sess_id, 0, $len);
return $sess_id;
}
header("Standort: http://192.168.0.100/bbs/index.php ");
//print_r($_COOKIE);
?>
Auf diese Weise kann eine automatische Anmeldung erreicht werden.
Dies reicht jedoch nicht aus, um Benutzer in PHPBB daran zu hindern, Kontoinformationen zu ändern und neue Benutzer zu registrieren
das Verzeichnis phpbb3rc2stylesprosilvertemplate Löschen Sie auf der folgenden .ucp_register.html-Vorlagenseite den darin enthaltenen Inhalt und fügen Sie dieses
<script type="text/javascript" language="javascript">
hinzu
window.location='member.php';
</script>
Wenn der Benutzer auf „Registrieren“ klickt und nach dem Lesen der Bedingungen auf „Registrieren“ klickt, springt er zur Registrierungsseite auf der Website. Die Methode zum Ändern der Informationen ist grundsätzlich
nicht
dieselbeVereinheitlichen Sie stattdessen die Benutzertabelle.
Geben Sie bei der Registrierung eines Benutzers auf der Website gleichzeitig Benutzerinformationen in die Benutzertabelle und die Benutzergruppentabelle ein.
Berechtigungen und fügen Sie die entsprechenden Dinge ein, sonst können Sie sich möglicherweise nicht anmelden. Probleme wie das Nichtändern der Nachricht und das Nichtlesen des Forums. Dieser Teil ist relativ lang und einfach, daher wird der Code weggelassen Hauptsächlich der Login-Teil.