Update data via un formulaire
Enzs
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à vous tous , je suis novice en php & mysql ... j'ai rencontré un problème pour modifier des étudiants via un formulaire , je suis bloqué et je sais pas quoi . besoin de coup de main merci d'avance
page edit.php <?php require_once("conn.php"); $code=$_GET['code']; $ps=$con->prepare("SELECT * FROM etudiants WHERE code=?"); $params=array($code); $ps->execute($params); $et=$ps->fetch(); ?> <!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Titre de la page</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <?php require_once("header.php")?> <?php require_once("footer.php")?> <div class="container"> <div class="panel panel-default spacer "> <div class="panel-heading"> Editer la liste des étudians </div> <div class="panel-body"> <form method="post" action="update.php" enctype="multipart/form-data"> <div class="form-group"> <label class="control-label" > code : <?php echo ($et['code']) ?> </label> <input type="hidden" name="nom" value="<?php echo($et['code'])?>" class="form-control"/> </div> <div class="form-group"> <label class="control-label" >Nom </label> <input type="text" name="nom" value="<?php echo($et['nom'])?>" class="form-control"/> </div> <div class="form-group"> <label class="control-label" >Email </label> <input type="text" name="email" value="<?php echo($et['email'])?>" class="form-control"/> </div> <div class="form-group"> <label class="control-label" >Photo </label> <input type="file" name="photo" class="form-control"/> <img src="./img/<?php echo($et['photo'])?>" width="100" height="100"> </div> <button type="submit">save</button> </form> </div> </div> </div> </body> </html> ?>
update.php <?php require_once("conn.php"); $code=$_POST['code']; $nom=$_POST['nom']; $email=$_POST['email']; $nomPhoto=$_FILES['photo']['name']; if ($nomPhoto==""){ $ps=$con->prepare("UPDATE etudiants SET nom=?,email=? WHERE code=?"); $params=array($nom, $email,$code); }else{ $fichierTempo = $_FILES['photo']['tmp_name']; move_uploaded_file($fichierTempo, './img/' . $nomPhoto); $ps=$con->prepare("UPDATE etudiants SET nom=?,email=?,photo=? WHERE code=?"); $params=array($nom, $email, $nomPhoto,$code); $ps->execute($params); } header("location:etudiants.php"); ?>
A voir également:
- Update data via un formulaire
- Whatsapp formulaire opposition - Guide
- App data - Guide
- Formulaire de réclamation facebook - Guide
- Windows update bloqué - Guide
- Winget update - Guide
1 réponse
Bonjour,
Tu dis être bloqué... sans expliqué le souci...
Un message d'erreur ?? le comportement voulu n'est pas là ?? autre chose ??
Quoi qu'il en soit, je t'invite à lire et à appliquer le contenu de ces deux liens
--> Activer les erreurs pdo ET mettre chaque requête dans un bloc try/catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
---> Activer les erreurs php
---> récupérer proprement les variables AVANT de les utiliser
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et bien entendu, pour voir les éventuelles erreurs, penser à mettre en commentaire les redirections dans ton code
Ton code un peu revu et corrigé (avec gestion des erreurs éventuelles... )
Tu dis être bloqué... sans expliqué le souci...
Un message d'erreur ?? le comportement voulu n'est pas là ?? autre chose ??
Quoi qu'il en soit, je t'invite à lire et à appliquer le contenu de ces deux liens
--> Activer les erreurs pdo ET mettre chaque requête dans un bloc try/catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
---> Activer les erreurs php
---> récupérer proprement les variables AVANT de les utiliser
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et bien entendu, pour voir les éventuelles erreurs, penser à mettre en commentaire les redirections dans ton code
Ton code un peu revu et corrigé (avec gestion des erreurs éventuelles... )
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once("conn.php"); $code = !empty($_POST['code']) ? $_POST['code'] : NULL; $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $nomPhoto =$_FILES['photo']['name']) ? $_FILES['photo']['name'] : NULL; $datas =array($nom, $email); $sql = "UPDATE etudiants SET nom=?,email=? "; if($nomPhoto ){ // les différentes erreurs possibles lors de l'upload $phpFileUploadErrors = array( 0 => 'There is no error, the file uploaded with success', 1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini', 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', 3 => 'The uploaded file was only partially uploaded', 4 => 'No file was uploaded', 6 => 'Missing a temporary folder', 7 => 'Failed to write file to disk.', 8 => 'A PHP extension stopped the file upload.', ); $fichierTempo = !empty($_FILES['photo']['tmp_name']) ? $_FILES['photo']['tmp_name'] : NULL; $fileError = $_FILES['photo']['error']; //on s'assure qu'il n'y a pas d'erreur lors de l'upload du fichier if( $fileError >0 ){ echo !empty($phpFileUploadErrors[$fileError]) ? $phpFileUploadErrors[$fileError] : " Erreur inconnue lors de l'upload"; exit; } //si le fichier a bien été téléchargé : if(move_uploaded_file($fichierTempo, './img/' . $nomPhoto)){ //si il y a une photo, on complète la requête et les datas $sql .= "photo=?"; $datas[] = $nomPhoto; }else{ echo "Erreur lors de la copie de la photo sur le serveur !"; exit(); } } //on ajout le where $sql .= " WHERE code=? "; $datas[] = $code; //on execute la requête try { $ps=$con->prepare($sql); $ps->execute($datas); //header("location:etudiants.php"); //laisser en commentaire le temps des tests... exit; }catch(Exception $e){ echo "Erreur lors de l'update !<br>"; echo $e->getMessage(); echo "<br> SQL : " . $sql; echo "<pre>"; print_r($datas); echo "</pre>"; }
Pense à lire les liens que je t'ai donné
Et reviens nous voir si tu as encore un souci.
Sinon, pense à mettre le sujet en résolu.