Modifier seulement un champ email dans un formulaire.
Résolu/Ferméameb2908 Messages postés 89 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 25 novembre 2024 - 11 oct. 2023 à 14:55
- Modifier seulement un champ email dans un formulaire.
- Comment modifier un pdf - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Comment creer un compte email - Guide
- Modifier story facebook - Guide
5 réponses
3 oct. 2023 à 18:42
Bonjour,
Tu veux modifier quel champ ? avec quelle(s) ligne(s) de code exactement ? ( la flemme de tout lire pour essayer de deviner ce que tu veux faire ! )
8 oct. 2023 à 14:19
Bonjour, je reviens vers toi Jordan, malheureusement j'ai du m'absenter.
Entretemps, j'ai travailler sur le sujet, le champ Mail se met bien à jour mais j'ai pas les messages de succès ou d'erreurs.
Voici mon code :
process/process-update-profil.php
<?php $regex_mail = '/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-z]{2,3}$/'; $manager = new utilisateurManager($db); if(isset($_POST['submit_form'])) { $mail_form = trim($_POST['mail_form']); if($mail_form == $_SESSION['mail_form']) { return false; } elseif(empty($mail_form)) { $error_mail = '<p class="error_msg">Ce champ ne peut pas être vide !</p>'; } elseif(!preg_match($regex_mail, $mail_form)) { $error_mail = '<p class="error_msg">Format invalide pour ce mail !</p>'; } elseif($manager->readUserMail($mail_form)) { $error_mail = '<p class="error_msg">Ce mail est déjà pris !</p>'; } else { $current_user = $manager->readUserData($_SESSION['id']); $new_content = array('id' => (int) $current_user['id'], 'pseudo' => $current_user['pseudo'], 'mail' => $current_user['mail'], 'mdp' => $current_user['mdp']); $user_to_update = new Utilisateur($new_content); $user_to_update->setId($_SESSION['id']); $user_to_update->setMail($mail_form); if(!$manager->updateUserData($user_to_update)) { $error_mail = '<p class="success_msg">La mise à jour du mail ' . $mail_form . ' n\'est pas effectuée.</p>'; $_SESSION['mail_form'] = $mail_form; header('Location: modifier-profil.php'); exit; } else { $error_mail = '<p class="error_msg">La mise à jour du mail ' . $mail_form . ' est effectuée.</p>'; } } }
8 oct. 2023 à 15:47
Bonjour
Et tu fais un écho de ta variable error_mail quelque part ?
Modifié le 8 oct. 2023 à 16:01
<?php session_start(); require('../include/inc-connexion.php'); require('../include/inc-config.php'); require('../class/Utilisateur.php'); require('../class/utilisateurManager.php'); require('../process/process-update-profil.php'); if(!isset($_SESSION['id'])) { header('Location: index.php'); exit; } $manager = new utilisateurManager($db); $user_mail = $manager->readUserData($_SESSION['id']); $mail = $user_mail['mail']; } ?> <!doctype html> <html lang="fr"> <head> <title>Modifier mon compte</title> <?php require('../include/inc-meta.php'); ?> <?php require('../include/inc-link.php'); ?> </head> <body> <?php require('../include/inc-menu.php'); ?> <div class="container"> <div class="row"> <div class="col-3"></div> <div class="col-6"> <h1>Modifier mes informations</h1> <form method="post"> <div class="mb-3"> <input type="email" class="form-control" name="mail_form" value="<?php echo $mail; ?>" placeholder="Mail"> </div> <?php if(isset($error_mail)) echo $error_mail ?> <div class="mb-3"> <input type="submit" class="btn btn-primary" name="submit_form" value="Modifier"> </div> </form> <br> <form method="post"> <div class="mb-3"> <input type="password" class="form-control" name="pass_form" value="" placeholder="Mot de passe actuel"> </div> <div class="mb-3"> <input type="password" class="form-control" name="new_pass_form" value="" placeholder="Nouveau mot de passe"> </div> <div class="mb-3"> <input type="password" class="form-control" name="confirm_pass_form" value="" placeholder="Confirmation du mot de passe"> </div> <div class="mb-3"> <input type="submit" class="btn btn-primary" name="submit_form_two" value="Modifier"> </div> </form> </div> </div> </div> <?php require('../include/inc-footer.php'); ?>
9 oct. 2023 à 11:27
Active l'affichage des erreurs PHP
et désactive ( le temps des tests) toutes les redirections
header('Location ....
et les éventuels return false; ( qui ne servent à rien si ils ne sont pas dans des fonctions de toutes façons !! )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question11 oct. 2023 à 14:55
Merci pour les réponses.
3 oct. 2023 à 18:44
Et à quel moment lis tu ce qui est envoyé par ton formulaire ( les variables $_POST ? )