par
Azuriel » 01 juil. 2012, 23:04
C'est encore moi

je reviens vers vous, car j'ai un problème pour pas changer
Alors, voici ma page modifier_administrateur (uniquement le pseudo)
<?php
session_start();
include 'config.php'; // Variables de l'annuaire
include 'fonction.php'; // Fonctions de l'administration l'annuaire
include 'securite.php'; // Vérification de la session et vérification de l'id administrateur
verif_connect(); // Si l'administrateur n'est pas identifier on affiche une erreur
verif_administrateur(); // Si ce n'est pas le créateur on affiche une erreur
$id_administrateur = mysqli_real_escape_string($bdd,$_GET['id']); // On recupere l'id de l'administrateur a modifier
// Pour la gestion du formulaire
$message = null; // Initialisation du message de réponse
if (isset($_POST['pseudo'])) // Si le formulaire est envoyé
{
// On récupé les variables issues du formulaire et on teste l'existence des données post en vérifiant qu'elles existent,
// qu'elles ne sont pas vides et uniquement 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;
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$pseudo_administrateur = mysqli_real_escape_string($bdd,$pseudo);
if(isset($pseudo)) // Si les champs $pseudo et $mail ne sont pas vide on peut aller plus loin
{
// Avec cette requête on recupere les données de l'administrateur à modifier
$requete_recup = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$infos_administrateur = mysqli_query($bdd,$requete_recup) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$donnees_administrateur = mysqli_fetch_assoc($infos_administrateur);
// Si le pseudo du formulaire est différent de celui qui est dans la base de données
if($pseudo_administrateur!=$donnees_administrateur['pseudo'])
{
// Avec cette requête on regarde dans la base de données si le pseudo est unique
$requete_pseudo = "SELECT count(*) as nb FROM ".$admin." WHERE pseudo = '".$pseudo_administrateur."'";
// Exécution de la requête
$pseudo_unique = mysqli_query($bdd,$requete_pseudo) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$unique = mysqli_fetch_assoc($pseudo_unique);
// Si le comptage indique zéro alors le pseudo est unique et on peut le changer
if($unique['nb']==0)
{
// Requête pour changer le pseudo de la table par celui du formulaire
$requete_change_pseudo = "UPDATE ".$admin." SET pseudo = '".$pseudo_administrateur."' WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$change_pseudo = mysqli_query($bdd,$requete_change_pseudo) or exit(mysqli_error($bdd));
// Le pseudo à été changé
$message = '<h4 class="alert_success">Le pseudo de l\'administrateur a été mis à jour avec succès. </h4>';
}
else // Sinon c'est que le pseudo existe déjà et on affiche une erreur
{
// Le pseudo est déjà utilisé
$message = '<h4 class="alert_warning">Ce pseudo est déjà utilisé, changez-le.</h4>';
}
}
}
else // Au moins un des deux champs : "pseudo" ou "mail" n'a pas été rempli
{
// On affiche une erreur
$message = '<h4 class="alert_error">Les champs "Pseudo" et "Email" doivent être remplis.</h4>';
}
}
// Avec cette requête on recupere les données de l'administrateur à modifier
$requete_recup_admin = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$infos_administrateur = mysqli_query($bdd,$requete_recup_admin) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$donnees_administrateur = mysqli_fetch_assoc($infos_administrateur);
// 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 $donnees_administrateur['pseudo']; ?>">
</fieldset>
<fieldset>
<label for="mail">Email : </label>
<input type="text" name="mail" id="mail" value="<?php echo $donnees_administrateur['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>
Le code fonctionne en partie : si je ne change pas les valeurs du formulaire rien ne ce passe comme prévu, je rentre un pseudo qui existe déjà il m'indique que le pseudo est déjà utilisé mais, pour l'UPDATE il m'affiche une page blanche et le pseudo ne change pas ? Franchement je ne sais pas ou est l'erreur
Bonne soirée à vous
C'est bon trouver

