Formulaire PHP pour insérer dans BDD

Résolu/Fermé
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 4 févr. 2008 à 14:09
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 28 oct. 2009 à 13:20
Bonjour,
je souhaite réaliser un formulaire en PHP (je suis novice) afin de récolter des informations sur l'utilisateur (nom, prenom, mail, mdp, ...) et je voudrais créer un script pour que ces informations s'ajoutent directement dans une table de ma base de données donc si quelqu'un peut m'aider ou me donner un script ça serait bien sympa.

Merci d'avance
A voir également:

12 réponses

Bonjour,

Je te donne la marche à suivre mais il va falloir que tu fasses des recherches aussi ^^ c'est tout simple.

Dans ta page de formulaire par exemple :

<form method="post" action="cible.php">
<input type="text" name="nom">
...
</form>

Et dans ta page cible :

$nom = $_POST["nom"];
mysql_query("INSERT INTO table VALUES ."'$nom'".");

Cela fait pas mal de temps que je n'est pas fait de php, j'ai pu insérer pleins de fautes mais le principe est là, et les tutoriaux sur internet pour ce genre de choses sont plus que complets.
Bonne chance à toi !
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
4 févr. 2008 à 14:26
Merci bien Alex c'est toujours ça de pris !!
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
4 févr. 2008 à 16:07
Je n'arrive pas à ce que des lignes s'ajoutent dans ma table user de ma base de données lorsque je remplis le formulaire si quelqu'un peut m'aider, voici mes deux fichiers :

formulaire.html

<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="cible.php">
idUSER : <input type="text" name="idUSER"><br>
idADMIN : <input type="text" name="idADMIN"><br>
Nom : <input type="text" name="nom"><br>
Prenom : <input type="text" name="prenom"><br>
Mail : <input type="text" name="mail"><br>
Mot_de_passe : <input type="text" name="mdp"><br>
<input type="submit" name="submit" value="insérer">
</form>
</body>
</html>



et cible.php :

<?php
//paramètres de connexion
require('C:\Projet_homelive\parametres\mysql_params.php');
//fonctions de connexion au serveur mysql
require('C:\Projet_homelive\utils\mysql_connexion.php');

//connexion à la base de données
//paramètres : serveur, utilisateur, mot de passe, base de données
$link = DBconnect($serveur,$user,$mdp,$bdd);

