Bonjour à tous,
J'aimerais faire une connexion à mon forum phpbb3 via un formulaire externe...
Le code:
<?php
function set_config($config_name, $config_value, $is_dynamic = false)
{}
function unique_id($extra = 'c')
{
static $dss_seeded = false;
global $config;
$val = $config['rand_seed'] . microtime();
$val = md5($val);
$config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);
if ($dss_seeded !== true && ($config['rand_seed_last_update'] < time() - rand(1,10)))
{
set_config('rand_seed', $config['rand_seed'], true);
set_config('rand_seed_last_update', time(), true);
$dss_seeded = true;
}
return substr($val, 4, 16);
}
function phpbb_hash($password)
{
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$random_state = unique_id();
$random = '';
$count = 6;
if (($fh = @fopen('/dev/urandom', 'rb')))
{
$random = fread($fh, $count);
fclose($fh);
}
if (strlen($random) < $count)
{
$random = '';
for ($i = 0; $i < $count; $i += 16)
{
$random_state = md5 (unique_id() . $random_state);
$random .= pack('H*', md5($random_state));
}
$random = substr($random, 0, $count);
}
$hash = _hash_crypt_private($password, _hash_gensalt_private($random, $itoa64), $itoa64);
if (strlen($hash) == 34)
{
return $hash;
}
return md5($password);
}
function phpbb_check_hash($password, $hash)
{
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if (strlen($hash) == 34)
{
return (_hash_crypt_private($password, $hash, $itoa64) === $hash) ? true : false;
}
return (md5($password) === $hash) ? true : false;
}
function _hash_gensalt_private($input, &$itoa64, $iteration_count_log2 = 6)
{
if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
{
$iteration_count_log2 = 8;
}
$output = '$H$';
$output .= $itoa64[min($iteration_count_log2 + ((PHP_VERSION >= 5) ? 5 : 3), 30)];
$output .= _hash_encode64($input, 6, $itoa64);
return $output;
}
function _hash_encode64($input, $count, &$itoa64)
{
$output = '';
$i = 0;
do
{
$value = ord($input[$i++]);
$output .= $itoa64[$value & 0x3f];
if ($i < $count)
{
$value |= ord($input[$i]) << 8;
}
$output .= $itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
{
break;
}
if ($i < $count)
{
$value |= ord($input[$i]) << 16;
}
$output .= $itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
{
break;
}
$output .= $itoa64[($value >> 18) & 0x3f];
}
while ($i < $count);
return $output;
}
function _hash_crypt_private($password, $setting, &$itoa64)
{
$output = '*';
// Check for correct hash
if (substr($setting, 0, 3) != '$H$')
{
return $output;
}
$count_log2 = strpos($itoa64, $setting[3]);
if ($count_log2 < 7 || $count_log2 > 30)
{
return $output;
}
$count = 1 << $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt) != 8)
{
return $output;
}
if (PHP_VERSION >= 5)
{
$hash = md5($salt . $password, true);
do
{
$hash = md5($hash . $password, true);
}
while (--$count);
}
else
{
$hash = pack('H*', md5($salt . $password));
do
{
$hash = pack('H*', md5($hash . $password));
}
while (--$count);
}
$output = substr($setting, 0, 12);
$output .= _hash_encode64($hash, 16, $itoa64);
return $output;
}
if (@$_POST['valid_form']=='1')
{
if(isset($_POST['username']) AND isset($_POST['password'])) {
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$req = mysql_query('SELECT username, user_password FROM phpbb_users WHERE username="'. $username .'"');
$recu = mysql_fetch_assoc($req) ;
$test = phpbb_check_hash($password, $recu['user_password']);
if($test==1) {
$_SESSION["username"] = $recu["username"];
}
else {$etat = 'erreur';} }
if(isset($_SESSION["username"])) {
$req = mysql_query('SELECT username, user_password FROM phpbb_users WHERE username="'. mysql_real_escape_string($_SESSION["username"]) .'"');
$recu = mysql_fetch_array($req) ;
if(isset($recu["username"]) && !empty($recu["username"])) $etat = 'connect' ;
else $etat = 'disconnect' ;
}
else $etat = 'disconnect' ;
if($etat=='connect') { echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='forum/index.php?sid='</SCRIPT>"; }
if($etat=='disconnect') { echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='accueil.php'</SCRIPT>"; }
}
?>
if($etat=='connect') { echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='forum/index.php?sid='</
if($etat=='connect') { echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='forum/index.php?sid='</SCRIPT>"; }
Cette ligne là(tout à la fin), il y a le sid qui permet de dire que la personne est connecté et je ne sais pas comment faire pour mettre le sid, donc je vous demande votre aide....
Merci d'avance
Florentin1994
Afficher la suite