Parce que j'ai besoin de l'utiliser pour des raisons professionnelles, j'ai fait quelques recherches.
L'idée principale est de simuler des COOKIES. Insérez d'abord l'ID utilisateur et un ID de session dans les cookies, puis insérez l'ID de session et l'ID utilisateur dans la table des sessions de la base de données. Si vous ouvrez le forum et le système vérifiera si les informations des COOKIES sont les mêmes que les informations de la base de données. Si elles sont identiques, une connexion automatique peut être réalisée. Le code principal pour la partie connexion est le suivant :
<?php.
//Obtenir un SESSIONID aléatoire de 32 bits
//Initialise chaque valeur
$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"];
//Récupère le nom d'utilisateur et le mot de passe du formulaire
$cmd_username=$_POST["nom d'utilisateur"];
$cmd_password=$_POST["mot de passe"];
// Vérifiez d'abord auprès de la table système du CMS, si cela réussit. Recherchez l'ID dans la table utilisateur BBS du nom d'utilisateur correspondant
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$selectUid="sélectionnez user_id parmi bbs_users où 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);
//Insérer les informations d'identification de l'utilisateur dans les cookies
setcookie($cookieName.'_u',$userId,time()+100000000,$cookie_path,$SessionIp,false);
//Insérer les informations SessionID dans les cookies
setcookie($cookieName.'_sid',$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//Insérer les informations de session dans la table phpb_sessions);
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$sqlcommand="insérer dans bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.="values('$Session_testId',$userId,'".time()."','".time()."','".time()."','$userIpAdd', '$userBrowserInfo','index.php')";
//echo $sqlcommand;
mysql_query($sqlcommand);
mysql_close($lien);
// Génère un nombre aléatoire de 32 bits
fonction create_sess_id($len=32)
{
// Récupère les microsecondes de l'heure actuelle
list($u, $s) = eXPlode(' ', microtime());
$temps = (float)$u + (float)$s ;
// Génère un nombre aléatoire
$rand_num = rand(100 000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
// Générer l'ID de session
$sess_id = md5( md5($time). md5($rand_num) );
//Intercepte le SessionID qui spécifie la longueur requise
$sess_id = substr($sess_id, 0, $len);
retourner $sess_id ;
}
header("emplacement : http://192.168.0.100/bbs/index.php ");
//print_r($_COOKIE);
?>
De cette manière, une connexion automatique peut être obtenue.
Bien sûr, cela ne suffit pas. Les utilisateurs de PHPBB doivent également être empêchés de modifier les informations de compte et d'enregistrer de nouveaux utilisateurs. Par exemple, si vous souhaitez modifier l'enregistrement, vous pouvez modifier.
le répertoire phpbb3rc2stylesprosilvertemplate Dans la page de modèle .ucp_register.html suivante, supprimez le contenu à l'intérieur et ajoutez ce
<script type="text/javascript" language="javascript">
window.location='membre.php';
</script>
,
il accédera à la page d'inscription sur le site Web. La méthode de modification des informations est fondamentalement la même.
unifiez la table user. Au lieu de cela, chacun a son propre système User.
Lors de l'enregistrement d'un utilisateur sur le site Web, insérez les informations utilisateur dans la table user_group de la base de données PHPBB en même temps.
autorisations et insérez les éléments correspondants, sinon vous ne pourrez peut-être pas vous connecter. Des problèmes tels que le fait de ne pas modifier le message et de ne pas pouvoir lire le forum. Cette partie est relativement longue et simple, donc le code est omis. principalement la partie connexion.