$idUSER = $_POST['idUSER'];
$idADMIN = $_POST['idADMIN'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$mail = $_POST['mail'];
$mdp = $_POST['mdp'];


mysql_query("INSERT INTO user VALUES(' ','$idUSER','$idADMIN','$nom','$prenom','$mail','$mdp')");
echo "Vos données ont été envoyées !";
mysql_close();
?>

De plus, j'aurais voulu savoir si quelqu'un pouvait me dire comment fait-on pour que le mot de passe n'apparaisse pas lorsque l'on remplit le formulaire ( caractères remplacés par des étoiles)
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
4 févr. 2008 à 16:16
Bon bah c'est bon j'ai réussi à insérer des lignes dans ma table par contre Odd j'ai essayé avec input type="password" ça ne marche si tu dis que c'est du php il ne faut plus que mon formulaire soit en HTML non ?
De plus j'aurais voulu connaître les fonctions pour reconnaître si il y a bien quelque chose dans la case ou pour reconnaître si c'est bien des chiffres, des adresses mails, etc ... et comment utiliser ces fonctions

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 févr. 2008 à 16:19
pour l'enregistrement essayes ça:

$enr=mysql_query("INSERT INTO user VALUES(' ','".$idUSER."','".$idADMIN."','".$nom."','".$prenom."','".$mail."','".$mdp."')") or die ("Erreur requette ".mysql_error());
mysql_close();
if($enr){
	echo "Vos données ont été envoyées !";
}else{
	echo "Probleme technique, vos données n'ont pas été envoyées !";
}
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
4 févr. 2008 à 16:29
bon bah j'ai réussi à "crypter" le mot de passe dans le formulaire en revanche c'est lorsqu'il apparait dans ma table de BDD il n'est pas crypté il faudrait peut être que je mette MD5 mais je ne trouve pas alors que quand j'insere manuellement des données je peux choisir MD5 et ainsi crypter le mot de passe dans la table.
Je suis toujours à la recherche de fonctions pour reconnaître si il y a bien quelque chose dans la case ou pour reconnaître si c'est bien des chiffres, des adresses mails, etc....

Merci !!!
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
4 févr. 2008 à 17:27
J'aurais voulu savoir comment insérer des fonctions telles que isset dans mon script et pouvoir indiquer un message (Veuillez compléter tel case) si ce n'est pas bon voila mon script :

//connexion à la base de données
//paramètres : serveur, utilisateur, mot de passe, base de données
$link = DBconnect($serveur,$user,$mdp,$bdd);

$idUSER = $_POST['idUSER'];
$idADMIN = $_POST['idADMIN'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$mail = $_POST['mail'];
$mdp = $_POST['mdp'];

mysql_query("INSERT INTO user VALUES('$idUSER','$idADMIN','$nom','$prenom','$mail','$mdp')");
echo "Vos données ont été envoyées !";
mysql_close();

je ne sais omment mettre ces fonctions donc si quelqu'un peut m'aider
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 févr. 2008 à 18:46
Pour les tests:

if(isset($_POST['idUSER']) {
	$idUSER = $_POST['idUSER'];
}else{
	$idUSER="";
}
//ou par la methode opérateur ternaire (ça fait la même chose que les 5 lignes ci dessus):
$idUSER = (isset($_POST['idUSER'])) ? ($_POST['idUSER']) : "" ;// ? equivalent à if   puis valeur si vrai : valeur si faux

//pour tester:
if($idUSER=="") //si vide
if($idUSER!="") //si pas vide
if(is_num($idUSER)) //si numerique
if(!is_num($idUSER)) //si pas numerique

// tu peux pour le mail utiliser les REGEX vas voir le site:

www.siteduzero.com
0
Bonjour,


Je suis débutant et je n'arrive pas a faire fonctionner mon formulaire newsletter. Pouvez vous me donner un coup de main sur ce problème de premier choix.

Je ne reçois pas l' Email de confirmation

Pouvez-vous adapter <?php……?> avec <form>……</form>


Le lien de ma page: http://www.cijoint.fr/cjlink.php?file=cj200910/cijyw5NMrK.txt


<head>

<?php if($_POST['action'] == "formok")
{
$e_mail = $_POST['email'];
if($e_mail == ""|| $e_mail == "e-mail")
{
$txt = " votre e-mail";
}
else
{
$destinataire= "bwba@hotmail.fr";
$objet = "Demande d'inscription";
$headers = "From: bwba@hotmail.fr \n\r";
$headers.= "Content-Type: text/html; charset=utf-8";
$headers .= "MIME-Version: 1.0 ";
$msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
$msg = nl2br($msg);
mail($destinataire, $objet, $msg, $headers);
$msg2= "
Nous avons bien pris en compte votre demande d'inscription ? la newsletter.
Pour vous d?sinscrire, contactez nous

";
mail($e_mail, $objet, $msg2, $headers);
$txt = "Vous avez un message";
}
}
?>
</head>





<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}
}
</style>




<body>

<form action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="submit" class="submit" id="submit"
value="envoyer" type="submit"></span></span></fieldset>
</form>

</body>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 oct. 2009 à 09:36
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;
}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}

