PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » PHP5 et classes » 16-01-2010 12:39:34

Merci xTg pour tes précieuses réponses,

Je vais corriger ca.

Pour la db, je préfère me donner la possibilité de me connecter à plusieurs db...

++
santino

#2 Re : Forum Général PHP » PHP5 et classes » 16-01-2010 12:39:34

Salut,

Merci pour ta réponse.

ok pour le *.

Par contre, au niveau de ma classe, je fais mysql_real_escape_string, ceci
devrait me protéger non ?

Sinon au niveau agencement des scripts:

J'avais un doute sur mes header et sur le fait de passer $db en paramètres de fonction,
ceci te parait-il correct ?

Merci d'avancve

++
santino

#4 Forum Général PHP » PHP5 et classes » 16-01-2010 12:39:34

santino1704
Réponses : 6

Bonjour à tous,

Je me met doucement aux classes et j'avoue que j'hésite encore pas mal
sur certaines façon de faire, pourriez-vous me donner votre avis.

J'essaye de comprendre comment agencer mes scripts et veiller à bien
séparer le code de la mise en forme.

J'essaye de mettre en place un simple formulaire d'identification.

La classe:


class Identification
  {
  private $user;
  private $password;
  private $db;
  private $identification_result;
 
  public function __construct($user, $password, $db)
    {
    $this->user = $user;
    $this->password = $password;
    $this->db = $db;
    $this->identification_result = false;

    $query_txt = "  SELECT
              cms_user.*,
              cms_user_group.*
            FROM
              cms_user,
              cms_user_group
            WHERE
              cms_user.login = '"
.mysql_real_escape_string($user)."'
            AND
              cms_user.my_password = '"
.mysql_real_escape_string($password)."'
            AND
              cms_user.fk_user_group = cms_user_group.idx"
;
              //echo $query_txt;
    $query = mysql_query($query_txt, $this->db->link);
   
    if(mysql_num_rows($query) > 0)
      {
      $result = mysql_fetch_array($query);
     
      $_SESSION['logged'] = 1;
      $_SESSION['user_idx'] = $result['idx'];
      $_SESSION['user_prenom'] = stripslashes($result['prenom']);
      $_SESSION['user_nom'] = stripslashes($result['nom']);
      $_SESSION['user_group_idx'] = stripslashes($result['fk_user_group']);
      $_SESSION['user_group_name'] = stripslashes($result['group_name']);
     
      $_SESSION['user_privileges'] = array('priv_site'=>$result['priv_site'], 'priv_user'=>$result['priv_user'], 'priv_structure'=>$result['priv_structure'], 'priv_files'=>$result['priv_files'], 'priv_appli'=>$result['priv_appli'], 'priv_stat'=>$result['priv_stat'], 'priv_aide'=>$result['priv_aide']);
     
      $this->identification_result = true;
      }
      else
      {
      session_destroy();
      }
    }
 
  public function check_identification()
    {
    return $this->identification_result;
    }
  }
 

...et la page de traitement


include('../includes/constants.php');
include('../includes/Db.class.php');
include('../includes/Session.class.php');
include('../classes/classes.php');

/*$current_session = new Session($db);
session_start();*/

if(!isset($_POST['action']))
  {
  header('location: ../../login.php?login=error');
  die();
  }
switch($_POST['action'])
  {
  case 'identification':
 
  if(!isset($_POST['login_login']) || !isset($_POST['login_password']))
    {
    header('location: ../../login.php?login=error');
    die();
    }
 
  $current_identification = new Identification($_POST['login_login'], $_POST['login_password'], $db);
 
  if($current_identification->check_identification() == true)
    {
    header('location: ../../admin.php');
    die();
    }
    else
    {
    header('location: ../../login.php?login=error');
    die();
    }
 
  break;
  }
 

Il y a en plus un formulaire qui envoie en POST l'id et le mot de passe.

Ceci vous parait-il correct en terme de POO.

Merci d'avance pour vos réponse.

++
santino

Pied de page des forums

Propulsé par FluxBB