Insertion dans une base de données MySQL
Fermé
veronav
Messages postés
3
Date d'inscription
vendredi 2 mars 2018
Statut
Membre
Dernière intervention
6 mars 2018
-
Modifié le 3 mars 2018 à 01:08
veronav Messages postés 3 Date d'inscription vendredi 2 mars 2018 Statut Membre Dernière intervention 6 mars 2018 - 6 mars 2018 à 20:06
veronav Messages postés 3 Date d'inscription vendredi 2 mars 2018 Statut Membre Dernière intervention 6 mars 2018 - 6 mars 2018 à 20:06
A voir également:
- Insertion dans une base de données MySQL
- Formules excel de base - Guide
- Insertion liste déroulante excel - Guide
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
3 réponses
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
Ambassadeur
1 556
2 mars 2018 à 20:01
2 mars 2018 à 20:01
bonsoir, quel langage de programmation utilises-tu?
Utilisateur anonyme
3 mars 2018 à 18:10
3 mars 2018 à 18:10
Bonjour
En plus de la question de yg_be :
Attention, je vois des $_post en minuscules dans ton code, alors que c'est $_POST en majuscules. PHP distingue les deux.
Et si tu veux envoyer un fichier par formulaire, il faut préciser dans la balise form l'encodage
Voir https://www.php.net/manual/fr/features.file-upload.post-method.php
De plus, tu testes si un certain bouton 'submit' a été déclenché, mais je n'en vois pas dans ton formulaire.
Tu utilises aussi les champs de ton formulaire directement dans ta requête, c'est la porte ouverte aux attaques. Puisque tu utilises PDO, sers-toi des requêtes préparées.
En plus de la question de yg_be :
Attention, je vois des $_post en minuscules dans ton code, alors que c'est $_POST en majuscules. PHP distingue les deux.
Et si tu veux envoyer un fichier par formulaire, il faut préciser dans la balise form l'encodage
enctype="multipart/form-data".
Voir https://www.php.net/manual/fr/features.file-upload.post-method.php
De plus, tu testes si un certain bouton 'submit' a été déclenché, mais je n'en vois pas dans ton formulaire.
Tu utilises aussi les champs de ton formulaire directement dans ta requête, c'est la porte ouverte aux attaques. Puisque tu utilises PDO, sers-toi des requêtes préparées.
jordane45
Messages postés
38319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 706
3 mars 2018 à 18:30
3 mars 2018 à 18:30
Bonjour,
J'ajouterai que tu as un souci au niveau de ta requête...
et comme le dit justement Lepère... utilise les requêtes préparées.
Voici comment correctement effectuer la connexion à ta bdd ET faire une requête préparée
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je t'invite également à lire ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ainsi que ça (afin de poster correctement ton code la prochaine fois )
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
J'ajouterai que tu as un souci au niveau de ta requête...
et comme le dit justement Lepère... utilise les requêtes préparées.
Voici comment correctement effectuer la connexion à ta bdd ET faire une requête préparée
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je t'invite également à lire ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ainsi que ça (afin de poster correctement ton code la prochaine fois )
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
veronav
Messages postés
3
Date d'inscription
vendredi 2 mars 2018
Statut
Membre
Dernière intervention
6 mars 2018
6 mars 2018 à 20:06
6 mars 2018 à 20:06
jai revu ma requete sans le fichier,je peux effectuer des enregistrements maintenant,mais jai un souci au niveau du fichier, comment l'inserer dans mon code et ou le placer? le prestataire devra mettre une photo de profil lors de linscription sur le site. voici ma table ouvrier:
# Nom Type Interclassement Attributs Null Défaut Extra Action
1 idouv int(11) Non Aucune AUTO_INCREMENT Modifier Modifier
2 nom varchar(25) utf8_general_ci Non Aucune Modifier Modifier
3 prenom varchar(40) utf8_general_ci Non Aucune Modifier Modifier
4 datnais date Non Aucune Modifier Modifier Supprimer Supprimer
5 exprof varchar(10) utf8_general_ci Non Aucune Modifier Modifier
6 photo blob Non Aucune Modifier Modifier Supprimer Supprimer
7 tel int(11) Non Aucune Modifier Modifier Supprimer Supprimer
9 act varchar(25) utf8_general_ci Non Aucune Modifier Modifier Supprimer
10 sexe varchar(255) utf8_general_ci Non Aucune Modifier Modifier
11 ville varchar(255) utf8_general_ci Non Aucune Modifier Modifier Supprimer
12 qualiteprof varchar(255) utf8_general_ci Non Aucune Modifier Modifier
13 extension varchar(255) utf8_general_ci Non Aucune
voici mon code revu:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=ptijob','root','');
var_dump($_POST);
if(isset($_POST ['name']) AND isset($_POST['prenoms'])AND isset($_POST['datenaissance'])AND isset($_POST['subject']) AND isset($_POST['phone']) AND isset($_POST['lieuhabitation'])AND isset($_POST['activite'])AND isset($_POST['sexe']) AND isset($_POST['ville']) AND isset($_POST['message']))
{
$req=$bdd->prepare('INSERT INTO ouvrier(nom,prenom,datnais,exprof,tel,lieuhab,act,sexe,ville,qualiteprof) VALUES(:name,:prenoms,:datenaissance,:subject,:phone,:lieuhabitation,:activite,:sexe,:ville,:message)');
$req->execute(array(
':name' => $_POST['name'],
':prenoms' => $_POST['prenoms'],
':datenaissance' => $_POST['datenaissance'],
':subject' => $_POST['subject'],
':phone' => $_POST['phone'],
':lieuhabitation' => $_POST['lieuhabitation'],
':activite' => $_POST['activite'],
':sexe' => $_POST['sexe'],
':ville' =>$_POST['ville'],
':message' => $_POST['message'],
));
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "succes";
}
else echo(" veuillez saisir tout les champs!");
?>
merci.
# Nom Type Interclassement Attributs Null Défaut Extra Action
1 idouv int(11) Non Aucune AUTO_INCREMENT Modifier Modifier
2 nom varchar(25) utf8_general_ci Non Aucune Modifier Modifier
3 prenom varchar(40) utf8_general_ci Non Aucune Modifier Modifier
4 datnais date Non Aucune Modifier Modifier Supprimer Supprimer
5 exprof varchar(10) utf8_general_ci Non Aucune Modifier Modifier
6 photo blob Non Aucune Modifier Modifier Supprimer Supprimer
7 tel int(11) Non Aucune Modifier Modifier Supprimer Supprimer
9 act varchar(25) utf8_general_ci Non Aucune Modifier Modifier Supprimer
10 sexe varchar(255) utf8_general_ci Non Aucune Modifier Modifier
11 ville varchar(255) utf8_general_ci Non Aucune Modifier Modifier Supprimer
12 qualiteprof varchar(255) utf8_general_ci Non Aucune Modifier Modifier
13 extension varchar(255) utf8_general_ci Non Aucune
voici mon code revu:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=ptijob','root','');
var_dump($_POST);
if(isset($_POST ['name']) AND isset($_POST['prenoms'])AND isset($_POST['datenaissance'])AND isset($_POST['subject']) AND isset($_POST['phone']) AND isset($_POST['lieuhabitation'])AND isset($_POST['activite'])AND isset($_POST['sexe']) AND isset($_POST['ville']) AND isset($_POST['message']))
{
$req=$bdd->prepare('INSERT INTO ouvrier(nom,prenom,datnais,exprof,tel,lieuhab,act,sexe,ville,qualiteprof) VALUES(:name,:prenoms,:datenaissance,:subject,:phone,:lieuhabitation,:activite,:sexe,:ville,:message)');
$req->execute(array(
':name' => $_POST['name'],
':prenoms' => $_POST['prenoms'],
':datenaissance' => $_POST['datenaissance'],
':subject' => $_POST['subject'],
':phone' => $_POST['phone'],
':lieuhabitation' => $_POST['lieuhabitation'],
':activite' => $_POST['activite'],
':sexe' => $_POST['sexe'],
':ville' =>$_POST['ville'],
':message' => $_POST['message'],
));
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "succes";
}
else echo(" veuillez saisir tout les champs!");
?>
merci.
2 mars 2018 à 23:54
3 mars 2018 à 00:49
3 mars 2018 à 11:12
session_start(); # Ouverture des sessions
define('HOST', 'localhost');
define('USER','root');
define('PASSWORD','');
define('BDD','ptijob');
try
{
$bdd = new PDO('mysql:host='.HOST.';dbname='.BDD, USER, PASSWORD);
}
catch(Exception $err)
{
die('erreur ['.$err->getCode().'] '.$e->getMessage());
}
//var_dump($_POST);
if(isset($_post ['submit'])){ // si le bouton valider a été déclencher
if (isset($_post['name'],$_post ['prénoms'],$_post ['phone'],$_post ['photo'] )){
if ($_post['name']!="" && $_post ['prénoms'] !="" && $_post ['phone'] !="" && $_post ['photo'] !=" " ){
$name=$_POST['name'];
$prénoms=$_POST['prénoms'];
$phone=$_POST['phone'];
$nomphoto=$_FILES['photo'] ['name'];
$file_tmp_name=$FILES ['photo'] ['tmp_name'];
move_uploaded_file($file_tmp_name,"./photos/$nomphoto");
// enregistrement dans la base de donnée
$insertion="INSERT INTO ouvrier( nom,prenom,photo,tel,extension) VALUES ('$name','$prénoms', '$nomphoto','$phone','$extension' )";
$execute=$bdd->query($insertion);
if($execute==true){
$msgsuccess="Inscription réalisée avec sccuèes!";
}
else
{
$msgerror="l'inscription n'a pas pu être éffectuée.Verifiez que vous avez remplie tous les champs.";
}
}
}
}
?>
<html>
<meta charset="utf-8">
<body>
<table width="100%" border="1">
<tr>
<td>NOM:</td>
<td><?php echo($name)?></td>
</tr>
<tr>
<td>Prénoms:</td>
<td><?php echo( $prénoms)?></td>
</tr>
<tr>
<td>Télephone:</td>
<td><?php echo($phone)?></td>
<tr>
<td>Photo:</td>
<td><?php echo($nomphoto)?></td>
</tr>
</table>
</body>
</html>
3 mars 2018 à 12:12
5 mars 2018 à 15:23