Mon script n'enregistre pas les données dans mysql.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mon script n'enregistre pas les données dans mysql.

par CrY94 » 22 oct. 2005, 23:12

Merci Truc et jeff
et avec le "mysql_error()" tu vera certainement apparaitre comme par magie des messages d'erreurs
Effectivement ^^ , perdre 2 heure a cause d'un - au lieu d'un _ dans une requette.........

Toutes mes requetes sont accetées et il me rentre bien toutes mes données dans la base de données.

Mais en fait je pensait a la base que ca pouvait provenir du fait que, au lieu de mettre tout mes champs en varchar (sauf id) , j'ai mis tout mes champs en text ( sauf id) ^^

par Truc » 22 oct. 2005, 23:05

je te conseile d'afficher toutes tes requetes et de verifier la cohérence des différentes concaténation.
l'affichage des requete se fait avec un echo, puis tu vera rapiddement si la requete est fausse (trous, virgules mal placées, apostrophes manquantes, ..). Fait ceci:
echo $_compte_membre
echo $_verification_pseudo_email;
et avec le "mysql_error()" tu vera certainement apparaitre comme par magie des messages d'erreurs
:wink:

par jeff » 22 oct. 2005, 23:00

salut tout d'abort dans chaque condition fait un echo
ex
 if ( $_pseudo_formulaire_a == "" || $_password_formulaire_a == "" || $_email_formulaire_a == "" )
    {
echo 'coucou0';
        $_SESSION['message_central'] = 1;
       // header('Location: formulaire_inscription.php');    
    }
    
    // Si les champs de verification ne correspondent pas.
    elseif ( $_pseudo_formulaire != $_pseudo_confirmation_formulaire ||
        $_password_formulaire != $_password_confirmation_formulaire ||
        $_email_formulaire != $_email_confirmation_formulaire )
    {
echo 'coucou1';
        $_SESSION['message_central'] = 2;
        //header('Location: formulaire_inscription.php');
    } ....
et pour le mysql_error
utilise comme cela
$req='insert blabla..';
$res=mysq_query($req) or die ('Erreur:'.mysql_error());
et il faut revoir tes requetes insert
car tu insert un tas de champs nul

par CrY94 » 22 oct. 2005, 22:52

alors a part pour
// Données de la table compte_membre.
$_compte_membre = "INSERT INTO compte_membre VALUES('','".$_pseudo_formulaire."','".$_password_formulaire."','1','non')";
$_res_compte_membre = mysql_query($_compte_membre);

// Données de la table verification_pseudo_formulaire
$_verification_pseudo_email = "INSERT INTO verification_pseudo-email VALUES('','".$_pseudo_formulaire_mini."','".$_email_formulaire_mini."')";
$_res_verification_pseudo_email = mysql_query($_verification_pseudo_email); 
Les autres ne me serviront que plus tard dans mon developpement.
je te conseile d'afficher toutes tes requetes et de verifier la cohérence des différentes concaténation.
Désolé, la phrase est super bien faite mais.....je la comprend pas du tout. :oops:
sinon est tu sur d'arriver jusqu'au dernier "else"
Oui il se réalise si toutes les données rentrées sont justes.
utilise mysql_error()
Alors j'ai regardé la faq manuel que tu m'as donnée mais c'est le flou total.
J'ai vu l'ensemble mais je ne saurais pas trop l'imbriquer dans mon code.
Peux tu m'expliquer le principe ?

par Truc » 22 oct. 2005, 22:35

je te conseile d'afficher toutes tes requetes et de verifier la cohérence des différentes concaténation.

