Php/mysql/forms

Fermé
Yann - 21 juil. 2008 à 14:58
 Yann - 24 juil. 2008 à 04:16
Bonjour, j'ai un petit problème. Lors de mon test de remplissage du formulaire de mon site.
Voici le problème:
1) Je rempli le formulaire de ma page php ( tout les champs sont remplis ).
2) lorsque que j'appuie sur le bouton envoyer la page inscription1.php s'affiche et ensuite. Je vois le résultat est la celui ci me dit "Erreur,l'un des champs n'est pas rempli".
3) Voici le script php:
<?php


$erreur="<strong>Erreur, l'un des champs est vide.</strong>";
$confirmation_pass="Le champ mot de passe ne correspond pas à sa confirmation";
$url="index.php";
$url_erreur="inscription.php";
$solde_erreur='Nous sommes désolé mais votre solde est inferieur à 25 000 000$. Si vous le souhaitez vous pouvez vous rendre à la page contact et envoyer un mail avec la description et l\'url du profil de votre compagnie';
$error="Erreur il ya un problème sur le serveur veulliez revenir dans quelque minutes. Nous nous excusons de ce désagrément.";


if (isset($_REQUEST['Nom'.'Prenom'.'mail']))
{
print($erreur);
}
else
{
print($_REQUEST['Nom'.'Prenom'.'mail']);
}

if(empty($_REQUEST['log'.'pass'.'pass2'.'compagnie'.'solde'.'personnage']))
{
Print($erreur);
}


if ($_REQUEST['pass']!=$_REQUEST['pass2'])
{
print($confirmation_pass);
}

if ($_REQUEST['solde']<25000000)
{
print($solde_erreur);
}
else
{

//insertion des informations récupérer par le formulaire dans la table "information_personnels" faisant parti de la BDD "espace_membres"

$insertion='INSERT INTO information_personnels(Nom,Prenom,mail,) VALUES('.$_REQUEST['Nom'.'Prenom'.'mail'].')';
mysql_query($insertion);

return true;

if(($insertion)==false)
{

die (mysql_error($error));
}



//insertion des informations récupérer par le formulaire dans la table "identifiants" faisant parti de la BBD "espace_membres"

$insertion1='INSERT INTO identifiants(log,pass) Values('.$_Request['log'.'pass'].')';
mysql_query($insertion1);

return true;

if(($insertion1)==false)
{
die (mysql_error($error));
}


$insertion2='INSERT INTO identifiants(compagnie,solde,personnage) VALUES('.$_REQUEST['compagnie'.'solde'.'personnage'].')';
mysql_query($insertion2);

return true;

if(($insertion2)==false)
{
die (mysql_error($error));
}
mysql_close();
die('Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');
}
?>


Auriez vous l'amabilité de me dire qu'elle erreur ai-je faite dans mon script.
            
                
A voir également:

12 réponses

Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
21 juil. 2008 à 15:03
Je pense que le probleme est que tu prend la vérification à l'envers:

if (isset($_REQUEST['Nom'.'Prenom'.'mail'])) {//Ici ca affiche l'erreur si le champ est défini... ce n'est peut etre pas ce qui est recherché?
print($erreur);
}
else
{
print($_REQUEST['Nom'.'Prenom'.'mail']);
}

Je verrais donc plutot
if (!isset($_REQUEST['Nom'.'Prenom'.'mail']))
0
J'ai essayé mais cela m'affiche maintenant deux fois "ERREUR, l'un des champs est vide".
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
21 juil. 2008 à 15:25
Vérifie alors bien que les noms de tes champs Dans le formulaire sont exacts (log, log2...) et sans faut d'orthographe.
Vérifie en particulier 'Nom'.'Prenom'.'mail' puisque une erreur s'affiche à ce niveau là
0
J'ai bidoullier en suivant tes conseil et j'ai remplacer isset par empty maintenant j'ai la confirmation que ça marche mais un autre problem se présente cela n'affiche rien contrairemet au résultat attendu.
Normalement mon script devrait afficher

"Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)

voici le nouveau script: <?php


