IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Recuperation de données formulaire dans une base de données


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Recuperation de données formulaire dans une base de données
    Bonjour,

    J'ai plus ou moins la même question que précédemment mais pour cette fois remplir une base de données.

    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
     
    <?php
    require("config.php");
    require("connexion.php");  // Ce fichier me permet de me connecter directement à la base de données
     
    $erreur="<p style='color:red;font-size: 12px;'>";
    ?>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="./CSS/register.css"/>
    <title>CQuest - Enregistrement</title>
    </head>
     
    <body>
    <?php
    	$requete = mysql_query("SELECT nomGroupe FROM config_Groupe");
    	$req = mysql_query("INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)");
     
    	if (isset($_POST['Envoyer']) && $_POST['submit'] == 'Envoyer')
    	{		
    		if (isset($_POST['ca']) && isset($_POST['email']))
    		{
    			$ca = mysql_real_escape_string(htmlspecialchars($_POST['ca']));
    			$adresse = mysql_real_escape_string(htmlspeacialchars($_POST['email']));
    			$equipe = $_POST['equipe'];
    			$adresse=htmlentities($_POST['email']); 
    			$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    			$equipe .= mysql_query("SELECT idGroupe FROM config_Groupe WHERE nomGroupe = '$equipe'");
    			echo $requete; 
     
    			if (!preg_match($regex_mail,$email))
    			{
    				$alerte = 'L\'adresse '.$expediteur.' n\'est pas valide';
    			}
    			else
    			{
    				$query = mysql_query("INSERT INTO config_users (userGroupe,email,numero,active) VALUES ('$equipe','$adresse','$ca',0)");
    			}
    		}
    	}
    ?>
     
    <form id="registration" action="confirmation.php" method=POST>
    	<h1>Formulaire d'enregistrement</h1>
    		<?php
    			echo $erreur."</p>";
    		?>
    		<p>Code Alliance : 
    			<input type=text name="ca" size=30 autofocus required>
    		</p>
    		<p>Adresse mail : 
    			<input type=text name="email" size=30 required>
    		</p>
    		<p>Equipe : 
    			<select name="equipe">
    				<?php
    				while($row = mysql_fetch_assoc($requete))
    				{
    					echo "<option value='".$row['nomGroupe']."'>".$row['nomGroupe']."</option>";
    				}
    				?>
    				</select>
    		</p>
    		<p id="boutons">
    			<input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    		</p>
    </form>
    </body>
    </html>
    Mes tables sont :
    config_users :
    - userGroupe, active, email, numero, ... avec userGroupe FK de idGroupe

    config_Groupe :
    - idGroupe, nomGroupe

    Par la même occasion, le programme ne vérifie pas si l'adresse mail est conforme. Avez-vous des idées ?

    Merci d'avance,

    Cdlt,

    ciol

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Salut,

    Oui, plusieurs idées :

    1 - poster au bon endroit, c'est un problème qui relève du PHP et non de l'HTML.
    2 - faire une recherche sur Google ou ton moteur de recherche préféré, sur les fonctions de vérifications d'adresse email. Il en existe des prêtes à l'emploi.
    3 - arrêter d'utiliser les fonctions mysql_*. C'est obsolète, préfère l'usage de PDO.
    4 - décrire précisément le problème que tu rencontres. Parce que là, rien ne l'indique clairement et on ne sait pas ce qui ne fonctionne pas.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    La vérification de l'adresse mail je l'ai trouvé sur le net justement mais ça ne fonctionne pas

    Et pour préciser mon problème, les informations que l'utilisateur rentre dans le formulaire ne sont pas déposées en base.

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 176
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonjour,
    Il faudrait peut-être faire quelques test du code, des print_r...

    nous donner des erreurs ... un minimum de travail

    cette ligne me parait + que suspecte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['Envoyer']) && $_POST['submit'] == 'Envoyer')
    $moi= ( !== ) ? : ;

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    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
    <?php
    	$requete = mysql_query("SELECT nomGroupe FROM config_Groupe");
    	$req = mysql_query("INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)");
    	print_r($requete);
    	if (isset($_POST['Envoyer']) && $_POST['envoyer'] == 'Envoyer')
    	{		
    		if (isset($_POST['ca']) && isset($_POST['email']))
    		{
    			$ca = mysql_real_escape_string(htmlspecialchars($_POST['ca']));
    			$adresse = mysql_real_escape_string(htmlspeacialchars($_POST['email']));
    			$equipe = $_POST['equipe'];
    			$adresse=htmlentities($_POST['email']); 
    			$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    			$equipe .= mysql_query("SELECT idGroupe FROM config_Groupe WHERE nomGroupe = '$equipe'");
    			echo $requete; 
    			print_r($ca);
    			print_r($adresse);
    			if (!preg_match($regex_mail,$email))
    			{
    				$alerte = 'L\'adresse '.$expediteur.' n\'est pas valide';
    			}
    			else
    			{
    				$query = mysql_query("INSERT INTO config_users (userGroupe,email,numero,active) VALUES ('$equipe','$adresse','$ca',0)");
    				print_r($query);
    			}
    		}
    	}
    ?>
    Aucune erreur visible, les print_r que j'ai rajouté n'affichent rien, bref c'est le brouillard complet...

    Au sujet de la ligne suspecte :
    if (isset($_POST['Envoyer']) && $_POST['envoyer'] == 'Envoyer')
    Cette ligne sert bien dans le cas ou l'utilisateur a validé le formulaire ?

    J'ai oublié de rajouter que mon formulaire renvoyait sur une page confirmation.php qui est une page de confirmation d'envoi des informations :

    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
    <?php
    	include "config.php";
    	include "fonctions.php";
    	$erreur="<p style='color:red;font-size: 12px;'>";
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="./CSS/login.css"/>
    <title>CQuest - Confirmation de la demande d'inscription</title>
    </head>
    <body>
    <form id="confirm" action="login.php" method="post">
    	<h1>Confirmation de la demande d'inscription CQuest</h1>
    		<fieldset id="inputs">
    			<p>Les administrateurs de CQuest vont donner suite a votre demande dans les plus brefs delais.</p>
    				<form method="post" action="login.php">	
    					<input type="submit" name="retour" id="submit" value="Retour au login">
    				</form>				
    		</fieldset>
    </form>
    </body>

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 176
    Points : 4 605
    Points
    4 605
    Par défaut

    pas loin d'une erreur par ligne


    avec cette correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (isset($_POST['Envoyer']) && $_POST['envoyer'] == 'Envoyer')
    Envoyer(clé) n'est pas la même chose que envoyer ! donc on rentre jamais dans la boucle

    --------------------------------------------
    des requetes non utilisées
    $req et $equipe
    --------------------------------------------
    echo $requete; !
    ---------------------------------------------
    ecrire $equipe .= mysql_query() ????
    --------------------------------------------
    $alerte = '' ?? a la place de $erreur.=''
    --------------------------------------------

    etc .. etc ..
    $moi= ( !== ) ? : ;

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Voila les premières corrections, désolé d'être si mauvais... J'ai commenté les lignes avec ce que je pense qu'elles font.

    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
    <?php
    require("config.php");
    require("connexion.php");
     
    $alerte="<p style='color:red;font-size: 12px;'>";
    ?>
     
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="./CSS/register.css"/>
    <title>CQuest - Enregistrement</title>
    </head>
     
    <body>
    <?php
    	$requete = mysql_query("SELECT nomGroupe FROM config_Groupe");
    	$test = mysql_query("INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)");
    	//if (isset($_POST['Envoyer']) && $_POST['envoyer'] == 'Envoyer')
    	//{
    		if (isset($_POST['ca']) && isset($_POST['email']))
    		{
    			$ca = mysql_real_escape_string(htmlspecialchars($_POST['ca']));
    			$adresse = mysql_real_escape_string(htmlspeacialchars($_POST['email']));
    			$recupEquip = $_POST['equipe'];        // Recupere le nom de l'équipe qui est sélectionné dans la liste
    			$adresse=htmlentities($_POST['email']); 
    			$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    			$equipe = mysql_query("SELECT idGroupe FROM config_Groupe WHERE nomGroupe = '$recupEquipe'");   //Requete qui renvoit l'idGroupe correspondant au nom de l'équipe sélectionné plus haut
     
    			print_r($ca);
    			print_r($adresse);
    			if (!preg_match($regex_mail,$email))       // Teste la validité de l'@ mail
    			{
    				$alerte .= 'L\'adresse '.$expediteur.' n\'est pas valide';
    			}
    			else
    			{
    				$query = mysql_query("INSERT INTO config_users (userGroupe,email,numero,active) VALUES ('$equipe','$adresse','$ca',0)");
    				print_r($query);
    			}
    		}
    	//}
    ?>
     
    <form id="registration" action="confirmation.php" method=POST>
    	<h1>Formulaire d'enregistrement</h1>
    		<?php
    			echo $alerte.="</p>";
    		?>
    		<p>Code Alliance : 
    			<input type=text name="ca" size=30 autofocus required>
    		</p>
    		<p>Adresse mail : 
    			<input type=text name="email" size=30 required>
    		</p>
    		<p>Equipe : 
    			<select name="equipe">
    			<?php
    				/*$query = 'SELECT nomGroupe FROM config_Groupe';
    				$stmt = $pdo->query($query);
    				$row = $stmt->fetchAll();*/
    				while($row = mysql_fetch_assoc($requete))
    				{
    					echo "<option value='".$row['nomGroupe']."'>".$row['nomGroupe']."</option>";
    				}
    			?>
    			</select>
    		</p>
    		<p id="boutons">
    			<input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    		</p>
    </form>
    </body>
     
    Cdlt
    </html>

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 176
    Points : 4 605
    Points
    4 605
    Par défaut
    Citation Envoyé par ciols Voir le message
    ... J'ai commenté les lignes avec ce que je pense qu'elles font.

    Il a un but ce post ? sinon ne pas tenir compte de mes remarques ?
    et de virer du code obligatoire a la place de simplement le corriger ?
    $moi= ( !== ) ? : ;

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    => Filtres de validation

    Ce n'est pas que tu es mauvais.
    C'est que tu manques de rigueur, et que tu ne sais pas ce que tu fais (corrections "au pif", print_r($xxx) n'importe où et de n'importe quoi,...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="envoyer" value="Envoyer">
    Le name est envoyer (pas Envoyer)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer')
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$req = mysql_query("INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)");
    	print_r($req);
    Ici, print_r affichera 0 ou 1 (false ou true)
    Pour afficher la requete :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$requete = "INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)";
    	print_r($requete);
    	$req = mysql_query($requete) or die mysql_error();
    mysql_error() retourne le message d'erreur généré par la dernière commande MySQL.

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete = "INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,DECI)";
    print_r($requete);
    $req = mysql_query($requete) or die mysql_error(); // ligne 20
    J'ai une erreur qui remonte avec ces lignes.
    Parse error: syntax error, unexpected T_STRING in /var/www/html/CQuest_reborn/register.php on line 20
    Mais je n'arrive pas à la trouver...

    En tout cas merci pour ta réponse.

    Cdlt

  11. #11
    Invité
    Invité(e)
    Par défaut
    Il faut des guillemets pour les chaines : (8,'DECI').

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $test = "INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,'DECI')";
    print_r($test);
    $req = mysql_query($test) or die mysql_error();
    Toujours la même erreur qui pointe sur la ligne 20, j'ai essayé avec des simples et doubles quotes mais toujours aucun résultat positif... Idem avec des \ devant les '

    [EDIT]Pour cette erreur je suis passé par PDO :
    $bdd->exec('INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,\'DECI\')') or die(print_r($bdd->errorInfo())); et ça fonctionne.

    Par contre l'insertion des valeurs dans la base de données ne marche toujours pas.

    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
    <?php
    	$result_groupe = $bdd->query('SELECT nomGroupe FROM config_Groupe') or die(print_r($bdd->errorInfo()));
     
    	//$bdd->exec('INSERT INTO config_Groupe (idGroupe,nomGroupe) VALUES (8,\'DECI\')') or die(print_r($bdd->errorInfo()));
     
    	if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer') 	 //isset($_POST['nameObjet']) && $_POST['envoyer']=='Envoyer')
    	{
    		if (isset($_POST['ca']) && isset($_POST['email']))
    		{
    			$ca = mysql_real_escape_string(htmlspecialchars($_POST['ca']));
    			$recupEquip = $_POST['equipe'];       					 // Recupere le nom de l'équipe qui est sélectionné dans la liste
    			$equipe = $bdd->query('SELECT idGroupe FROM config_Groupe WHERE nomGroupe = \' ' . $recupEquipe . '\' ');   	//Requete qui renvoit l'idGroupe correspondant 
    																										//au nom de l'équipe sélectionné plus haut
    			print_r($ca);
    			if (isset($_POST['email']))
    			{
    				$_POST['email'] = htmlspecialchars($_POST['email']);
     
    				if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
    				{
    					echo 'L\'adresse ' . $_POST['email'] . ' est valide !';	
    				}
    				else
    				{
    					echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide !';
    				}
    			} 
     
    		}
    	}
    ?><form id="registration" action="confirmation.php" method=POST>
    	<h1>Formulaire d'enregistrement</h1>
    		<?php
    			echo $alerte.="</p>";
    		?>
    		<fieldset id="inputs">
    		<p>Code Alliance    : 
    			<input type=text name="ca" size=30 autofocus required>
    		</p>
    		<p>Adresse email : 
    			<input type=text name="email" size=30 required> <br />
    			<p>/!\ Attention cette adresse e-mail est importante et servira pour retrouver votre mot de passe</p>
    		</p>
    		<p>Equipe : 
    			<select name="equipe">
    			<?php
    				while($donnees = $result_groupe->fetch())
    				{
    					echo "<option value='".$donnees['nomGroupe']."'>".$donnees['nomGroupe']."</option>";
    				}
    			?>
    			</select>
    		</p>
    		</fieldset>
    		<p id="boutons">
    			<input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    		</p>
    </form>
    </body>
    </html>
    - Il ne faudrait pas tester ça : if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer') après avoir checker si le formulaire était rempli et que l'adresse mail est valide ?

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut que tu sois simple et rigoureux dans ce que tu écris :

    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
    <?php
    if (isset($_POST['envoyer'], $_POST['ca'], $_POST['email'], $_POST['equipe'])) {
    	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) {
    		$sql = 'INSERT INTO config_users (userGroupe, email,numero,active) VALUES (:equipe, :adresse, :ca, 0)';
    		$sth = $bdd->prepare($sql);
    		$sth->execute(array(':equipe'=>$_POST['equipe'], ':adresse'=>$_POST['email'], ':ca'=>$_POST['ca']));
    	}
    	else {
    		echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide !';
    	}
    }
    ?>
    <form id="registration" action="confirmation.php" method="POST">
    <h1>Formulaire d'enregistrement</h1>
    		<fieldset id="inputs">
    		<p>Code Alliance    : 
    			<input type=text name="ca" size="30" autofocus required />
    		</p>
    		<p>Adresse email : 
    			<input type="text" name="email" size="30" required><br/>
    			<p>/!\ Attention cette adresse e-mail est importante et servira pour retrouver votre mot de passe</p>
    		</p>
    		<p>Equipe : 
    			<select name="equipe">
    			<?php
    				$result_groupe = $bdd->query('SELECT idGroupe, nomGroupe FROM config_Groupe')
    				while($donnees = $result_groupe->fetch())
    				{
    					echo '<option value="'.$donnees['idGroupe'].'">'.htmlspecialchars($donnees['nomGroupe']).'</option>';
    				}
    			?>
    			</select>
    		</p>
    		</fieldset>
    		<p id="boutons">
    			<input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    		</p>
    </form>
    </body>
    </html>
    j'ai retiré 1/3 de ton code alors que j'ai la requête d'insertion en plus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Quand je clique sur envoyer, il ne m'écrit rien en base, il passe directement à confirmation.php qui m'indique que les informations ont bien été envoyées et qu'elles vont être traitées.
    Le programme ne vérifie même pas la validité de l'adresse mail.
    Ma connexion à la base fonctionne puisque j'ai pu insérer des valeurs.

    Je ne comprends pas...

  15. #15
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Afin de lever un doute, comment s'appelle la page qui exécute le code ci-dessous ?

    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
    <?php
    if (isset($_POST['envoyer'], $_POST['ca'], $_POST['email'], $_POST['equipe'])) {
    	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) {
    		$sql = 'INSERT INTO config_users (userGroupe, email,numero,active) VALUES (:equipe, :adresse, :ca, 0)';
    		$sth = $bdd->prepare($sql);
    		$sth->execute(array(':equipe'=>$_POST['equipe'], ':adresse'=>$_POST['email'], ':ca'=>$_POST['ca']));
    	}
    	else {
    		echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide !';
    	}
    }
    ?>
    <form id="registration" action="confirmation.php" method="POST">
    <h1>Formulaire d'enregistrement</h1>
    		<fieldset id="inputs">
    		<p>Code Alliance    : 
    			<input type=text name="ca" size="30" autofocus required />
    		</p>
    		<p>Adresse email : 
    			<input type="text" name="email" size="30" required><br/>
    			<p>/!\ Attention cette adresse e-mail est importante et servira pour retrouver votre mot de passe</p>
    		</p>
    		<p>Equipe : 
    			<select name="equipe">
    			<?php
    				$result_groupe = $bdd->query('SELECT idGroupe, nomGroupe FROM config_Groupe')
    				while($donnees = $result_groupe->fetch())
    				{
    					echo '<option value="'.$donnees['idGroupe'].'">'.htmlspecialchars($donnees['nomGroupe']).'</option>';
    				}
    			?>
    			</select>
    		</p>
    		</fieldset>
    		<p id="boutons">
    			<input type="submit" name="envoyer" value="Envoyer">
    			<input type="reset" name="annuler" value="Annuler">
    		</p>
    </form>
    </body>
    </html>
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  16. #16
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Ok je vois où est l'erreur, la page s'appelle register.php

    Ca fonctionne merci beaucoup !

    J'ai deux autres questions du coup, est ce qu'il est possible d'envoyer un mail automatique (cad que l'utilisateur n'ait pas besoin de cliquer sur envoyer) à l'administrateur pour l'avertir qu'un utilisateur a fait une demande d'inscription ?

    Et est ce que c'est possible d'aller sur la page confirmation.php en plus d'écrire en base donc en plus d'avoir <form action="register.php"> ?

  17. #17
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Bah au moment de l'insertion dans la base, soit tu utilises la fonction mail(), soit une classe du type de PHPMailer. Et comme ça tu t'envoies un mail pour te dire que tu as une nouvelle inscription lorsque l'utilisateur valide son inscription.

    Il sera quoi qu'il arrive obligatoire qu'il clique sur envoyer, ne serait-ce que pour valider son inscription.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  18. #18
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Je me suis mal exprimé quand je parlais du moment où il devait cliquer sur envoyer je parlais de l'envoi de mail. Est ce que c'est possible un mail sans que l'utilisateur s'en rende compte ?

    Et est ce que c'est possible d'aller sur la page confirmation.php en plus d'écrire en base donc en plus d'avoir <form action="register.php"> ?

    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
    <?php
    if (isset($_POST['envoyer'], $_POST['ca'], $_POST['email'], $_POST['equipe']))
    {
    	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
    	{
    		$sql = 'INSERT INTO config_users (userGroupe, email,numero,active) VALUES (:equipe, :adresse, :ca, 0)';
    		$sth = $bdd->prepare($sql);
    		$sth->execute(array(':equipe'=>$_POST['equipe'], ':adresse'=>$_POST['email'], ':ca'=>$_POST['ca']));
     
    		$to = 'x@x.com' . ', ';
    		$to = 'x@x.com';
     
    		$subject = 'Demande d\' inscription à CQuest';
     
    		$message = 'Bonjour,\r\n Une demande d\' inscription a été soumise ';
     
    		$header = 'From:' . $_POST['email'] . ' '. "\r\n";
     
    		mail($to, $subject, $message, $header);
    	}
    	else
    	{
    		echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide !';
    	}
    }
    ?>
    Pour le mail j'ai rajouté ça cependant l'envoi de mail ne marche pas

Discussions similaires

  1. [MySQL] Inscription des données d'un formulaire dans une base de données
    Par xjulio59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/08/2010, 14h45
  2. Réponses: 5
    Dernier message: 03/04/2009, 20h51
  3. [AJAX] Insertion de données (formulaire) dans une base Access : ASP JavaScript
    Par polothentik dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 09/04/2008, 11h19
  4. Réponses: 21
    Dernier message: 05/06/2006, 10h49
  5. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo