Besoins de votre analyse
Posté : 29 juin 2012, 15:56
Bonjour, je me permets de poster ici et de vous demander votre analyse !
D'abord, j'explique j'essaye d'ajouter au script categorizator une gestion d'admin avec la possibilité d'en ajouter et de les modifier, tous fonctionne j'ai suivi quelque tuto et tp sur divers sites pour en arriver là mais, j'aimerais si possible sans trop abuser avoir votre analyse sur le code, car j'aimerais le faire correctement.
Voici ma page modifier_administrateur
D'abord, j'explique j'essaye d'ajouter au script categorizator une gestion d'admin avec la possibilité d'en ajouter et de les modifier, tous fonctionne j'ai suivi quelque tuto et tp sur divers sites pour en arriver là mais, j'aimerais si possible sans trop abuser avoir votre analyse sur le code, car j'aimerais le faire correctement.
Voici ma page modifier_administrateur
<?php
session_start();
// On inclue le fichier config et fonction
include 'config.php';
include 'fonction.php';
// Si tu n'es pas connecté tu n'as rien à faire ici
if(!isset($_SESSION['login'])) {die('
<style type="text/css">
<!--
h4.alert_warning {
display: block;
width: 95%;
margin: 20px 3% 0 3%;
margin-top: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #F5F3BA url(images/icn_alert_warning.png) no-repeat;
background-position: 10px 10px;
border: 1px solid #C7A20D;
color: #796616;
padding: 10px 0;
text-indent: 40px;
font-size: 14px;}
-->
</style>
<h4 class="alert_warning">Vous devez être connecté pour accéder à cette partie de l\'annuaire ! <a href="connexion.php">Connexion</a></h4>');}
// Si ce n'est pas le créateur on affiche une erreur
else if ($_SESSION['id']!=1) {die('
<style type="text/css">
<!--
h4.alert_warning {
display: block;
width: 95%;
margin: 20px 3% 0 3%;
margin-top: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #F5F3BA url(images/icn_alert_warning.png) no-repeat;
background-position: 10px 10px;
border: 1px solid #C7A20D;
color: #796616;
padding: 10px 0;
text-indent: 40px;
font-size: 14px;}
-->
</style>
<h4 class="alert_warning">Vous n\'avez pas le niveau requis pour accéder à cette page ! <a href="accueil.php">Retour à l\'accueil</a></h4>');}
// On recupere l'id de l'administrateur
$id = $_GET['id'];
// Pour la gestion du formulaire
// Initialisation du message de réponse
$message = null;
// Si le formulaire est envoyé
if (isset($_POST['pseudo']))
{
/* Récupération des variables issues du formulaire
Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
(Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
$pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
$mail = (isset($_POST['mail']) && trim($_POST['mail']) != '')? Verif_magicquotes($_POST['mail']) : null;
// Requête pour recupere les infos de l'admninstrateur
$requete = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id."";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
if(isset($pseudo,$mail))
{
// On verifie que le pseudo est unique ! si il est changer
if($pseudo!=$resultat['pseudo'])
{
// Requête pour compter le nombre d'enregistrements répondant à la clause : champ du pseudo de la table != pseudo posté dans le formulaire
$requete = "SELECT count(*) as nb FROM ".$admin." WHERE pseudo = '".$pseudo."'";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
// nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat;
if ($resultat['nb'] == 0)
// Résultat du comptage = 0 pour ce pseudo, on peut donc l'enregistrer
{
$update = "UPDATE ".$admin." SET pseudo = '".$pseudo."' WHERE ID = ".$id."";
// Exécution de la requête de mise à jour
$update_exec = mysql_query($update) or die(mysql_error());
/* Si l'update s'est faite correctement (la requête retourne "true" en cas de succès, je peux donc utiliser
l'opérateur de comparaison strict '===' c.f. http://fr.php.net/manual/fr/language.op ... arison.php) */
if ($update_exec === true)
{
$message = '<h4 class="alert_success">Le pseudo de l\'administrateur à été changer.</h4>';
}
}
else
{
// Le pseudo est déjà utilisé
$message = '<h4 class="alert_warning">Ce pseudo est déjà utilisé, changez-le.</h4>';
}
}
// On verifie que le mail est unique ! si il est changer
else if($mail!=$resultat['mail'])
{
// Requête pour compter le nombre d'enregistrements répondant à la clause : champ du mail de la table != mail posté dans le formulaire
$requete = "SELECT count(*) as nb FROM ".$admin." WHERE mail = '".$mail."'";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
// nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat;
if ($resultat['nb'] == 0)
// Résultat du comptage = 0 pour ce mail, on peut donc l'enregistrer
{
$update = "UPDATE ".$admin." SET mail = '".$mail."' WHERE ID = ".$id."";
// Exécution de la requête de mise à jour
$update_exec = mysql_query($update) or die(mysql_error());
/* Si l'update s'est faite correctement (la requête retourne "true" en cas de succès, je peux donc utiliser
l'opérateur de comparaison strict '===' c.f. http://fr.php.net/manual/fr/language.op ... arison.php) */
if ($update_exec === true)
{
$message = '<h4 class="alert_success">L\'email de l\'administrateur à été changer.</h4>';
}
}
else
{
// Le pseudo est déjà utilisé
$message = '<h4 class="alert_warning">Cette email est déjà utilisé, changez-la.</h4>';
}
}
}
else
{ // Au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
$message = '<h4 class="alert_error">Les champs "Pseudo" et "Email" doivent être remplis.</h4>';
}
}
// On recupere les infos de l'administrateur
$requete = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id."";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
// On definie quelque valeurs comme le titre et le la page en cours
define("TITRE", "Modifier un administrateur");
define("ARIANE", "<a href=\"accueil.php\">Accueil administration</a> <div class=\"breadcrumb_divider\"></div> <a class=\"current\">". TITRE ."</a>");
// On affiche le haut de page (header.php)
include 'header.php';
// On inclue la collone de droite
include 'colonne.php';
?>
<section id="main" class="column">
<article class="module width_full">
<header><h3>Modification d'un administrateur</h3></header>
<?php if(isset($message)) echo $message ?>
<form action="#" method="post">
<div class="module_content">
<fieldset>
<label for="pseudo">Pseudo :</label>
<input type="text" name="pseudo" id="pseudo" value="<?php echo $resultat['pseudo']; ?>">
</fieldset>
<fieldset>
<label for="mail">Email : </label>
<input type="text" name="mail" id="mail" value="<?php echo $resultat['mail']; ?>">
</fieldset>
<div class="clear"></div>
</div>
<footer>
<div class="submit_link">
<input type="submit" id="valider" value="Modifier l'administrateur" class="alt_btn">
<input type="reset" value="Reset">
</div>
</footer>
</form>
</article><!-- end of post new article -->
<h4 class="alert_info">Pour changer son mot de passe l'administrateur doit utiliser le lien "Mot de pase perdu ?"</h4>
<div class="spacer"></div>
</section>
</body>
</html>
Si quelqu'un passe et veut bien donner son avis je l'en remercie d'avance, n'hésitez pas à être franc c'est le but de ce message. Merci et bonne journée azuriel.