$erreur="<strong>Erreur, l'un des champs est vide.</strong>";
$confirmation_pass="Le champ mot de passe ne correspond pas à sa confirmation";
$url="index.php";
$url_erreur="inscription.php";
$solde_erreur='Nous sommes désolé mais votre solde est inferieur à 25 000 000$. Si vous le souhaitez vous pouvez vous rendre à la page contact et envoyer un mail avec la description et l\'url du profil de votre compagnie';
$error="Erreur il ya un problème sur le serveur veulliez revenir dans quelque minutes. Nous nous excusons de ce désagrément.";




if(empty($_REQUEST['Nom'.'Prenom'.'mail'.'log'.'pass'.'pass2'.'compagnie'.'solde'.'personnage'])==false)
{
die($erreur);
}
else
{
print (''.$_REQUEST['Nom'.'Prenom'.'mail'.'log'.'pass'.'pass2'.'compagnie'.'solde'.'personnage'].'');
}


if ($_REQUEST['pass']!=$_REQUEST['pass2'])
{
print($confirmation_pass);
}

if ($_REQUEST['solde']<25000000)
{
die($solde_erreur);
}
else
{

//insertion des informations récupérer par le formulaire dans la table "information_personnels" faisant parti de la BDD "espace_membres"

$insertion='INSERT INTO information_personnels(Nom,Prenom,mail,) VALUES('.$_REQUEST['Nom'.'Prenom'.'mail'].')';
mysql_query($insertion);

return true;

if(($insertion)==false)
{

die (mysql_error($error));
}



//insertion des informations récupérer par le formulaire dans la table "identifiants" faisant parti de la BBD "espace_membres"

$insertion1='INSERT INTO identifiants(log,pass) Values('.$_Request['log'.'pass'].')';
mysql_query($insertion1);

return true;

if(($insertion1)==false)
{
die (mysql_error($error));
}


$insertion2='INSERT INTO identifiants(compagnie,solde,personnage) VALUES('.$_REQUEST['compagnie'.'solde'.'personnage'].')';
mysql_query($insertion2);

return true;

if(($insertion2)==false)
{
die (mysql_error($error));
}
mysql_close();
die('Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');
}
?>
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
21 juil. 2008 à 15:51
Je trouve assez particulier le choix que tu as fait de vouloir afficher dans un retour d'erreur le message de succès...
die('Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');
}

Et si simplement tu faisait un echo 'Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)';

Puisque toutes les erreurs avant sont interceptées, le fait d'arrivr a la fin du fichier doit normalement être un gage de succès du script. Donc pas besoin de die
0

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

Posez votre question
et si je met :


{
print('Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');

exit();

}
?>
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
22 juil. 2008 à 07:53
Oui c'est ok aussi
0
Il dois y avoir une erreur autre part car cela ne m'affiche tjrs rien
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
22 juil. 2008 à 11:27
Stp colle ic l'ensemble de ton formulaire et le script php qui les receptionne en entier. Je vais tester
0
inscription.php
<table>
<tr><td><p>Vos informations personelles:</p></tr></td>
<form method="post" action="inscription1.php">
<tr><td>Nom:</td><td><input type="text" name="Nom" /></td><td>Prénom:<input type="text" name="Prenom" /></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="mail" /></td></tr>
<tr><td><p>Vos identifiants:</p></tr></td>
<tr><td>Votre pseudo:</td><td><input type="text" name="log" /></tr></td>
<tr><td>Mot de passe</td><td><input type="password" name="pass" /></td></tr>
<tr><td>Confirmation de votre mot de passe:</td><td><input type="password" name="pass2" /></td></tr>
<tr><td><p>Les informations sur votre C.I.E</p></tr></td>
<tr><td>Nom de votre C.I.E:</td><td><input type="text" name="compagnie" /></td></tr>
<tr><td>Votre solde:</td><td><input type="text" name="solde" />$</tr></td>
<tr><td>Nom de votre perosnnage:</td><td><input type="text" name="personnage" /></td></tr>
<tr><td><td/><tr><td>Avez vous lu est ala charte acceptée la charte d'utilisation de FlyForFun<input type="checkbox" name="termes" value="oui" /></tr></td>
<tr><td></td><td><input type="submit" name="envoyer" value="envoyer" /></form></tr></td>
	
</table>

inscription1.php<?php 


