[PHP] poo
Dernière réponse : dans Programmation
Bonsoir,
J'ai un petit problème dans mon raisonnement et j'ai besoin de votre science pour comprendre et finir mon script
Donc voila je suis entrin de développer la partie authentification de mon site web.
J'ai une class mysql.class.php
mon User.class.php
mon idex1.php
Et donc moi ce que je souhaiterais réaliser c'est de comparer le login et le mot de passe entré par le client avec ceux qui sont stocké dans la base de données.
Or le problème est que j'ai deux class différentes User et Mysql.
Mysql contient les identifications stockés dans la bdd et User qui contient les identifiants tapés par le client au moment de son identification.
Je cherche à les comparer, comment on fait?
Merci de m'aider
Cordialement
J'ai un petit problème dans mon raisonnement et j'ai besoin de votre science pour comprendre et finir mon script
Donc voila je suis entrin de développer la partie authentification de mon site web.
J'ai une class mysql.class.php
<?php
class Mysql {
private $tabMysql; // La variable qui s'initialisera sous forme de tableau
private $link;
private $test;
public function __construct ($serveur,$login,$mdp,$database) {
$this->tabMysql=array("serv"=>$serveur,"log"=>$login,"pass"=>$mdp,"db"=>$database);
$this->link= mysql_connect($this->tabMysql["serv"],$this->tabMysql["log"],$this->tabMysql["pass"]);
mysql_select_db(($this->tabMysql["db"]));
if(!$this->link) {
throw new exception ('Impossible de se connecter à la base de donnée Petasse');
}
echo 'Connexion réussi à la base de donnée avec succès'; // a revoir
}
/*public function afficher () {
echo $this->link;
}*/
public function execRequete($query) {
$resultat=mysql_query($query,$this->link);
//$this->test=$obj=mysql_fetch_object($resultat);
/*foreach ($obj as $valeur) {
echo $valeur . '<br />';
}*/
while ($row = mysql_fetch_object($resultat)) {
echo $row->login;
echo $row->pseudo;
}
}
}
?>
mon User.class.php
class User{
private $a;
private $b;
private $lastLogin;
public function __construct ($l,$m){
$this->a=$l;
$this->b=md5($m);
$this->lastLogin=time();
}
}
?>
mon idex1.php
<?php
//include ("./User.class.php");
//include ("./Connexion.class.php");
include ("./config.php");
include ("./Mysql.class.php");
$_POST['login']="Admin";
$_POST['pwd']="0000";
// Simulation d'utilisateurs... l'utilisateur tape ses identifiants!
if (isSet($_POST['login'])&& isSet($_POST['pwd'])){*/ //Si les champs login et pwd existent ....
$connexion= new Mysql ($serveur,$login,$mdp,$database); //On se connecte à la BDD en initialisant les variables avec les coordonnées du serveur.
$connexion->execRequete
("SELECT *FROM tbl_user");
?>
Et donc moi ce que je souhaiterais réaliser c'est de comparer le login et le mot de passe entré par le client avec ceux qui sont stocké dans la base de données.
Or le problème est que j'ai deux class différentes User et Mysql.
Mysql contient les identifications stockés dans la bdd et User qui contient les identifiants tapés par le client au moment de son identification.
Je cherche à les comparer, comment on fait?
Merci de m'aider
Cordialement
Autres pages sur : php poo
Lassé par la pub ? Créez un compte
Bonjour Ricky
Voici la fonction isEqual()
Donc d'après ce que j'ai compris dans mes deux class je doit inclure cette methode en incluant en paramètre l'objet de l'autre class?
en gros ca donne ca?:
et
Je ne sais pas si j'ai bien saisi ce que tu voulais me dire?
Merci de m'avoir répondu
Cordialement
Voici la fonction isEqual()
<?php
function isEqual($string1, $string2) {
if ($string1==$string2) return true;
else return false;
}
?>
Donc d'après ce que j'ai compris dans mes deux class je doit inclure cette methode en incluant en paramètre l'objet de l'autre class?
en gros ca donne ca?:
# <?php
#
# class Mysql {
#
# private $tabMysql; // La variable qui s'initialisera sous forme de tableau
# private $link;
# private $test;
#
#
# public function __construct ($serveur,$login,$mdp,$database) {
#
# $this->tabMysql=array("serv"=>$serveur,"log"=>$login,"pass"=>$mdp,"db"=>$database);
# $this->link= mysql_connect($this->tabMysql["serv"],$this->tabMysql["log"],$this->tabMysql["pass"]);
# mysql_select_db(($this->tabMysql["db"]));
#
#
# if(!$this->link) {
# throw new exception ('Impossible de se connecter à la base de donnée Petasse');
# }
# echo 'Connexion réussi à la base de donnée avec succès';
#
# }
public function isEqual($connexion, $client) {
if ($string1==$string2) return true;
else return false;
}
}
et
1. class User{
2.
3. private $a;
4. private $b;
5. private $lastLogin;
6.
7. public function __construct ($l,$m){
8. $this->a=$l;
9. $this->b=md5($m);
10. $this->lastLogin=time();
11. }
12.
<?php
public function isEqual($connexion, $client) {
if ($string1==$string2) return true;
else return false;
}
}
13. ?>
Je ne sais pas si j'ai bien saisi ce que tu voulais me dire?
Merci de m'avoir répondu
Cordialement
Bonjour,
dans idex1.php :
$loginuser = mysql_real_escape_string($_POST['login']);
$mdpuser = mysql_real_escape_string($_POST['mdp']);
$requete = ("select * from tbl_user WHERE login='$loginuser' and pdp='$mdpuser' ;");
Tu testes le résultat de la requête, si ok, tu instancies ton User...
(Si j'ai bien compris ta demande)
a+
dans idex1.php :
$loginuser = mysql_real_escape_string($_POST['login']);
$mdpuser = mysql_real_escape_string($_POST['mdp']);
$requete = ("select * from tbl_user WHERE login='$loginuser' and pdp='$mdpuser' ;");
Tu testes le résultat de la requête, si ok, tu instancies ton User...
(Si j'ai bien compris ta demande)
a+
Salut Flo
A l'heure actuelle j'ai refait mes class, mais il y a un problème, j'essaye d'afficher le résultat de ma requête dans l'index.php mais j'ai une page blanche qui s'affiche.
Quelqu'un pourrait m'aider svp?
Connexion.class.php
PS: J'ai vérifier avec un var_dump a l'intérieur de la class verification tout marche, mais dans l'index j'ai rien.
A l'heure actuelle j'ai refait mes class, mais il y a un problème, j'essaye d'afficher le résultat de ma requête dans l'index.php mais j'ai une page blanche qui s'affiche.
Quelqu'un pourrait m'aider svp?
Connexion.class.php
Index1.php
<?php
class Connexion {
private $tabConnexion;
private $link;
public function __construct ($serveur, $login, $mdp, $database){
$this->tabConnexion=array("serveur"=>$serveur,"login"=>$login,"mdp"=>$mdp,"bdd"=>$database);
$this->link=mysql_connect($this->tabConnexion['serveur'],$this->tabConnexion['login'],$this->tabConnexion['mdp']);
mysql_select_db($this->tabConnexion['bdd']);
if (!$this->link){
throw new exception ('Impossible de se connecter à la base de donnée');
}
}
public function Deconnecter(){
$test=mysql_close($this->link);
if (!$test){
echo "Deco impossible";
}
}
}
?>
Verification.class.php
<?php
include ("./connexion.class.php");
include ("./config.php");
include ("./verification.class.php");
$connexion=new Connexion($serveur,$login,$mdp,$database);
$dee=new verification();
$dee->execRequete("SELECT* FROM tbl_user");
$connexion->Deconnecter();
?>
Config.php
<?php
class verification {
private $loginDb;
private $passDb;
public function execRequete($query){
$result=mysql_query($query);
while ($row=mysql_fetch_object($result));
$this->passDb=$row->login;
echo $this->passDb;
}
}
?>
<?php
$login='root';
$mdp='';
$serveur='localhost';
$database='telesurveillance';
?>
PS: J'ai vérifier avec un var_dump a l'intérieur de la class verification tout marche, mais dans l'index j'ai rien.
Bonsoir,
J'ai une petite question:est ce que en programmation, on a le droit de faire cette manipulation?
Par exemple dans ma class verification j'ai cette méthode
et dans mon index.php peut faire une condition sur la méthode comparer(); si ca vaut TRUE, on instancie la class user?
Cordialement
J'ai une petite question:est ce que en programmation, on a le droit de faire cette manipulation?
Par exemple dans ma class verification j'ai cette méthode
public function comparer($a,$b){
$this->loginPost=$a;
$this->passPost=$b;
if($this->loginPost==$this->loginDb AND $this->passDb==$this->passPost){
//echo "Les deux variables sont similaire";
//echo"</br>";
return TRUE;//$this->identifiant=TRUE;
}
else {
//echo"Le couple Login Password est erroné";
return FALSE;
}
}
et dans mon index.php peut faire une condition sur la méthode comparer(); si ca vaut TRUE, on instancie la class user?
$dee=new verification();
$dee->comparer($ide,$pwd);
if($dee->comparer()==TRUE){
$client=new user($ide);
}
$connexion->Deconnecter();
Cordialement
Bonjour
je ne vois pas trop pourquoi tu pourrais pas... S'il y a quelque chose qui empêche de faire ça, je ne connais pas... Faudrait avoir l'avis des pros d'idn.
Sinon, dans l'index, tu fais 2 appels à la fonction. Un seul devrait suffire.
a+
je ne vois pas trop pourquoi tu pourrais pas... S'il y a quelque chose qui empêche de faire ça, je ne connais pas... Faudrait avoir l'avis des pros d'idn.
Sinon, dans l'index, tu fais 2 appels à la fonction. Un seul devrait suffire.
$dee=new verification();
if($dee->comparer($ide,$pwd)){
$client=new user($ide);
}
a+
Bonsoir,
Voila maintenant j'ai un autre problème, lorsque la vérification est vraie, je créer l'utilisateur avec son login et son mot de pass dans deux variables $l et $md, et je démarre les sessions.
Lorsque j'assigne ma variable $l à $_SESSION['login'] et $md à $_SESSION['pwd']
j'ai un message d'erreur de ce type: Notice: Undefined index: login in D:\Programme\wamp\www\exo\user.class.php on line 22
et Notice: Undefined index: pwd in D:\Programme\wamp\www\exo\user.class.php on line 23
J'ai appeler la méthode getSession pour tester et c'est a ce moment la que le message se lance.
user.class.php
index1.php
et page_membre.php
Voila maintenant j'ai un autre problème, lorsque la vérification est vraie, je créer l'utilisateur avec son login et son mot de pass dans deux variables $l et $md, et je démarre les sessions.
Lorsque j'assigne ma variable $l à $_SESSION['login'] et $md à $_SESSION['pwd']
j'ai un message d'erreur de ce type: Notice: Undefined index: login in D:\Programme\wamp\www\exo\user.class.php on line 22
et Notice: Undefined index: pwd in D:\Programme\wamp\www\exo\user.class.php on line 23
J'ai appeler la méthode getSession pour tester et c'est a ce moment la que le message se lance.
user.class.php
<?php
class User{
private $l;
private $md;
private $date;
private $time;
private $ip;
public function setNewUser($login,$pass){
$this->l=$login;
$this->md=$pass;
}
public function rediriger(){
header ('location: page_membre.php');
}
public function startSession(){
session_start();
$this->l=$_SESSION['login'];
$this->md=$_SESSION['pwd'];
}
public function getSession(){
echo $this->l;
}
public function getUserInfos(){
$this->ip=$_SERVER['REMOTE_ADDR'];
$this->date= date('Y-d-m');
$this->time=date("H:i");
}
public function verifierClient ($session1,$session2){
if (isSet($session1) && isSet($session2)){
echo "Les sessions sont bien présentes!!, on affichera la page";
}
else {
return FALSE;
}
}
}
?>
index1.php
<?php
include ("./connexion.class.php");
include ("./verification.class.php");
include ("./user.class.php");
include ("./config.php");
if(!empty($_POST['login'])&& !empty($_POST['pwd'])){
$_POST['login'];
$_POST['pwd'];
$connexion=new Connexion($serveur,$login,$mdp,$database);
$dee=new verification();
$dee->execRequete("SELECT login,pwd FROM tbl_user WHERE login='".$_POST['login']."' && pwd='".$_POST['pwd']."'"); // les identifiants stocké dans la bdd restent fixes.
$connexion->Deconnecter();
if($dee->comparer($_POST['login'],$_POST['pwd'])==TRUE){
$client=new User();
$client->setNewUser($_POST['login'],$_POST['pwd']);
$client->rediriger();
}
else {
return FALSE;
}
}
else {
throw new exception ('Les champs sont vides');
}
?>
et page_membre.php
<?php
include ("./user.class.php");
$client=new User();
$client->startSession();
$client->getSession();
//$client->verifierClient($_SESSION['login'],$_SESSION['pwd']);
?>
Ouai, sauf que ça n'a absolument rien d'externe. mysql* est ce qu'il y a de plus vieux dans PHP depuis il y a eu mysqli (qui existe en version objet ou non) qui est plutôt pas mal. Dans mysqli on trouvera par exemple de manière simple la gestion des transactions.
PDO est arrivé avec la version 5.1 de PHP si mes souvenirs sont bon. Bref, ça commence même à dater un peu.
Aller hop, je te fait ta classe :
PDO est arrivé avec la version 5.1 de PHP si mes souvenirs sont bon. Bref, ça commence même à dater un peu.
Aller hop, je te fait ta classe :
class MySQL extends PDO { }
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumPhp poo, class securite
- solutionsPhp poo probleme d'affichage d'attributs
- ForumPhp et poo probleme de debutant
- ForumPhp probleme de recup de variable poo
- ForumPoo php
- ForumPoo - encapsulation des donnees
- ForumPoo et base de donnees sous delphi
- ForumPoo et base de donnees .
- ForumPoo heritage
- ForumExercices corrigees de poo en java
- Voir plus