Enrengistrer plusieurs élements!
Résolu/Fermé
Pacificicatrice
Messages postés
5
Date d'inscription
samedi 7 décembre 2013
Statut
Membre
Dernière intervention
18 janvier 2016
-
8 déc. 2013 à 22:23
Pacificicatrice Messages postés 5 Date d'inscription samedi 7 décembre 2013 Statut Membre Dernière intervention 18 janvier 2016 - 9 déc. 2013 à 13:44
Pacificicatrice Messages postés 5 Date d'inscription samedi 7 décembre 2013 Statut Membre Dernière intervention 18 janvier 2016 - 9 déc. 2013 à 13:44
A voir également:
- Enrengistrer plusieurs élements!
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Copier coller plusieurs éléments - Guide
- Pdf elements - Télécharger - PDF
- Ma souris sélectionne plusieurs éléments lors d'un clic simple ✓ - Forum Windows
- Désolé... nous ne pouvons pas ouvrir ce classeur, car il est configuré pour afficher uniquement certains éléments nommés qui ne s’y trouvent pas. - Forum Excel
2 réponses
Salu salu,
je comprends pas trop la question.
Vous avez un formulaire avec un seul champ "name"(attention à la confusion avec vos noms qui sont pas clair). Donc forcément en POST vous n'aurez que cette valeur.
Que ce soit pour obtenir des valeurs d'un formulaire si vous en voulez plusieurs il faut plusieurs champs de saisie(input),
Entrez votre nom:
Entrez votre prénom:
[Valider]
Lors de la récupération de vos variables en PHP il faut donc en récupérer 2 aussi
Et pour la requête sql il faudra en envoyer 2 avec l'instruction insert et non une comme vous le faites.
Ici un cours sur le sujet:
http://sqlpro.developpez.com/cours/sqlaz/dml/
Et bien sûr votre base de données doit avoir plusieurs champs différents tels une colonne 'nom' et une colonne 'prenom'.
Le bout de piste me paraît assez évident, vous voulez plusieurs valeurs il faut l'indiquer dans le formulaire:
<input type="text" id="name" name="name" value="" />
Pourquoi un id et un name? vous allez utilisez soit l'un soit l'autre.
Et utilisez la même désignation ça prête à confusion.
<input type="text" name="nom" value="" />
<input type="text" name="prenom" value="" />
C'est déjà plus clair non? d'ailleurs à quoi sert l'attribut value puisque vous le laissez vide? autant l'enlever la valeur que vous voulez est celle rentrée dans le formulaire, encore mieux car plus simple plus efficace et plus rapide à comprendre(le reste est suerflu, inutile et complique les choses):
<input type="text" name="nom" />
<input type="text" name="prenom" />
et donc :
if isset($_POST['nom']) && isset($_POST['prenom']){
//si prenom et nom sont définis en POST on fait cela:
$nom=addslashes($_POST['nom']);/*pourquoi addslashes d'ailleurs? si c'est pour la sécurité ce n'est pas suffisant et vous rajoutez des slashes dans votre base ce qui est inutile*/
$prenom=addslashes($_POST['prenom']);
$sql="INSERT INTO users
(name, prenom)
VALUES (".$nom.",".$prenom);
//ici il vaudrait mieux vérifier que les valeurs soient bien correctes:
/* c'est à dire que ce soit bien des nom et rénom et pas n'importe quoi, sans ça on peut très bien insérer 0123456478979 comme nom ou prénom*/
/*
selon votre base aussi il peut être utile de vérifier aussi que le nom et le prénom n'existe pas déjà pour éviter les doublons
Sans ça votre base peut contenir un nombre infini de Dupont(nom) Jean(prénom) et il sera difficile de différencier l'un de l'autre. Les homonymes existent et le fait que 2 personnes s'appelant pareil(ou une personne s'inscrivant 2 fois) soit possible est simplemnt inconcevable; votre base de données et le programme qui va avec est tout simplement bon à jeter.
*/
$result=mysql_query($sql);
}else{
//une ou les 2 valeurs du formulaire sont manquantes
echo ("vous devez indiquer le nom et le prénom.");
}
Il sembles que le problème c'est que ce que vous faites n'est pas très clair pour vous, revoyez vos bases. Faites les mêmes script basique jusqu'à le maîtrisez parfaitement. De toute de façon ce n'est que ça la programmation : des choses basiques et simple mais qu'il faut connaître parfaitement pour pouvoir les utiliser pour des utilisations plus complexes.
je comprends pas trop la question.
Vous avez un formulaire avec un seul champ "name"(attention à la confusion avec vos noms qui sont pas clair). Donc forcément en POST vous n'aurez que cette valeur.
Que ce soit pour obtenir des valeurs d'un formulaire si vous en voulez plusieurs il faut plusieurs champs de saisie(input),
Entrez votre nom:
Entrez votre prénom:
[Valider]
Lors de la récupération de vos variables en PHP il faut donc en récupérer 2 aussi
Et pour la requête sql il faudra en envoyer 2 avec l'instruction insert et non une comme vous le faites.
Ici un cours sur le sujet:
http://sqlpro.developpez.com/cours/sqlaz/dml/
Et bien sûr votre base de données doit avoir plusieurs champs différents tels une colonne 'nom' et une colonne 'prenom'.
Le bout de piste me paraît assez évident, vous voulez plusieurs valeurs il faut l'indiquer dans le formulaire:
<input type="text" id="name" name="name" value="" />
Pourquoi un id et un name? vous allez utilisez soit l'un soit l'autre.
Et utilisez la même désignation ça prête à confusion.
<input type="text" name="nom" value="" />
<input type="text" name="prenom" value="" />
C'est déjà plus clair non? d'ailleurs à quoi sert l'attribut value puisque vous le laissez vide? autant l'enlever la valeur que vous voulez est celle rentrée dans le formulaire, encore mieux car plus simple plus efficace et plus rapide à comprendre(le reste est suerflu, inutile et complique les choses):
<input type="text" name="nom" />
<input type="text" name="prenom" />
et donc :
if isset($_POST['nom']) && isset($_POST['prenom']){
//si prenom et nom sont définis en POST on fait cela:
$nom=addslashes($_POST['nom']);/*pourquoi addslashes d'ailleurs? si c'est pour la sécurité ce n'est pas suffisant et vous rajoutez des slashes dans votre base ce qui est inutile*/
$prenom=addslashes($_POST['prenom']);
$sql="INSERT INTO users
(name, prenom)
VALUES (".$nom.",".$prenom);
//ici il vaudrait mieux vérifier que les valeurs soient bien correctes:
/* c'est à dire que ce soit bien des nom et rénom et pas n'importe quoi, sans ça on peut très bien insérer 0123456478979 comme nom ou prénom*/
/*
selon votre base aussi il peut être utile de vérifier aussi que le nom et le prénom n'existe pas déjà pour éviter les doublons
Sans ça votre base peut contenir un nombre infini de Dupont(nom) Jean(prénom) et il sera difficile de différencier l'un de l'autre. Les homonymes existent et le fait que 2 personnes s'appelant pareil(ou une personne s'inscrivant 2 fois) soit possible est simplemnt inconcevable; votre base de données et le programme qui va avec est tout simplement bon à jeter.
*/
$result=mysql_query($sql);
}else{
//une ou les 2 valeurs du formulaire sont manquantes
echo ("vous devez indiquer le nom et le prénom.");
}
Il sembles que le problème c'est que ce que vous faites n'est pas très clair pour vous, revoyez vos bases. Faites les mêmes script basique jusqu'à le maîtrisez parfaitement. De toute de façon ce n'est que ça la programmation : des choses basiques et simple mais qu'il faut connaître parfaitement pour pouvoir les utiliser pour des utilisations plus complexes.
Pacificicatrice
Messages postés
5
Date d'inscription
samedi 7 décembre 2013
Statut
Membre
Dernière intervention
18 janvier 2016
9 déc. 2013 à 13:44
9 déc. 2013 à 13:44
Hello!!
Merci pour tes belles réponses détaillées!!
Finalement j'ai réussi via un, $name=$_POST['name'];
$mail=$_POST['mail'];
$sql="INSERT INTO users VALUES ('', '$name', '$mail')";
Niveau fonctionnel, ca fonctionne. Mais j'aimerais suivre tes conseils pour avoir un code pas trop degeulasse quand même, même si ça fonctionne.
Comme tu as pu le voir, addslashes a disparu, que me conseillerais tu pour empêcher les injections etc?
Encore merci de ton temps, c'est top!
Bien à vous,
La folle, Paci.
Merci pour tes belles réponses détaillées!!
Finalement j'ai réussi via un, $name=$_POST['name'];
$mail=$_POST['mail'];
$sql="INSERT INTO users VALUES ('', '$name', '$mail')";
Niveau fonctionnel, ca fonctionne. Mais j'aimerais suivre tes conseils pour avoir un code pas trop degeulasse quand même, même si ça fonctionne.
Comme tu as pu le voir, addslashes a disparu, que me conseillerais tu pour empêcher les injections etc?
Encore merci de ton temps, c'est top!
Bien à vous,
La folle, Paci.
9 déc. 2013 à 01:51
http://www.w3schools.com/tags/att_form_enctype.asp
<form id="form_name" enctype="multipart/form-data" method="post" action="conf_form.php">
doit être
<form id="form_name" method="post" action="conf_form.php">
en gros votre script ne rime à rien et vous vous contentez de mêler plusieurs choses trouvées au hasard je ne sait où ce qui forcément ne voudra rien dire.
Pas de secret : Apprenez et vous saurez ;)