Como necesito usar esto por motivos laborales, investigué un poco.
La idea principal es simular COOKIES. Primero inserte el ID de usuario y un ID de sesión en las cookies, y luego inserte el ID de sesión y el ID de usuario en la tabla de sesiones en la base de datos. Si abre el foro y el sistema verificará si la información de las COOKIES es la misma que la información en la base de datos. Si son iguales, se puede lograr el inicio de sesión automático. El código principal para la parte de inicio de sesión es el siguiente:
<?php.
//Obtiene un SESSIONID aleatorio de 32 bits
//Inicializa cada valor
$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"]
//Obtener el nombre de usuario y contraseña del formulario
$cmd_username=$_POST["nombre de usuario"];
$cmd_password=$_POST["contraseña"];
//Verifique primero con la tabla del sistema CMS, si pasa. Consulta el ID en la tabla de usuarios de BBS del nombre de usuario correspondiente
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$selectUid="seleccione user_id de bbs_users donde nombre de usuario ='$cmd_username'";
$uidResult=mysql_query($selectUid);
$ID de usuario=nulo;
while($row1 = mysql_fetch_array($uidResult, MYSQL_NUM))
{
$userId=$fila1[0];
}
//echo $identificador de usuario;
mysql_close($link);
//Insertar información de ID de usuario en Cookies
setcookie($cookieName.'_u',$userId,time()+100000000,$cookie_path,$SessionIp,false);
//Insertar información de ID de sesión en las cookies
setcookie($cookieName.'_sid',$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//Insertar información de la sesión en la tabla phpb_sessions
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$sqlcommand="insertar en bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.=" valores('$Session_testId',$userId,'".time()."','".time()."','".time()."','$userIpAdd', '$userBrowserInfo','index.php')";
//echo $sqlcommand;
mysql_query($sqlcommand);
mysql_close($enlace);
//Generar un número aleatorio de 32 bits
función create_sess_id($len=32)
{
//Obtiene los microsegundos de la hora actual
lista($u, $s) = eXPlode(' ', microtime());
$tiempo = (flotante)$u + (flotante)$s;
// Genera un número aleatorio
$núm_rand = rand(100000, 999999);
$rand_num = rand($rand_num, $hora);
mt_srand($rand_num);
$rand_num = mt_rand();
//Generar ID de sesión
$sess_id = md5( md5($hora). md5($rand_num) );
//Intercepta el ID de sesión que especifica la longitud requerida
$sess_id = substr($sess_id, 0, $len);
devolver $sess_id;
}
encabezado("ubicación: http://192.168.0.100/bbs/index.php ");
//print_r($_COOKIE);
?>
De esta manera, se puede lograr el inicio de sesión automático.
Por supuesto, esto no es suficiente. Los usuarios en PHPBB también deben tener prohibido modificar la información de la cuenta y registrar nuevos usuarios. Por ejemplo, si desea modificar el registro, puede modificarlo.
el directorio phpbb3rc2stylesprosilvertemplate En la siguiente página de plantilla .ucp_register.html, elimine el contenido que contiene y agregue este
<script type="text/javascript" language="javascript">
ventana.ubicación='miembro.php';
</script>
De esta manera, cuando el usuario hace clic para registrarse y hace clic para registrarse después de leer los términos, saltará a la página de registro en el sitio web. El método para modificar la información es básicamente el mismo
. unifique la tabla de usuarios. En cambio, cada uno tiene su propio sistema de usuario.
Al registrar un usuario en el sitio web, inserte la información del usuario en la tabla de usuarios y en la tabla de grupo de usuarios de la base de datos PHPBB al mismo tiempo.
permisos e inserte las cosas correspondientes, de lo contrario es posible que no pueda iniciar sesión. Problemas como no cambiar el mensaje y no poder leer el foro. Esta parte es relativamente larga y simple, por lo que se omite el código. principalmente la parte de inicio de sesión.