Optimisation CRUD
Posté : 26 déc. 2014, 15:40
Bonjour j'ai effectué un CRUD avec un tuto mais je voudrai savoir si il y a possibilité de l'optimiser au mieux, pour cela j'ai créer une classe objet pour la connection PDO, fait des require_once du header et footer HTML mais pour le reste je bloque. Le crud est sur une table "user" avec comme champs ID, lastname, firstname, email, birthday, dois je faire une classe user aussi, puis j'ai une redondance de condition dans plusieurs fichier mais bon je vous montre cela voila
database.php
database.php
<?php
class Database
{
private static $dbName = 'pandacraft' ;
private static $dbHost = 'localhost' ;
private static $dbUsername = 'root';
private static $dbUserPassword = 'root';
private static $cont = null;
public function __construct() {
die("Erreur d'init");
}
public static function connect()
{
if ( null == self::$cont )
{
try
{
self::$cont = new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);
}
catch(PDOException $e)
{
die($e->getMessage());
}
}
return self::$cont;
}
public static function disconnect()
{
self::$cont = null;
}
}
?>
newUser.php
<?php
require 'database.php';
function verifierAdresseEmail($sEmail)
{
$sMotif = '`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`';
$bCorrect = false;
if(preg_match($sMotif,$sEmail))
{
$bCorrect = true;
}
return $bCorrect;
}
function verifBirth($vBirth)
{
$sMotif = '`\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$`';
$bCorrect = false;
if(preg_match($sMotif,$vBirth))
{
$bCorrect = true;
}
return $bCorrect;
}
if ( !empty($_POST)) {
$lastNameError = null;
$firstNameError = null;
$emailError = null;
$birthError = null;
extract($_POST);
$valid = true;
if (empty($lastName)) {
$lastNameError = "Vous n'avez pas rempli votre nom.";
$valid = false;
}
if (empty($firstName)) {
$firstNameError = "Vous n'avez pas rempli votre prénom.";
$valid = false;
}
if (empty($email)) {
$emailError = "Vous n'avez pas rempli votre e-mail.";
$valid = false;
} else if (!verifierAdresseEmail($email)) {
$emailError = "Veuillez renseigner une adresse mail valide";
$valid = false;
}
if (empty($birth)) {
$birthError = "Vous n'avez pas rempli votre date de naissance.";
$valid = false;
} else if (!verifBirth($birth)) {
$birthError = "Vous avez renseigné une date non valide, Usage: AA-MM-JJ ou AA/MM/JJ" ;
$valid = false;
}
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO user (lastname, firstname, email, birthday) VALUES ('$lastName', '$firstName', '$email', '$birth')";
$q = $pdo->prepare($sql);
$q->execute(array($lastName, $firstName, $email, $birth));
Database::disconnect();
header("Location: index.php");
}
}
$page_title = "Création d'un nouvel utilisateur";
include_once "header.php";
$form_title = "Ajouter à la base de donnée";
$boutton = "Créer";
$action_form = "newUser.php";
include_once "user.php";
include_once "footer.php";
?>
updateUser.php
<?php
require 'database.php';
function verifierAdresseEmail($sEmail)
{
$sMotif = '`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`';
$bCorrect = false;
if(preg_match($sMotif,$sEmail))
{
$bCorrect = true;
}
return ($bCorrect);
}
function verifBirth($vBirth)
{
$sMotif = '`\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$`';
$bCorrect = false;
if(preg_match($sMotif,$vBirth))
{
$bCorrect = true;
}
return ($bCorrect);
}
$id = null;
if ( !empty($_GET['id']))
{
$id = $_REQUEST['id'];
}
if ( null==$id )
{
header("Location: index.php");
}
if ( !empty($_POST))
{
$lastNameError = null;
$firstNameError = null;
$emailError = null;
$birthError = null;
extract($_POST);
$valid = true;
if (empty($lastName))
{
$lastNameError = "Vous n'avez pas rempli votre nom.";
$valid = false;
}
if (empty($firstName))
{
$firstNameError = "Vous n'avez pas rempli votre prénom.";
$valid = false;
}
if (empty($email))
{
$emailError = "Vous n'avez pas rempli votre e-mail.";
$valid = false;
} else if (!verifierAdresseEmail($email))
{
$emailError = "Veuillez renseigner une adresse mail valide";
$valid = false;
}
if (empty($birth))
{
$birthError = "Vous n'avez pas rempli votre date de naissance.";
$valid = false;
} else if (!verifBirth($birth))
{
$birthError = "Vous avez renseigné une date non valide, Usage: AA-MM-JJ ou AA/MM/JJ" ;
$valid = false;
}
if ($valid)
{
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE user set lastname = ?, firstname = ?, email =?, birthday = ? WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($lastName, $firstName ,$email ,$birth, $id));
Database::disconnect();
header("Location: index.php");
}
}else
{
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM user where id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$lastName = $data['lastname'];
$firstName = $data['firstname'];
$email = $data['email'];
$birth = $data['birthday'];
Database::disconnect();
}
$page_title = "Création d'un nouvel utilisateur";
include_once "header.php";
$form_title = "Modification d'une donnée dans la base";
$boutton = "Mettre à jour";
$action_form ="updateUser.php?id=";
include_once "user.php";
include_once "footer.php";
?>
voila merci pour vos retour et vos conseils, si j'ai codé comme un porc dit le moi toute critique est bonne à prendre !!!!