Problème d'update php/mysqli
Résolu
Tzmagnum
Messages postés
132
Statut
Membre
-
Tzmagnum Messages postés 132 Statut Membre -
Tzmagnum Messages postés 132 Statut Membre -
Bonjour,
Pourquoi via ce code, quand je modifie les cases de mon formulaire rien ne change svp ?
Le select fonctionne, mais pas l'update.
Et pourquoi cela n'affiche pas le message suivant svp ?
Merci d'avance.
Pourquoi via ce code, quand je modifie les cases de mon formulaire rien ne change svp ?
Le select fonctionne, mais pas l'update.
Et pourquoi cela n'affiche pas le message suivant svp ?
"<div class='sucess'>
<h3>Votre profil a été modifié avec succés.</h3>
<p>Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p>
</div>"
Merci d'avance.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="../style.css" />
</head>
<body>
<?php
require('../config.php');
session_start();
// Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
if(!isset($_SESSION["username"])){
header("Location: ../login.php");
exit();
}
$sqlpr = "SELECT * FROM `users` WHERE `username` = '".$_SESSION['username']."'";
$requetepr = mysqli_query($conn,$sqlpr);
$resultpr = mysqli_fetch_array($requetepr);
if (isset($_REQUEST['username'], $_REQUEST['name'], $_REQUEST['email'])){
// récupérer le nom d'utilisateur
$username = stripslashes($_REQUEST['username']);
$username = mysqli_real_escape_string($conn, $username);
// récupérer le nom complèt de l'utilisateur
$name = stripslashes($_REQUEST['name']);
$name = mysqli_real_escape_string($conn, $name);
// récupérer l'email
$email = stripslashes($_REQUEST['email']);
$email = mysqli_real_escape_string($conn, $email);
$result = mysqli_query($conn,$query) or die(mysql_error());
$user = mysqli_fetch_assoc($result);
$query = "UPDATE `users` SET `username`='$username', `name`='$name', `email`='$email' WHERE `username`='".$_SESSION['username']."'";
$res = mysqli_query($conn, $query);
if($res){
echo "<div class='sucess'>
<h3>Votre profil a été modifié avec succés.</h3>
<p>Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p>
</div>";
}
}else{
?>
<form class="box" action="" method="post">
<h1 class="box-logo box-title">
<a href="http://lc-sd.be/visa/">Visa Lc-sd.be</a>
</h1>
<h1 class="box-title">Modification de votre profil</h1>
<input type="text" class="box-input" name="username" value="<?php echo $resultpr['username']; ?>" disabled="disabled" />
<input type="text" class="box-input" name="name" value="<?php echo $resultpr['name']; ?>" />
<input type="text" class="box-input" name="email" value="<?php echo $resultpr['email']; ?>" />
<input type="submit" name="submit" value="Modifier" class="box-button" />
<p class="box-index">Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p>
</form>
<?php } ?>
</body>
</html>
Configuration: Windows / Chrome 89.0.4389.90
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
d'où sort$_REQUEST
?-
Bonjour, j’ai vu dans un tutoriel qu’on pouvait récupérer les variables de mon formulaire comme cela.
Et mon formulaire d’inscription fonctionne avec cela via ma requête insert. Et celui-ci fonctionne.
Bien à vous- Si tu relis bien le code tu vas voir que le
else
est bien présent :
if($res){ echo "<div class='sucess'> <h3>Votre profil a été modifié avec succés.</h3> <p>Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </div>"; } }else{ ?> <form class="box" action="" method="post"> <h1 class="box-logo box-title"> <a href="http://lc-sd.be/visa/">Visa Lc-sd.be</a> </h1> <h1 class="box-title">Modification de votre profil</h1> <input type="text" class="box-input" name="username" value="<?php echo $resultpr['username']; ?>" disabled="disabled" /> <input type="text" class="box-input" name="name" value="<?php echo $resultpr['name']; ?>" /> <input type="text" class="box-input" name="email" value="<?php echo $resultpr['email']; ?>" /> <input type="submit" name="submit" value="Modifier" class="box-button" /> <p class="box-index">Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </form> <?php } ?>
Merci quand même
-
-
Bonjour,
Un peu de lecture :
https://www.php.net/manual/fr/mysqli.error.php
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ce qui donnerait un truc du genre :
<?php // Démarrage des session ( à mettre AU TOUT DEBUT DES FICHIERS AVANT TOUT LE RESTE ) session_start(); //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('../config.php'); // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion if(!isset($_SESSION["username"])){ header("Location: ../login.php"); exit(); } // Récupération propre des variables AVANT de les utiliser $username = !empty($_SESSION["username"]) ? $_SESSION["username"]: NULL; $form_username = !empty($_POST['username'] ) ? $_POST['username']: NULL; $form_name= !empty($_POST['name'] ) ? $_POST['name']: NULL; $form_email = !empty($_POST['email'] ) ? $_POST['email']: NULL; $sqlpr = "SELECT * FROM `users` WHERE `username` = '".$username."'"; if(! $requetepr = mysqli_query($conn,$sqlpr)){ printf("Erreur dans la requete : %s\n", $mysqli->error); exit; } $resultpr = mysqli_fetch_array($requetepr); if($form_name && $form_username && $form_email ){ $username = mysqli_real_escape_string($conn, $username); $name = mysqli_real_escape_string($conn, $name); $email = mysqli_real_escape_string($conn, $email); $query = "UPDATE `users` SET `username`='$form_username', `name`='$form_name', `email`='$form_email' WHERE `username`='".$username."'"; if(! $res = mysqli_query($conn, $query)){ printf("Erreur dans la requete : %s\n", $mysqli->error); exit; } } <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="../style.css" /> <meta charset="utf-8"> </head> <body> <?php if($form_name && $form_username && $form_email ){ if($res){ echo "<div class='sucess'> <h3>Votre profil a été modifié avec succés.</h3> <p>Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </div>"; } }else{ ?> <form class="box" action="" method="post"> <h1 class="box-logo box-title"> <a href="http://lc-sd.be/visa/">Visa Lc-sd.be</a> </h1> <h1 class="box-title">Modification de votre profil</h1> <input type="text" class="box-input" name="username" value="<?php echo $resultpr['username']; ?>" disabled="disabled" /> <input type="text" class="box-input" name="name" value="<?php echo $resultpr['name']; ?>" /> <input type="text" class="box-input" name="email" value="<?php echo $resultpr['email']; ?>" /> <input type="submit" name="submit" value="Modifier" class="box-button" /> <p class="box-index">Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </form> <?php } ?> </body> </html>
-
Bonjour,
Merci, j'ai testé.
Mais malgré tout malheureusement l'update ne se fait pas, je ne comprends pas même en lisant les 2 pages que tu m'as donné, pourquoi cela ne fonctionne pas et il n'y a aucun code erreur.
Cela ré-affiche simplement le formulaire après avoir par exemple changer le nom et avoir cliquer sur "modifier"
Merci d'avance.
<?php // Démarrage des session ( à mettre AU TOUT DEBUT DES FICHIERS AVANT TOUT LE RESTE ) session_start(); //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('../config.php'); // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion if(!isset($_SESSION["username"])){ header("Location: ../login.php"); exit(); } // Récupération propre des variables AVANT de les utiliser $username = !empty($_SESSION["username"]) ? $_SESSION["username"]: NULL; $form_username = !empty($_POST['username'] ) ? $_POST['username']: NULL; $form_name= !empty($_POST['name'] ) ? $_POST['name']: NULL; $form_email = !empty($_POST['email'] ) ? $_POST['email']: NULL; $sqlpr = "SELECT * FROM `users` WHERE `username` = '".$username."'"; if(! $requetepr = mysqli_query($conn,$sqlpr)){ printf("Erreur dans la requete : %s\n", $mysqli->error); exit; } $resultpr = mysqli_fetch_array($requetepr); if($form_name && $form_username && $form_email ){ $username = mysqli_real_escape_string($conn, $username); $name = mysqli_real_escape_string($conn, $name); $email = mysqli_real_escape_string($conn, $email); $query = "UPDATE `users` SET `username`='$form_username', `name`='$form_name', `email`='$form_email' WHERE `username`='".$username."'"; if(! $res = mysqli_query($conn, $query)){ printf("Erreur dans la requete : %s\n", $mysqli->error); exit; } } ?> <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="../style.css" /> <meta charset="utf-8"> </head> <body> <?php if($form_name && $form_username && $form_email ){ if($res){ echo "<div class='sucess'> <h3>Votre profil a été modifié avec succés.</h3> <p>Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </div>"; } }else{ ?> <form class="box" action="" method="post"> <h1 class="box-logo box-title"> <a href="http://lc-sd.be/visa/">Visa Lc-sd.be</a> </h1> <h1 class="box-title">Modification de votre profil</h1> <input type="text" class="box-input" name="username" value="<?php echo $resultpr['username']; ?>" disabled="disabled" /> <input type="text" class="box-input" name="name" value="<?php echo $resultpr['name']; ?>" /> <input type="text" class="box-input" name="email" value="<?php echo $resultpr['email']; ?>" /> <input type="submit" name="submit" value="Modifier" class="box-button" /> <p class="box-index">Cliquez <a href='home.php'>ici</a> pour retourner à la page d'accueil</p> </form> <?php } ?> </body> </html> -
-
Ah.. je viens de voir...
Enleve le disabled="disabled" ... et utilise, à la place, le readonly
https://www.w3schools.com/tags/att_input_readonly.asp
Sinon, le username n'est jamais envoyé dans le form -
Bonjour,
Avec readonly et « var_dump($_POST) » au début, cela fonctionne, mais cela m’affiche les erreurs suivantes :
array(4) { ["username"]=> string(5) "Admin" ["name"]=> string(19) "Tziolopoulos Kevin1" ["email"]=> string(18) "tzmagnum@gmail.com" ["submit"]=> string(8) "Modifier" }
Notice: Undefined variable: name in /var/www/visa/admin/profil_admin.php on line 36
Notice: Undefined variable: email in /var/www/visa/admin/profil_admin.php on line 37
C’est un serveur dédier Ovh.
Et l’url lorsque je fais le submit, c’est la même que celle du formulaire : http://lc-sd.be/visa/login.php
Merci d’avance. -
-
-