maggio
14
Forum phpBB3 autenticazione da form remoto
Inserito In: Php Scritto da Luca Bottoni
In questo breve articolo vediamo come sia possibile eseguire un’autenticazione al forum phpbb3 inviando i dati da un proprio form a un nostro forum. Questo mi è stato utile nel fare in modo che da un’applicativo potessi eseguire l’autologon senza dover richiedere i dati all’utente.
form.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento senza titolo</title> </head> <body> <form action="http://mioforum.it/login.php" method="POST"> <input type="text" name="username" size="16" maxsize="25" value="miauser"> <br> <input name="password" type="password" value="12345678" size="16" maxsize="25"> <input type="submit" value="Invia" name="login"> </form> </body> </html>
nel vostro forum create il file login.php
//setto le librerie minime di phpBB
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_kill();
$user->session_begin();
//Meglio se eseguite un parsing delle $_POST per
//evitare injection
//meglio ancora se le post sono cifrate
if(isset($_POST["username"]) && isset($_POST["password"]))
{
$return=$auth->login($_POST["username"], $_POST["password"], true);
if($return["status"]==LOGIN_SUCCESS)
{
@header("Location: index.php?sid=".$user->data["session_id"]);
exit;
}
else{echo $return["error_msg"];exit;}
}
Chiaramente questo esempio è utile se dovete dare accesso automatico al vostro forum, non permette l’accesso automatico ai forum di terzi.