</style>
<?php
 if(isset($_POST['envoyer']) &&  $_POST['envoyer'] !=""){
 //le formulaire a ete poste
	$e_mail = htmlentities($_POST['email']);
	if($e_mail == ""){
	//pas vide ?
		echo " <font color='red'>Veuillez saisir votre adresse mail !</font>";
	}elseif(!ereg(".+(@.+)(.:alpha:{2}(:alpha:?))$",$e_mail)){
		//format valide ?
		echo " <font color='red'>Format d'adresse mail non valide!</font>";
	}else{
		$destinataire= "bwba@hotmail.fr";
		$objet = "Demande d'inscription";
		$headers = "From: bwba@hotmail.fr \r\n";
		$headers.= "Content-Type: text/html; charset=utf-8"."\r\n";
		$headers .= "MIME-Version: 1.0 "."\r\n";
		$msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
		$msg = nl2br($msg);
		$msg2= "<html><body>
		Nous avons bien pris en compte votre demande d'inscription &agrave; la newsletter.
		Pour vous d&eacute;sinscrire, contactez nous.";
		//envoi du mail de demande à toi
		$envoi_mail_1=mail($destinataire, $objet, $msg, $headers);
		if($envoi_mail_1){
			echo "Merci, votre demande a &eacute;t&eacute; envoy&eacute;e. ";
		}else{
			echo "Probl&egrave;me d'envoi du mail";
		}
		//envoi du mail de confirmation a l'utilisateur
		$envoi_mail_U=mail($e_mail, $objet, $msg2, $headers);
		if($envoi_mail_U){
			echo "<br />Vous allez recevoir un mail de confirmation. ";
		}
	}
}
?>
<body>

<form name="form1" action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="envoyer" class="submit" id="submit"
value="Envoyer" type="submit"></span></span></fieldset>
</form>

</body>
</html>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 oct. 2009 à 13:20
en complément: je n'avais pas vu dans le titre la partie enr dans BDD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;
}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}

</style>
<?php
 if(isset($_POST['envoyer']) &&  $_POST['envoyer'] !=""){
 //le formulaire a ete poste
	$e_mail = htmlentities($_POST['email']);
	if($e_mail == ""){
	//pas vide ?
		echo " <font color='red'>Veuillez saisir votre adresse mail !</font>";
	}elseif(!ereg(".+(@.+)(.:alpha:{2}(:alpha:?))$",$e_mail)){
		//format valide ?
		echo " <font color='red'>Format d'adresse mail non valide!</font>";
	}else{
		$destinataire= "bwba@hotmail.fr";
		$objet = "Demande d'inscription";
		$headers = "From: bwba@hotmail.fr \r\n";
		$headers.= "Content-Type: text/html; charset=utf-8"."\r\n";
		$headers .= "MIME-Version: 1.0 "."\r\n";
		$msg = "<html><body>Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
		
		$msg2= "<html><body>
		Nous avons bien pris en compte votre demande d'inscription &agrave; la newsletter.
		Pour vous d&eacute;sinscrire, contactez nous.</body></html>";
		//enregistrement dans la base:
		//tu mets les codes d'acces a la base que t'a fourni ton hebergeur
		$cnx=mysql_connect('serveur','login','mdp')or die ("Pb connexion au serveur". mysql_error());
		if($cnx){
			$db=mysql_select_db('ta_base');//mets nom de ta base
			$query="INSERT INTO ta_table VALUES('".$e_mail."')";//remplaces par le nom de ta table et modifies si plus de champs
			$insert=mysql_query($query) or die ("pb requette insertion ".mysql_error() );
			if($insert){
			//si l'enr dans la base a réussi on le spécifie dans le mail à toi
				$msg .=" \n\nEt le mail de cet utilisateur a bien &eacute;t&eacute; enregistr&eacute; dans la base </body></html>";
			}else{
				$msg .=" \n\nEt le mail de cet utilisateur n'a pas pu &ecirc;tre enregistr&eacute; dans la base </body></html>";
			}
		}
		$msg = nl2br($msg);
		//envoi du mail de demande à toi
		$envoi_mail_1=mail($destinataire, $objet, $msg, $headers);
		if($envoi_mail_1){
			echo "Merci, votre demande a &eacute;t&eacute; envoy&eacute;e. ";
		}else{
			echo "Probl&egrave;me d'envoi du mail";
		}
		if($insert){
			//si enr dans la base réussi on envoie le mail a utilisateur
			//envoi du mail de confirmation a l'utilisateur
			$envoi_mail_U=mail($e_mail, $objet, $msg2, $headers);
			if($envoi_mail_U){
				echo "<br />Vous allez recevoir un mail de confirmation. ";
			}
		}
	}
}
?>
<body>

<form name="form1" action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="envoyer" class="submit" id="submit"
value="Envoyer" type="submit"></span></span></fieldset>
</form>

</body>
</html>
0
<input type="password" name="mdp" /> :)
C'est du php sa, c'est de l'(x)HTML
-1