Forum phpBB3 autenticazione da form remoto

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.

Vuoi lasciare un tuo commento?

Attenzione: L'approvazione e l'invio del commento potrebbero avere dei ritardi, quindi, dopo aver premuto il pulante "Invia Commento" attendi.


*