Re-Bonjour à toutes les personnes qui verrons mon message , j'ai un autre problème , dont je n'arrive pas a comprendre l'erreur ou plutot l'inaction de ma requete UPDATE , qui ne modifie pas les informations depuis mon formulaire, je previens le probleme ne viens pas du fait que je ne suis pas relié et connecté a ma BD parce que je suis connecté, j'ai utiliser la methode "POST" car mes infos proviennent d'un formulaire
PS : le "update" correspond au "name" de mon bouton .
<?php require_once "link-BD.php";?>
<?php
if (isset($_POST['update'])) {
$id = $_POST['id'];
$nom = $_POST['Nom'];
$prenom = $_POST['Prenom'];
$email = $_POST['Email'];
$Ville = $_POST['Ville'];
$phone = $_POST['Telephone'];
$Date = $_POST['Date_de_Naissance'];
$query= mysqli_query($link, "UPDATE `clients` SET `Nom`='$nom',`Prenom`='$prenom',`Email`='$email]',`Ville`='$Ville',`Telephone`='$phone',`Date_de_Naissance`='$Date' WHERE id=$id");
header('location: liste2.php');
}
?>
Ce que je veux
Modifier les infos de ma table depuis un formulaire avec "UPDATE"
Ce que j'obtiens
aucun changement
Bonjour,
Bonjour ,
Tout dabord merci de ton aide, alors "Ta requête est ouverte aux injections sql car elle n'est pas préparer" c'est à dire ?
et oui effectivement voici les erreurs affichées: ```Warning: Undefined array key "Nom" in /Applications/MAMP/Répertoire www/Le Carnet de l'Apothicaire/save.php on line 5
Warning: Undefined array key "Prenom" in /Applications/MAMP/Répertoire www/Le Carnet de l'Apothicaire/save.php on line 6
Warning: Undefined array key "Email" in /Applications/MAMP/Répertoire www/Le Carnet de l'Apothicaire/save.php on line 7
Warning: Undefined array key "Telephone" in /Applications/MAMP/Répertoire www/Le Carnet de l'Apothicaire/save.php on line 9
Warning: Undefined array key "Date_de_Naissance" in /Applications/MAMP/Répertoire www/Le Carnet de l'Apothicaire/save.php on line 10````
Concernant le $email, petite erreur ... :)
et pour finir le fait qu'il ait des "'" ou "" est normal ce n'est pas un probleme g copier la structure directement depuis mon PhpMyAdmin. Voila voila , n'hesite pas a me dire selon toi d'ou viens le probleme s'il te plait
injections sql = piratage de la BDD (fait une recherche)
Je parlais des ' et des " qu'un utilisateur pourrait rentrer dans les champs input
avant de faire des affectations, il faut vérifier que la variable existe (et mieux, qu'elle n'est pas vide)
Qu'elle est le html du formulaire ?
Ok ok merci , et oui mes variables ne sont pas vides, voici le html du formulaire : ```<form class="formulaire" action="save.php" method="post">
<h1>Modifier les informations du client</h1>
<div class="barre-form"></div>
<div class="formulaire-contents">
<!--cacher l'id -->
<input type="hidden" name="id" value="<?php echo $id; ?>">
<!-- NOM -->
<div class="nom-form">
<label for="last-name"> Nom : </label>
<input type="text" name="name" value="<?php echo $nom; ?>">
</div>
<!-- PRENOM -->
<div class="prenom-form">
<label for="first-name"> Prenom : </label>
<input type="text" name="prenom" value="<?php echo $prenom; ?>">
</div>
<!-- EMAIL -->
<div class="mail-form">
<label for="email">Adresse mail : </label>
<input type="text" name="email" value="<?php echo $email; ?>">
</div>
<!-- ADRESSE/VILLE -->
<div class="adresse-form">
<label for="adresse">Ville : </label>
<input type="text" name="Ville" value="<?php echo $Ville; ?>">
</div>
<!-- N°TEL -->
<div class="phone-form">
<label for="phone">N° de teléphone </label>
<input type="text" name="phone" value="<?php echo $phone; ?>">
</div>
<!-- DATE DE NAISSANCE -->
<div class="BirthDate-form">
<label for="Birth-date"> Date de naissance</label>
<input type="text" name="Date-de-naissance" value="<?php echo $Date; ?>">
</div>
<!-- SUBMIT -->
<div class="submit-btn">
<input type="submit" value="Enregistrer les modifications" name="update">
</div>
</div>
</form>
désolé pour la mise en page , sais-tu comment je pourrais mettre en page mon code sur le forum ?
pour la mise en page, il faut utiliser les balises du markdown
3 ` ton code et 3 ` pour finir (backstick de mémoire - alt gr + 7)
que donne un var_dump($_POST); juste avant le $id =
D'accord merci , voyons voir :array(8) { ["id"]=> string(2) "44" ["name"]=> string(3) "Joe" ["prenom"]=> string(4) "John" ["email"]=> string(13) "JJ@icloud.com" ["Ville"]=> string(9) "Las Vegas" ["phone"]=> string(15) "07 33 45 67 82 " ["Date-de-naissance"]=> string(10) "1993-06-21" ["update"]=> string(29) "Enregistrer les modifications" }
, voici ce que cela m'affiche
Bonsoir, merci encore une fois de m'aider, J'ai fait ce que tu m'a dit sauf que mes inputs ne sont pas vides , tout les champs sont bel et bien renseigner. A moins de ne pas avoir compris ce que tu voulais me dire ..? je ne sais pas
relis tes index de $_POST et les name de tes input
ils sont différents,
tu n'as pas d'index "Telephone", mais "phone"
une petite relecture du cours sur la transmistion des données par la méthode POST
Bonjour merci de ton aide , j'avais effectivement mis le nom des colonnes de ma BDD au lieu de ce de mes attributs name de mes inputs , souci regler , je te remercie :)