vu que tu as plus d'une requete d'insertion tu pourai nous dire laquelle n(insert rien, ou si aucune n'insert quoi que ce soit ?!

sinon est tu sur d'arriver jusqu'au dernier "else" ?

voila des ptetis points a verifier :wink:

par fred6012 » 22 oct. 2005, 22:35

utilise mysql_error() pour t'aider :)

http://fr.php.net/manual/fr/function.mysql-error.php

Mon script n'enregistre pas les données dans mysql.

par CrY94 » 22 oct. 2005, 22:24

Bonsoir.

J'ai fini mon script de validation de formulaire et en le testant je me suis apperçut qu'il ne rentrait aucune donnée dans ma base de donnée..

Quelqu'un sait-il d'où peut provenir l'erreur ?
<?php
session_start();
//---------------------------------------------------\\

// Redirection si le visiteur arrive par hasard sur la page.
if (!isset ($_POST['pseudo_formulaire']))
	{
		$_SESSION['message_central'] = 1;
		header('Location: formulaire_inscription.php');	
	}
//---------------------------------------------------\\
	
// Initalisation des variables postées.

	// Recuperation des variables.
	$_pseudo_formulaire_a = addslashes($_POST['pseudo_formulaire']);
	$_password_formulaire_a = addslashes($_POST['password_formulaire']);
	$_email_formulaire_a = addslashes($_POST['email_formulaire']);
	$_pseudo_confirmation_formulaire_a = addslashes($_POST['pseudo_confirmation_formulaire']);
	$_password_confirmation_formulaire_a = addslashes($_POST['password_confirmation_formulaire']);
	$_email_confirmation_formulaire_a = addslashes($_POST['email_confirmation_formulaire']);
	$_validation_condition_generales = addslashes($_POST['valid']);
	
	// Mise en code XHTML.
	$_pseudo_formulaire = htmlentities($_pseudo_formulaire_a);
	$_password_formulaire = htmlentities($_password_formulaire_a);
	$_email_formulaire = htmlentities($_email_formulaire_a);
	$_pseudo_confirmation_formulaire = htmlentities($_pseudo_confirmation_formulaire_a);
	$_password_confirmation_formulaire = htmlentities($_password_confirmation_formulaire_a);
	$_email_confirmation_formulaire = htmlentities($_email_confirmation_formulaire_a);

	// Mise en minuscule ( la finalité est de comparer avec les autres nom de membres de la bdd).
	$_pseudo_formulaire_mini = strtolower($_pseudo_formulaire);
	$_email_formulaire_mini = strtolower($_email_formulaire);
	$_premiere_lettre = strtolower($_pseudo_formulaire{0});
	
	// Nombre de caractères contenues dans les variables.
	$_pseudo_formulaire_caractere = strlen($_pseudo_formulaire_mini);
	$_password_formulaire_caractere = strlen($_pseudo_formulaire_mini);

	// Entrée dans la base de données.
	include ('../../INCLUDE/CONNECTION/connection_bdd_mysql.php');	
	$_verification_existance_pseudo = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS nbrpseudo FROM verification_pseudo_email WHERE pseudo = '".$_pseudo_formulaire_mini."'"));
	$_verification_existance_email = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS nbremail FROM verification_pseudo_email WHERE email = '".$_email_formulaire_mini."'"));
	mysql_close();
//---------------------------------------------------\\	
	
// Confrontation des données

	// Si les champs sont vides.
	if ( $_pseudo_formulaire_a == "" || $_password_formulaire_a == "" || $_email_formulaire_a == "" )
	{
		$_SESSION['message_central'] = 1;
		header('Location: formulaire_inscription.php');	
	}
	
	// Si les champs de verification ne correspondent pas.
	elseif ( $_pseudo_formulaire != $_pseudo_confirmation_formulaire ||
		$_password_formulaire != $_password_confirmation_formulaire || 
		$_email_formulaire != $_email_confirmation_formulaire )
	{
		$_SESSION['message_central'] = 2;
		header('Location: formulaire_inscription.php');
	}
	
	// Si les champs de pseudo et password font moins de 3 caractères.
	elseif ( $_pseudo_formulaire_caractere < 2 || 	$_password_formulaire_caractere < 2 )
	{
		$_SESSION['message_central'] = 3;
		header('Location: formulaire_inscription.php');
	}
	
	// Formulaire verification acceptation des conditions d'utilisation.	
	elseif ($_validation_condition_generales == 'non')
	{
		$_SESSION['message_central'] = 4;
		header('Location: formulaire_inscription.php');
	}

//Confrontation avec les données Mysql
	elseif ($_verification_existance_pseudo['nbrpseudo'] == 1 || $_verification_existance_email['nbremail'] == 1)
	{
		$_SESSION['message_central'] = 5;
		header('Location: formulaire_inscription.php');
	}	
	
else // On rentre les données dans la base de données.
{
include ('../../INCLUDE/CONNECTION/connection_bdd_mysql.php');	

// Données de la table compte_membre.
$_compte_membre = "INSERT INTO compte_membre VALUES('','".$_pseudo_formulaire."','".$_password_formulaire."','1','non')";
$_res_compte_membre = mysql_query($_compte_membre);

// Données de la table verification_pseudo_formulaire
$_verification_pseudo_email = "INSERT INTO verification_pseudo-email VALUES('','".$_pseudo_formulaire_mini."','".$_email_formulaire_mini."')";
$_res_verification_pseudo_email = mysql_query($_verification_pseudo_email);

// Données de la table information_membre.
$_information_membre = "INSERT INTO information_membre VALUES('','".$_premiere_lettre."','".$_pseudo_formulaire."','".$_email_formulaire."','','','','','','','',NOW())";
$_res_information_membre = mysql_query($_information_membre);

// Données de la table participation_membre.
$_participation_membre = "INSERT INTO participation_membre VALUES('','".$_pseudo_formulaire."','','')";
$_res_participation_membre = mysql_query($_participation_membre);

// Données de la table configuration membre.
$_configuration_membre = "INSERT INTO configuration_membre VALUES('','".$_pseudo_formulaire."','','','','','','','','','','')";
$_res_configuration_membre = mysql_query($_configuration_membre);
mysql_close();

$_SESSION['message_central'] = 6;}
Merci d'avance de vos futures réponses