Bonjour s'il vous plait je sollicitte de l'aide au niveau de mon php lors de l'enregistrement d'un etudiant dans la base de donnees, je n'arrive pas a enregistrer sa photo et la je sais pas du tout quel est leprobleme
Bonjour s'il vous plait je sollicitte de l'aide au niveau de mon php lors de l'enregistrement d'un etudiant dans la base de donnees, je n'arrive pas a enregistrer sa photo et la je sais pas du tout quel est leprobleme
Bonjour,
quel type de base de données?
Essayes tu d'y enregistrer le fichier photo lui-même ou juste son url?
Peux-tu transmettre ton code? Sans quoi c'est dur de dire quoi que ce soit.
voici mon formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187 <?php include("identification.func.php"); ?> <!DOCTYPE html> <html lang="en"> <head> <!-- Required meta tags--> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content="Colorlib Templates"> <meta name="author" content="Colorlib"> <meta name="keywords" content="Colorlib Templates"> <!-- Title Page--> <title>confirmer vos infos</title> <!-- Icons font CSS--> <link href="vendor/mdi-font/css/material-design-iconic-font.min.css" rel="stylesheet" media="all"> <link href="vendor/font-awesome-4.7/css/font-awesome.min.css" rel="stylesheet" media="all"> <!-- Font special for pages--> <link href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i" rel="stylesheet"> <!-- Vendor CSS--> <link href="vendor/select2/select2.min.css" rel="stylesheet" media="all"> <link href="vendor/datepicker/daterangepicker.css" rel="stylesheet" media="all"> <!-- Main CSS--> <link href="css/main.css" rel="stylesheet" media="all"> <script type="text/javascript"> function getfile() { document.getElementById('hiddenfile').click(); } function getvalue() { document.getElementById('selectedfile').value=document.getElementById('hiddenfile').value; } </script> </head> <body> <div class="page-wrapper bg-blue p-t-100 p-b-100 font-robo"> <div class="wrapper wrapper--w680"> <div class="card card-1"> <div class="card-heading"></div> <div class="card-body"> <h2 class="title">Verifiez vos Infos</h2> <form method="POST" action="" enctype="multipart/form-data"> <div class="input-group"> <input class="input--style-1" type="text" placeholder="NOM" name="nom" value="<?= (isset($_POST['nom'])? $_POST['nom'] : '') ?>" > </div> <div class="input-group"> <input class="input--style-1" type="text" placeholder="PRENOM" name="prenom" value="<?= (isset($_POST['prenom'])? $_POST['prenom'] : '') ?>"> </div> <div class="input-group"> <input class="input--style-1" type="text" placeholder="MATRICUE" name="matricule" value="<?= (isset($_POST['matricule'])? $_POST['matricule'] : '') ?>"> </div> <div class="row row-space"> <div class="col-2"> <div class="input-group"> <input class="input--style-1 js-datepicker" type="text" placeholder="DATE DE NAISSANCE" name="daten" value="<?= (isset($_POST['daten'])? $_POST['daten'] : '') ?>"> <i class="zmdi zmdi-calendar-note input-icon js-btn-calendar"></i> </div> </div> <div class="input-group"> <input class="input--style-1" type="text" placeholder="LIEU DE NAISSANCE" name="lieu" value="<?= (isset($_POST['lieu'])? $_POST['lieu'] : '') ?>"> </div> <div class="col-2"> <div class="input-group" > <div class="rs-select2 js-select-simple select--no-search"> <select name="sexe" value=" <?= (isset($_POST['sexe'])? $_POST['sexe'] : '') ?>"> <option disabled="disabled" selected="selected" value="null">VOTRE SEXE</option> <option value="Homme" <?= (($_POST['sexe']=='Homme')? 'selected' : '') ?> >Homme</option> <option value="Femme" <?= (($_POST['sexe']=='Femme')? 'selected' : '') ?>>Femme</option> <option value="null">Autre</option> </select> <div class="select-dropdown"></div> </div> </div> </div> <div class="col-2"> <div class="input-group"> <div class="rs-select2 js-select-simple select--no-search"> <select name="nationalite" value=" <?= (isset($_POST['nationalite'])? $_POST['nationalite'] : '') ?>"> <option disabled="disabled" selected="selected" value="null">NATIONALITE</option> <option value="Camerounaise" <?= (($_POST['nationalite']=='Camerounaise')? 'selected' : '') ?> >Camerounaise</option> <option value="Tchadienne" <?= (($_POST['nationalite']=='Tchadienne')? 'selected' : '') ?>>Tchadienne</option> <option value="Gabonaise" <?= (($_POST['nationalite']=='Gabonaise')? 'selected' : '') ?>>Gabonaise</option> <option value="Centrafricainne" <?= (($_POST['nationalite']=='Centrafricainne')? 'selected' : '') ?>>Centrafricaine</option> <option value="Congolaise" <?= (($_POST['nationalite']=='Congolaise')? 'selected' : '') ?>>Congolaise</option> </select> <div class="select-dropdown"></div> </div> </div> </div> <div class="col-2"> <div class="input-group"> <div class="rs-select2 js-select-simple select--no-search"> <select name="cycle" value=" <?= (isset($_POST['cycle'])? $_POST['cycle'] : '') ?>"> <option disabled="disabled" selected="selected">CYCLE</option> <option value="DUT" <?= (($_POST['cycle']=='DUT')? 'selected' : '') ?>>DUT</option> <option value="LITECH" <?= (($_POST['cycle']=='LITECH')? 'selected' : '') ?>>LITECH</option> </select> <div class="select-dropdown"></div> </div> </div> </div> <div class="col-2"> <div class="input-group"> <div class="rs-select2 js-select-simple select--no-search"> <select name="filiere"> <option disabled="disabled" selected="selected" value="null">FILIERE</option> <option value="GIN" <?= (($_POST['filiere']=='GIN')? 'selected' : '') ?>>GIN</option> <option value="GBIO" <?= (($_POST['filiere']=='GBIO')? 'selected' : '') ?>>GBIO</option> <option value="GIM" <?= (($_POST['filiere']=='GIM')? 'selected' : '') ?>>GIM</option> </select> <div class="select-dropdown"></div> </div> </div> </div> <div class="input-group"> <? $root = '../photos/' ; $root2 = '../images/'?> <img src="<? if(isset($_POST['avatar'])){ echo('$avatar_tmp');} else{echo($root2.'im1.jpg '); }?>" alt="VOTRE PHOTO" width="140" height="140"/> <input type="file" style="display:none" name="avatar" id="hiddenfile" onChange="getvalue();"> <input type="file" id="hiddenfile" style="display:none" name="avatar" onChange="getvalue();"/><br/> <br/> <input type="text" id="selectedfile" value="Votre photo s'il vous plait"/> <input type="button" value="telecharger une photo" onclick="getfile();"/><br/> <br/> <?php if (isset($errorimg)) { echo '<div class="error" align="center">'.$errorimg.'</div><br/>'; } ?> </div> </div> <?php if (isset($error)) { echo '<div class="error" align="center">'.$error.'</div><br/>'; } ?> <div class="p-t-20"> <button class="btn btn--radius btn--green" type="submit" name="envoyer" >Confirmer</button> </div> </form> </div> </div> </div> </div> <!-- Jquery JS--> <script src="vendor/jquery/jquery.min.js"></script> <!-- Vendor JS--> <script src="vendor/select2/select2.min.js"></script> <script src="vendor/datepicker/moment.min.js"></script> <script src="vendor/datepicker/daterangepicker.js"></script> <!-- Main JS--> <script src="js/global.js"></script> </body><!-- This templates was made by Colorlib (https://colorlib.com) --> </html> <!-- end document-->
et voici le fichier de traitement nomme identification.func.php qui est charge d'enregistrer les informations dans la bd
le probleme est que tous s'enregistre sauf l'url de l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 <?php //echo "bienvenu sur la page d'enregistrement des membres"; include ("db.php"); if (isset($_POST['envoyer'])) { $avatar = $_FILES['avatar']['name']; $avatar_tmp = $_FILES['avatar']['tmp_name']; if ( isset($avatar) AND !empty($avatar)) { $image_ext = strtolower(end(explode('.',$avatar))); if (in_array($image_ext, array('jpg','jpeg','png','gif'))) { $chemin = move_uploaded_file($avatar_tmp, '../photos/'.$avatar); if(!$chemin) { $errorimg = " No such file or directory ."; } } else { $errorimg = " Veuillez choisir une image valide... !"; } } else { $errorimg = " Aucune image n'a été sélectionnée!"; } //print_r($_POST['envoyer']); // Si les champs sont bien remplis //print_r($_POST['matricule']); if ( !empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['matricule']) AND isset($_POST['daten']) AND !empty($_POST['lieu']) AND ($_POST['cycle'] != 'null') AND !empty($_POST['filiere']) AND ($_POST['nationalite'] != 'null') AND ($_POST['sexe'] != 'null') ) { // recuperation des valeurs saisies dans le formulaire par une requete preparee $prenom = htmlspecialchars($_POST['prenom']); $nom = htmlspecialchars($_POST['nom']); $matricule = htmlspecialchars($_POST['matricule']); $datenaiss = $_POST['daten']; $lieu = htmlspecialchars($_POST['lieu']); $cycle = htmlspecialchars($_POST['cycle']); $filiere = htmlspecialchars($_POST['filiere']); $nationalite = htmlspecialchars($_POST['nationalite']); $sexe = htmlspecialchars($_POST['sexe']); //print_r($nom); $taillematricule = strlen($matricule); if ($taillematricule <= 8 || preg_match('/[A-Z0-9_]/', $_POST['matricule'])) { $requete = $connect->prepare(' SELECT matricule FROM `Etudiant` WHERE matricule= ?'); $requete->execute(array($_POST['matricule'])); $result = $requete->fetch(); if($result) { $error = "Ce matricule n'est pas le votre, réesayez en un nouveau !"; } else { $requete = $connect->prepare('INSERT INTO Etudiant VALUES(:matricule, :nom, :prenom, :datenaiss, :lieunaiss, :nationalite, :code_cycle, :code_filiere, :sexe, :photo)'); $requete->execute(array('matricule' => $matricule, 'nom' => $nom, 'prenom' => $prenom, 'datenaiss' => date($datenaiss), 'lieunaiss' => $lieu, 'nationalite' => $nationalite, 'code_cycle' => $cycle, 'code_filiere' => $filiere, 'sexe' => $sexe, 'photo' => $avatar)); $requete->closeCursor(); if($requete) { echo ' <script type="text/javascript"> alert(" Vos données ont été enregistrées avec succès."); window.location.href="../index.php?po=login"; </script>'; } else { echo ' <script type="text/javascript"> alert("l\'opération a échouée, réesayez plus tard merci!..."); window.location.href="confirmer.php"; </script>'; } } } else { $error = "Votre matricule ne peut pas dépasser 8 caractères !"; } } else { $error = " Veuillez remplir tous les champs !"; } }
ce premier formulaire recois les informations provenant d'un autre formulaire pour la verification avant d'etre transmises dans la base de donnees
et la lurl de l'image l'ui n'entre pas
Je viens de faire un test et je ne reproduis par l'erreur.
L'url du fichier uploadé est bien enregistrée dans ma base de données.
Ton fichier est-il correctement uploadé sur ton serveur?
bonsoir desole pour mon indisponibilite en effet j'ai resolu le probleme . mais j'ai du decomposer mon code en deux une partie pour l'enregistrement des infos et l'autre pour la photo. mais c'est pas cette organisation du code que je voulais adopter
Bonjour,
Non, la méthode n'est pas bonne.
On ne peut pas simplement afficher le nom de l'image dans un 2ème formulaire, en espérant pouvoir la traiter dans un second temps.
La méthode classique :
1- 1er (et seul) formulaire : on remplit
2- on TRAITE le formulaire, et on enregistre en BDD
3- on ré-affiche les données, pour "vérification visuelle", avec un bouton "Retour au profil" et un autre bouton "Modifier ?" (avec l'id de la ligne en BDD en paramètre)
4- si on clique sur le bouton "Modifier", on revient au 1er formulaire, en mode "modification" (avec l'id de la ligne en BDD dans un input type="hidden")
En cas d'erreur (champ obligatoire manquant, email invalide,...), on utilise généralement les variables de SESSION pour ré-afficher le formulaire avec les données tapées.
Ou tout traiter sur la même page :
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager