par
x@v » 27 avr. 2008, 14:45
en faite je l'ai revue, mais sans requete préparé je ne me protège pas des injections ?
<?php
#########################################################################################################
////////////////////////////////// /************************************************/ #
// # # // /* ***** class par Xavier Artot alias x@v */ #
// # ## // /* ***** [email protected] ****************/ #
// ### ##### // /* ***** Ma première classe en php ********/ #
// # ### ####### // /* ***** cette classe permet d'avoir un ***/ #
// ######## # // /* ***** panier ou cadie pour un site *****/ #
// ####### // /* ***** vous êtes conviés à laisser ******/ #
// # ######### // /* ***** ce commentaire *******************/ #
// ###### ### # // /* ***** developpus.com *******************/ #
// ### ### // /* ***** developpus.com *******************/ #
// # # // /* ***** developpus.com *******************/ #
// ### // /* ***** developpus.com *******************/ #
// ####### ## // /* ***** developpus.com *******************/ #
// ######### #### // /************************************************/ #
// ## ## # ## // #
// # ## # // #
// ## # ## // #
// ############### // #
// ############## // #
// # // #
// // #
// # // #
// ### // #
// ####### // #
// ########## // #
// ########## // #
// ######## // #
// ### // #
// #### # // #
// #### // #
// # // #
////////////////////////////////// #
#########################################################################################################
require_once('message.class.php');
class Connection extends PDO
{
private $db = 'boutique'; // base de données
private $host = 'localhost'; // adresse de la base
private $user = 'root'; // nom
private $pwd = ''; // mot de passe
//private $pwd = '**********'; // mot de passe
private $con; //
private $select; // requette de séléction
private $execute; // requette d'execution
private $result; //
private $dns;
public function __construct ()
{
try {
$this->con = parent::__construct($this->getDns(), $this->user, $this->pwd);
// pour mysql on active le cache de requête
if($this->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql')
{
$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
}
return $this->con;
}
catch(PDOException $e) {
//On indique par email qu'on n'a plus de connection disponible
error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '[email protected]');
$message= new Message();
$message->outPut('Erreur 500', 'Serveur de BDD indisponible, nous nous excusons de la gêne occasionnée');
}
}
public function select($reqSelect)
{
try
{
$this->con = parent::beginTransaction();
$result= parent::query($reqSelect);
$this->con = parent::commit();
return $result;
}
catch (Exception $e)
{
//On indique par email que la requête n'a pas fonctionné.
error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '[email protected]');
$this->con =parent::rollBack();
$message= new Message();
$message->outPut('Erreur dans la requêtte', 'Votre requête a été abandonné');
}
}
public function getDns()
{
return 'mysql:dbname='.$this->db.';host='.$this->host;
}
}
?>
J'entends polymorphisme surcharger les méthodes ou redéfinir grace à l'héritage en passant d'une classe à l'autre à travers des associations de compositions.
Mais ça fait longtemps que j'ai pas codé en java et ont perds vite.
en faite je l'ai revue, mais sans requete préparé je ne me protège pas des injections ?
[php]<?php
#########################################################################################################
////////////////////////////////// /************************************************/ #
// # # // /* ***** class par Xavier Artot alias x@v */ #
// # ## // /* *****
[email protected] ****************/ #
// ### ##### // /* ***** Ma première classe en php ********/ #
// # ### ####### // /* ***** cette classe permet d'avoir un ***/ #
// ######## # // /* ***** panier ou cadie pour un site *****/ #
// ####### // /* ***** vous êtes conviés à laisser ******/ #
// # ######### // /* ***** ce commentaire *******************/ #
// ###### ### # // /* ***** developpus.com *******************/ #
// ### ### // /* ***** developpus.com *******************/ #
// # # // /* ***** developpus.com *******************/ #
// ### // /* ***** developpus.com *******************/ #
// ####### ## // /* ***** developpus.com *******************/ #
// ######### #### // /************************************************/ #
// ## ## # ## // #
// # ## # // #
// ## # ## // #
// ############### // #
// ############## // #
// # // #
// // #
// # // #
// ### // #
// ####### // #
// ########## // #
// ########## // #
// ######## // #
// ### // #
// #### # // #
// #### // #
// # // #
////////////////////////////////// #
#########################################################################################################
require_once('message.class.php');
class Connection extends PDO
{
private $db = 'boutique'; // base de données
private $host = 'localhost'; // adresse de la base
private $user = 'root'; // nom
private $pwd = ''; // mot de passe
//private $pwd = '**********'; // mot de passe
private $con; //
private $select; // requette de séléction
private $execute; // requette d'execution
private $result; //
private $dns;
public function __construct ()
{
try {
$this->con = parent::__construct($this->getDns(), $this->user, $this->pwd);
// pour mysql on active le cache de requête
if($this->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql')
{
$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
}
return $this->con;
}
catch(PDOException $e) {
//On indique par email qu'on n'a plus de connection disponible
error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '
[email protected]');
$message= new Message();
$message->outPut('Erreur 500', 'Serveur de BDD indisponible, nous nous excusons de la gêne occasionnée');
}
}
public function select($reqSelect)
{
try
{
$this->con = parent::beginTransaction();
$result= parent::query($reqSelect);
$this->con = parent::commit();
return $result;
}
catch (Exception $e)
{
//On indique par email que la requête n'a pas fonctionné.
error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '
[email protected]');
$this->con =parent::rollBack();
$message= new Message();
$message->outPut('Erreur dans la requêtte', 'Votre requête a été abandonné');
}
}
public function getDns()
{
return 'mysql:dbname='.$this->db.';host='.$this->host;
}
}
?>[/php]
J'entends polymorphisme surcharger les méthodes ou redéfinir grace à l'héritage en passant d'une classe à l'autre à travers des associations de compositions.
Mais ça fait longtemps que j'ai pas codé en java et ont perds vite.