$erreur="<strong>Erreur, l'un des champs est vide.</strong>";
$confirmation_pass="Le champ mot de passe ne correspond pas à sa confirmation";
$url="index.php";
$url_erreur="inscription.php";
$solde_erreur='Nous sommes désolé mais votre solde est inferieur à 25 000 000$. Si vous le souhaitez vous pouvez vous rendre à la page contact et envoyer un mail avec la description et l\'url du profil de votre compagnie';
$error="Erreur il ya un problème sur le serveur veulliez revenir dans quelque minutes. Nous nous excusons de ce désagrément.";

	

	
	if(empty($_REQUEST['Nom'.'Prenom'.'mail'.'log'.'pass'.'pass2'.'compagnie'.'solde'.'personnage'])==false)

	{
	
	die($erreur);
	}
	else
	{
	print (''.$_REQUEST['Nom'.'Prenom'.'mail'.'log'.'pass'.'pass2'.'compagnie'.'solde'.'personnage'].'');
	

			
			if ($_REQUEST['pass']!=$_REQUEST['pass2'])
			{
			print($confirmation_pass);
			}
			
			if ($_REQUEST['solde']<25000000)
			{
			die($solde_erreur);
			}
			else
		{
			
			//insertion des informations récupérer par le formulaire dans la table  "information_personnels" faisant parti de la BDD "espace_membres"
			
			$insertion='INSERT INTO information_personnels(Nom,Prenom,mail,) VALUES('.$_REQUEST['Nom'.'Prenom'.'mail'].')';
			mysql_query($insertion);
			
			return true;
			
			if(($insertion)==false)
			{
			
			die (mysql_error($error));
			}
			
			

			//insertion des informations récupérer par le formulaire dans la table "identifiants" faisant parti de la BBD "espace_membres"
			
			$insertion1='INSERT INTO identifiants(log,pass) Values('.$_Request['log'.'pass'].')';
			mysql_query($insertion1);
			
			return true;
			
			if(($insertion1)==false)
			{
			die (mysql_error($error));
			}
			
			
			$insertion2='INSERT INTO identifiants(compagnie,solde,personnage) VALUES('.$_REQUEST['compagnie'.'solde'.'personnage'].')';
			mysql_query($insertion2);
			
			return true;
			
			if(($insertion2)==false)
			{
			die (mysql_error($error));
			}
			else
			{
			echo('Votre demande d\'inscription a bien était envoyé, est devrait être traitée dans les plus brefs délais. Vous recevrez un mail lors de la validation de votre inscription qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');
			
			mysql_close();
			}
		}
	}
		?>

J'ai changé quelques trucs mais sa marche toujours pas
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
22 juil. 2008 à 15:06
Ah oui maintenant que je regarde de pres il y a beaucoup beaucoup de choses qui vont pas.

La comme ca en survolant deja je vois:

-*- Pas de connexion à la BDD avant les Query
-*- Tous les test de validité des champs sont inefficaces ou incorrect, donc à refaire (en passant $_REQUEST['test'.'test2'] n'est pas une variable valide c'est $_REQUEST['test'] ET $_REQUEST['test2'] )
-*- Les die sont mal utilisés.

Je corrige ca ce soir en te faisant un beau fichier bien structuré avec les commentaires qui expliquent les erreurs et comment marche la version...qui marche
0
Super Merci par contre pour la connexion à la BDD c'est deja fait. en fait j'ai oublié de le coller sur mon dernier post.
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148
23 juil. 2008 à 13:37
Escuse j'ai pas eut le temps avant. Ok si tu fais la connexion avant alors


Inscription.php
--------------------------------------------------------------------------------


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Mon formulaire</title>
</head>


<body>

<fieldset>
<h1>Vos informations personnelles:</h1>
<table>


<form method="post" action="inscription1.php">

