by GOLGOTA » Thu Dec 09, 2010 6:19 pm
Je fais un doublon pour up un coup et poster l'exemple de class que je viens de faire.
Bon en gros c'est une class pour créer des articles sur un site (non vrai?!).
Toutes les fonction d'éditions, de création, suppression, etc... tapées en admin avec un private, j'imagine que c'est plus "sécuriser".
D'ailleurs en parlant de sécurité, je ne comprend pas très bien comment quelqu'un pourrait utiliser mon code pour élargir une faille ?!
Se pourrait-il que si j'avais fait des fonction toute bête, lachées dans la page php, quelqu'un de mal intentionné aurait pu faire des trucs du genre :
http://www.monsite.tld/index.php?page=fonction() ?
Un truc dans le genre hein ?!
Bref, voici mon morceau de code, n'hésitez pas à me donner des conseils sur la manière dont sont faites les fonctions, par exemple si il est possible de les divisées, en créant d'autre fonctions (je pensais au déplacement dans des catégorie par exemple).
J'aimerais bien d'ailleurs créer une fonction qui me permette de géré plus facilement mes requêtes et mes transferts de données avec la base.
Bref ! Voici le code ! toutes les fonctions ne sont pas écrites, c'est juste histoire de présenter un exemple ;)
[code:1:e489984a70]
<?
class Articles
{
private $id;
private $titre;
private $contenu;
private $categorie;
private $sous_categorie;
private $date;
private $description;
private $meta;
private $auteur;
private $publie;
private $sources;
// Fonction permettant de changer la valeur d'une variable à partir d'une class extension
public function set($variable, $valeur)
{
$this->data[$variable] = $valeur;
}
// Fonction permettant de récupéré la valeur d'une variable à partir d'une class extension
public function get($variable)
{
if (array_key_exists($variable, $this->data))
{
return $this->data[$variable];
}
$trace = debug_backtrace();
trigger_error(
'Propriété non-définie via __get(): ' . $variable .
' dans ' . $trace[0]['file'] .
' à la ligne ' . $trace[0]['line'],
E_USER_NOTICE);
return null;
}
// Fonction de construction
public function __construct($id)
{
if(isset($id))
{
// On veut charger un article.
}
}
// Fonction de destruction
public function __destruct()
{
// Destruction de l'article
}
}
class Admin_Articles_Article extends Articles
{
// Fonction de traitement des données de création d'articles.
private function art_creer()
{
// Les variable seront définie, sur la page articles.php dans l'admin, comme suit :
// $variable = stripslashes($_POST['variable']);
// $variable2 = stripslashes($_POST['variable2']);
// etc...
// $articles = new articles();
// $articles->set('var', $variable);
// $articles->set('var', $variable2);
// etc...
$titre = get('titre');
$contenu = get('contenu');
$categorie = get('categorie');
$sous_categorie = get('sous_categorie');
$date = get('date');
$meta = get('meta');
$auteur = get('auteur');
$publie = get('publie');
$sources = get('sources');
$requete = $bdd->prepare('INSERT INTO article (titre, contenu, categorie, sous_categorie, date, meta, auteur, publie, sources) VALUES
(:titre, :contenu, :categorie, :sous_categorie, :date, :meta, :auteur, :publie, :sources)');
$requete->execute(array(
'titre' => $titre,
'contenu' => $contenu,
'categorie' => $categorie,
'sous_categorie' => $sous_categorie,
'date' => $date,
'meta' => $meta,
'auteur' => $auteur,
'id_auteur' => $id_auteur,
'publie' => $publie,
'sources' => $sources));
}
// Fonction permettant de sauvegarder un article en cours de rédaction.
private function art_sauvegarde()
{
}
// Fonction de traitement des données d'édition d'articles.
private function art_edition()
{
}
// Fonction de déplacement d'article dans les sections et sous section
private function art_deplacement()
{
}
// Fonction de suppression d'un article.
private function art_suppression()
{
}
}
class Admin_Articles_categorie extends Articles
{
private $nom;
private $parent;
// Fonction de traitement des données de catégorie.
private function cat_creer()
{
}
// Fonction de traitement des données d'édition de catégorie.
private function cat_edition()
{
}
// Fonction de déplacement de catégorie.
private function cat_deplacement()
{
}
// Fonction de suppression de catégorie.
private function cat_suppression()
{
}
}
[/code:1:e489984a70]