Bontiv-Sourceer source code viewer
Root | Help
./PhpMyCMS/mod/user/main.php
<?php

/**
 *
 *
 * @version $Id$
 * @copyright 2009
 */

class mod_user {
    static private
$user;

function
index_exp(){
   
$page = page::Open();
   
$page->ExeTpl('index.tpl');
    return
true;
}

function
deconnexion_exp(){
   
$page = page::Open();
   
$sql = DB_Driver::Open();
   
$sql->table = 'session';
   
$sql->Update(array('user'=>0), array('sessid'=>session::ID()));
   
$page->assign('message', 'vous avez été deconnecté');
   
$page->ExeTpl('connexion.tpl');
}

function
inscription_exp(){
   
$page = page::Open();
   
$url = URL_Analyser::Open();
   
$alert = Alert::Open();
    switch(
$url->GetUrlDir(-1)){
        case
'inscription':
        case
'start.htm':
           
$page->ExeTpl('inscription.tpl');
            break;
        case
'post.htm';
            if (
self::post()) {
               
$page->ExeTpl('finish.tpl');
            } else {
               
$page->ExeTpl('inscription.tpl');
            }
            break;
        default:
            return
false;
    }
// switch
}

function
connexion_exp(){
   
$page = page::Open();
   
$url = URL_Analyser::Open();
   
$alert = Alert::Open();
    if (
session::GetVar('tentative') > 3) {
       
$page->assign('captcha', true);
    }
    switch(
$url->GetUrlDir(-1)){
        case
'connexion':
        case
'start.htm':
           
$page->ExeTpl('connexion.tpl');
            return
true;
            break;
        case
'post.htm';
            if (!isset(
$_POST['login'],$_POST['pass'])) {
               
$page->assign('message', 'mot de passe ou login non renseigné.');
               
$page->ExeTpl('connexion.tpl');
            } elseif (
               
self::connexion($_POST['login'],$_POST['pass'], @$_POST['captcha'])
            ){
               
$page->ExeTpl('index.tpl');
            } else {
               
$page->assign('message', 'mot de passe ou login incorrect.');
               
$page->ExeTpl('connexion.tpl');
            }
            break;
        default:
            return
false;
    }
// switch
}

private function
post(){
   
$page = page::Open();
    if (!isset(
       
$_POST['pseudo'],
       
$_POST['id'],
       
$_POST['pass'],
       
$_POST['pass2'],
       
$_POST['nee'],
       
$_POST['email']))
        {
       
$page->assign('message', 'tous les champs sont obligatoire.');
        return
false;
    }
    if (
$_POST['pass'] != $_POST['pass2'] || strlen($_POST['pass'])<6) {
       
$page->assign('message', 'les mots de passe ne sont pas identiques, ou font moins de 6 caractères.');
        return
false;
    }
    if (
self::post_champunique('login', $_POST['id'])) {
       
$page->assign('message', 'login déjà utilisé.');
        return
false;
    }
    if (
self::post_champunique('pseudo', $_POST['pseudo'])) {
       
$page->assign('message', 'pseudo déjà utilisé.');
        return
false;
    }
    if (
self::post_champunique('email', $_POST['email'])) {
       
$page->assign('message', 'email déjà utilisé.');
        return
false;
    }
    if (
strtoupper($_POST['captcha']) != session::GetVar('captcha')) {
       
$page->assign('message', 'Retappez le code de l\'image.');
        return
false;
    }
   
sscanf($_POST['nee'], '%02d/%02d/%04d', $d, $m, $y);
   
$activate = md5(uniqid());
   
$sql = DB_Driver::Open();
   
$sql->table = 'user';
   
$sql->InsertInto(array(
       
'login' => $_POST['id'],
       
'pseudo' => $_POST['pseudo'],
       
'cookie_pwd' => '',
       
'pwd' => hash('sha256', $_POST['pass']),
       
'email' => $_POST['email'],
       
'MSN' => @$_POST['MSN'],
       
'skype' => @$_POST['skype'],
       
'inscript' => date('Y-m-d H:i:s'),
       
'last' => '0000-00-00',
       
'useragent' => $_SERVER['HTTP_USER_AGENT'],
       
'naissance' => sprintf('%d-%d-%d', $y, $m, $d),
       
'activate' => $activate
   
));
   
mail($_POST['email'], 'Activation', '<html><body><a href="'.$activate.'">l</a></body></html>');
    return
true;

}

private function
post_champunique($champ, $value){
   
$sql = DB_Driver::Open();
   
$sql->table = 'user';
   
$ret = $sql->Select(array($champ=>$value));
    return (
mysql_num_rows($ret) != 0)?(TRUE):(FALSE);
}

function
init(){
   
$page = page::Open();
   
$page->module = 'user';
}

function
autoload(){
   
$sess = session::ID();
   
$sql = DB_Driver::Open();
   
$sql->table = 'session';

   
$user = mysql_result($sql->Select(
        array(
'sessid' => $sess)
    ),
0, 'user');

   
$sql->table = 'user';
   
self::$user = mysql_fetch_assoc($sql->Select(array('id' => $user)));
   
$page = page::Open();
   
$page->assign('user', self::$user);
   
$page->assign('test', 'Tous les champs sont obligatoires');
}

function
GetUserInfo(){
    return
self::$user;
}

function
connexion($user, $pass, $captcha = ''){
   
$tentative = session::GetVar('tentative');
   
$sql = DB_Driver::Open();
   
$sql->table = 'user';
   
$pass = hash('sha256', $pass);
   
$user = $sql->Select(array('pwd'=>$pass, 'login'=>$user));
    if (
$tentative > 4 && strtoupper($captcha) != session::GetVar('captcha')) {
       
session::SetVar('tentative', $tentative + 1);
        return
false;
    } elseif (
mysql_num_rows($user) == 0){
       
session::SetVar('tentative', $tentative + 1);
        return
false;
    } else {
       
$sql->table = 'session';
       
$sql->Update(array(
           
'user'=>mysql_result($user, 0, 'id')
            ), array(
               
'sessid' => session::ID()
            ));
       
self::autoload();
       
session::SetVar('tentative', 0);
        return
true;
    }
}

function
GetAllUser(){
   
$sql=DB_Driver::Open();
   
$sql->table = 'user';
   
$users = array();
   
$result = $sql->Select(
        array(), array(
'id', 'pseudo', 'login')
    );
    while(
$user = mysql_fetch_assoc($result)){
       
$users = array_merge($users, array('id'.$user['id']=>$user));
    }
// while
   
return $users;
}
}

?>
Presented with Bontiv-Sourceer