<tr>
<td>Nom:</td><td><input type="text" name="Nom" /></td>
<td>Prénom:</td><td><input type="text" name="Prenom" /></td>
</tr>
<tr><td>E-mail:</td><td><input type="text" name="mail" /></td></tr>
<tr><td><p>Vos identifiants:</p></td></tr>
<tr><td>Votre pseudo:</td><td><input type="text" name="log" /></td></tr>
<tr><td>Mot de passe</td><td><input type="password" name="pass" /></td></tr>
<tr><td>Confirmation de votre mot de passe:</td><td><input type="password" name="pass2" /></td></tr>
<tr><td><p>Les informations sur votre C.I.E</p></td></tr>
<tr><td>Nom de votre C.I.E:</td><td><input type="text" name="compagnie" /></td></tr>
<tr><td>Votre solde:</td><td><input type="text" name="solde" />$</td></tr>
<tr><td>Nom de votre personnage:</td><td><input type="text" name="personnage" /></td></tr>
<tr><td><td/><tr><td>Avez vous lu et accepté la charte d'utilisation de FlyForFun<input type="checkbox" name="termes" value="oui" /></td></tr>
<tr><td></td><td><input type="submit" name="envoyer" value="envoyer" />

</form>
</tr></td>

</table>
</fieldset>


</body>
</html>





inscription1.php
--------------------------------------------------------------------------



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Résultat de mon formulaire</title>
</head>


<body>

<?php


/****************************Définition des variables************************************/

$donnees=array('Nom', 'Prenom', 'mail', 'log', 'pass', 'pass2', 'compagnie', 'solde', 'personnage');

//Les messages d'erreur
$erreurEnvoi = 'Erreur lors de l\'envoi des données'; //Les données attendues non recues
$erreurDonnee="<strong>Erreur, le champ suivant est vide : </strong>"; //un champ vide
$erreurPass="Le champ mot de passe ne correspond pas à sa confirmation"; //pass != pass2
$solde_erreur='Nous sommes désolé mais votre solde est inferieur à 25 000 000$. Si vous le souhaitez vous pouvez vous rendre à la page contact et envoyer un mail avec la description et l\'url du profil de votre compagnie';
$error="<p>Erreur il ya un problème sur le serveur veulliez revenir dans quelque minutes. Nous nous excusons de ce désagrément. </p>";


$url="index.php";
$url_erreur="inscription.php";

/****************************************************************************/

/*******************************Les tests**************************************/

//On teste, pour chaque donnée censée être envoyée, si le champ est vide ou tout simplement pas reçu
foreach($donnees as $champTeste){

if(!isset($_POST[$champTeste])){
echo $erreurEnvoi.$champTeste;
exit();
}

if(empty($_POST[$champTeste])){
echo $erreurDonnee.$champTeste;
exit();
}

}

//Test de la validité du mot de passe
if($_POST['pass'] != $_POST['pass2']){
echo $erreurPass;
exit();
}
// On peut rajouter les tests de longueur.......

//Test du Solde
if ($_REQUEST['solde']<25000000){
echo $solde_erreur;
exit();
}
/************************************************************************************************/


/*************************On affiche les données recues*******************************/
echo '<ul>Récapitulatif des données envoyées:';
foreach($donnees as $champAffiche){
echo '<li>'.$champAffiche.': '.$_POST[$champAffiche].'</li>';
}
echo '</ul>'
;
/********************************************************************************/


/*******************************Enregistrement des données dans la BDD*****************************************/

//insertion des informations récupérer par le formulaire dans la table "information_personnels" faisant parti de la BDD "espace_membres"
$insertion='INSERT INTO information_personnels(Nom,Prenom,mail,) VALUES('.$_POST['Nom'].','.$_POST['Prenom'].','.$_POST['mail'].')';
mysql_query($insertion) or die($error.mysql_error());


//insertion des informations récupérer par le formulaire dans la table "identifiants" faisant parti de la BBD "espace_membres"
$insertion1='INSERT INTO identifiants(log,pass) VALUES('.$_POST['log'].','.$_POST['pass'].')';
mysql_query($insertion1) or die($error.mysql_error());


$insertion2='INSERT INTO identifiants(compagnie,solde,personnage) VALUES('.$_POST['compagnie'].','.$_POST['solde'].','.$_POST['personnage'].')';
mysql_query($insertion2) or die($error.mysql_error());

//mysql_close();
/************************************************************************************************************/



echo('Votre demande d\'inscription a bien été envoyée, et devrait être traitée dans les plus brefs délais. Vous recevrez un mail lors de la validation de votre inscription qui sera envoyé à l\'adresse <b>('.$_REQUEST['mail'].'</b>)');


?>

</body>
</html>










0
Super merci beaucoup sa marche très bien. Tout les champs s'affiche est c parfait.
0