j'ai fait une faute ici : (oublier ' )
"UPDATE ".$admin." SET pseudo = ".$pseudo_administrateur."
C'est encore moi :D je reviens vers vous, car j'ai un problème pour pas changer :(
Alors, voici ma page modifier_administrateur (uniquement le pseudo)
[php]<?php
session_start();
include 'config.php'; // Variables de l'annuaire
include 'fonction.php'; // Fonctions de l'administration l'annuaire
include 'securite.php'; // Vérification de la session et vérification de l'id administrateur
verif_connect(); // Si l'administrateur n'est pas identifier on affiche une erreur
verif_administrateur(); // Si ce n'est pas le créateur on affiche une erreur
$id_administrateur = mysqli_real_escape_string($bdd,$_GET['id']); // On recupere l'id de l'administrateur a modifier
// Pour la gestion du formulaire
$message = null; // Initialisation du message de réponse
if (isset($_POST['pseudo'])) // Si le formulaire est envoyé
{
// On récupé les variables issues du formulaire et on teste l'existence des données post en vérifiant qu'elles existent,
// qu'elles ne sont pas vides et uniquement 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;
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$pseudo_administrateur = mysqli_real_escape_string($bdd,$pseudo);
if(isset($pseudo)) // Si les champs $pseudo et $mail ne sont pas vide on peut aller plus loin
{
// Avec cette requête on recupere les données de l'administrateur à modifier
$requete_recup = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$infos_administrateur = mysqli_query($bdd,$requete_recup) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$donnees_administrateur = mysqli_fetch_assoc($infos_administrateur);
// Si le pseudo du formulaire est différent de celui qui est dans la base de données
if($pseudo_administrateur!=$donnees_administrateur['pseudo'])
{
// Avec cette requête on regarde dans la base de données si le pseudo est unique
$requete_pseudo = "SELECT count(*) as nb FROM ".$admin." WHERE pseudo = '".$pseudo_administrateur."'";
// Exécution de la requête
$pseudo_unique = mysqli_query($bdd,$requete_pseudo) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$unique = mysqli_fetch_assoc($pseudo_unique);
// Si le comptage indique zéro alors le pseudo est unique et on peut le changer
if($unique['nb']==0)
{
// Requête pour changer le pseudo de la table par celui du formulaire
$requete_change_pseudo = "UPDATE ".$admin." SET pseudo = '".$pseudo_administrateur."' WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$change_pseudo = mysqli_query($bdd,$requete_change_pseudo) or exit(mysqli_error($bdd));
// Le pseudo à été changé
$message = '<h4 class="alert_success">Le pseudo de l\'administrateur a été mis à jour avec succès. </h4>';
}
else // Sinon c'est que le pseudo existe déjà et on affiche une erreur
{
// Le pseudo est déjà utilisé
$message = '<h4 class="alert_warning">Ce pseudo est déjà utilisé, changez-le.</h4>';
}
}
}
else // Au moins un des deux champs : "pseudo" ou "mail" n'a pas été rempli
{
// On affiche une erreur
$message = '<h4 class="alert_error">Les champs "Pseudo" et "Email" doivent être remplis.</h4>';
}
}
// Avec cette requête on recupere les données de l'administrateur à modifier
$requete_recup_admin = "SELECT pseudo, mail FROM ".$admin." WHERE ID = ".$id_administrateur."";
// Exécution de la requête
$infos_administrateur = mysqli_query($bdd,$requete_recup_admin) or exit(mysqli_error($bdd));
// Création du tableau associatif du résultat
$donnees_administrateur = mysqli_fetch_assoc($infos_administrateur);
// 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 $donnees_administrateur['pseudo']; ?>">
</fieldset>
<fieldset>
<label for="mail">Email : </label>
<input type="text" name="mail" id="mail" value="<?php echo $donnees_administrateur['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>[/php]
Le code fonctionne en partie : si je ne change pas les valeurs du formulaire rien ne ce passe comme prévu, je rentre un pseudo qui existe déjà il m'indique que le pseudo est déjà utilisé mais, pour l'UPDATE il m'affiche une page blanche et le pseudo ne change pas ? Franchement je ne sais pas ou est l'erreur #-o
Bonne soirée à vous :wink:
C'est bon trouver :mrgreen: j'ai fait une faute ici : (oublier ' )
[php]"UPDATE ".$admin." SET pseudo = ".$pseudo_administrateur."[/php]