Update data via un formulaire
Enzs
Messages postés
4
Statut
Membre
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 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 compte désactivé - 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.