Problème enregistrement Base de donnée
Résolu
godLike
Messages postés
277
Statut
Membre
-
godLike Messages postés 277 Statut Membre -
godLike Messages postés 277 Statut Membre -
Bonjour,
Voilà je suis en train de creer un formulaire avec des champs qui doivent remplir une base de donnée.
Pour la vérification de doublon j'ai prit un script fait par mindslight (désolé si j'écorche), que j'ai remanier. Ce qui a donné ça :
<?php
function user_exists($email)
{
mysql_connect("localhost", "root");
mysql_select_db("demande");
$sql = 'SELECT `id_dem`
FROM `demandeur`
WHERE `mail_dem` = \'' . addslashes($email) . '\'
LIMIT 1';
$res = mysql_query($sql) or die (mysql_error());
return (mysql_num_rows($res) == 1);
}
?>
Après je veux faire des enregistrement dans la base de donnée que si j'ai le "nom" et "prénom" remplis dans le formulaire, mais si il y a doublon avec adresse mail, ca n'enregistre pas.. Le problème qui se pose c'est que j'ai ce bout de code (fait par mes soins) :
<?php
//include(co_base.php);
function user_exists($email) // fonction empeche doublon de mail
{
mysql_connect("localhost", "root");
mysql_select_db("demande");
$sql = 'SELECT `id_dem`
FROM `demandeur`
WHERE `mail_dem` = \'' . addslashes($email) . '\'
LIMIT 1';
$res = mysql_query($sql) or die (mysql_error());
return (mysql_num_rows($res) == 1);
}
if (isset($_POST['nom']) AND isset($_POST['prenom'])) // si variables existent
{
if ($_POST['nom'] != NULL AND $_POST['prenom'] != NULL AND user_exists($email)) // si on doit enregistrer
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$civilité = $_POST['civilité'];
$email = $_POST['email'];
$statut = $_POST['statut'];
$formation = $_POST['formation'];
$nbpers = $_POST['nbpers'];
mysql_connect("localhost", "root");
mysql_select_db("demande");
mysql_query("INSERT INTO demandeur
VALUES('', '$nom', '$prenom', '$civilité', '$email', '$statut', '$formation', '$nbpers')"
);
mysql_close();
}
}
?>
<?php
mysql_connect("localhost", "root");
mysql_select_db("demande");
$reponse = mysql_query("SELECT *
FROM demandeur
ORDER BY id_dem
DESC LIMIT 0,1"
);
mysql_close();
while ($donnees = mysql_fetch_array($reponse))
{
?>
<p><strong>Nom :<?php if($_POST['nom'] == NULL)
{
echo "Veuillez indiquer votre nom.";
}
else
{
echo $_POST['nom'];
}
?></strong><br>
<strong>Prénom : <?php if($_POST['prenom'] == NULL)
{
echo "Veuillez indiquer votre prénom.";
}
else
{
echo $_POST['prenom'];
}
?></strong><br>
<strong>Civilité : <?php if($_POST['civilité'] == NULL)
{
echo "Veuillez indiquer votre civilité.";
}
else
{
echo $_POST['civilité'];
}
?></strong><br>
<strong>Statut : <?php if($_POST['statut'] == NULL)
{
echo "Veuillez indiquer votre statut.";
}
else
{
echo $_POST['statut'];
}
?></strong><br>
<strong>Adresse mail : <?php function VerifierAdresseMail($adresse)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
if(preg_match($Syntaxe,$adresse))
{
return true;
}
else
{
return false;
}
}
$adresse=htmlentities($_POST['email']);
if(VerifierAdresseMail($adresse))
{
echo $_POST['email'];
}
else
{
echo "Votre adresse e-mail n'est pas valide.";
}
?></strong><br>
<strong>Formation : <?php echo $_POST['formation']; ?></strong><br>
<strong>Nombre de Personne : <?php echo $_POST['nbpers']; ?></strong></p>
<?php
}
?>
Donc voilà , si on enregistre quelqu'un avec une adresse qui existe ou pas dans la base de donnée, ça ne marche pas. en revanche si dans on "if" j'enlève le "AND user_exists($email)" ça marche. Mais dans ce cas là, il peut y avoir des doublons.
Merci par avance pour vos réponses fructueuses.
Amicalement.
Voilà je suis en train de creer un formulaire avec des champs qui doivent remplir une base de donnée.
Pour la vérification de doublon j'ai prit un script fait par mindslight (désolé si j'écorche), que j'ai remanier. Ce qui a donné ça :
<?php
function user_exists($email)
{
mysql_connect("localhost", "root");
mysql_select_db("demande");
$sql = 'SELECT `id_dem`
FROM `demandeur`
WHERE `mail_dem` = \'' . addslashes($email) . '\'
LIMIT 1';
$res = mysql_query($sql) or die (mysql_error());
return (mysql_num_rows($res) == 1);
}
?>
Après je veux faire des enregistrement dans la base de donnée que si j'ai le "nom" et "prénom" remplis dans le formulaire, mais si il y a doublon avec adresse mail, ca n'enregistre pas.. Le problème qui se pose c'est que j'ai ce bout de code (fait par mes soins) :
<?php
//include(co_base.php);
function user_exists($email) // fonction empeche doublon de mail
{
mysql_connect("localhost", "root");
mysql_select_db("demande");
$sql = 'SELECT `id_dem`
FROM `demandeur`
WHERE `mail_dem` = \'' . addslashes($email) . '\'
LIMIT 1';
$res = mysql_query($sql) or die (mysql_error());
return (mysql_num_rows($res) == 1);
}
if (isset($_POST['nom']) AND isset($_POST['prenom'])) // si variables existent
{
if ($_POST['nom'] != NULL AND $_POST['prenom'] != NULL AND user_exists($email)) // si on doit enregistrer
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$civilité = $_POST['civilité'];
$email = $_POST['email'];
$statut = $_POST['statut'];
$formation = $_POST['formation'];
$nbpers = $_POST['nbpers'];
mysql_connect("localhost", "root");
mysql_select_db("demande");
mysql_query("INSERT INTO demandeur
VALUES('', '$nom', '$prenom', '$civilité', '$email', '$statut', '$formation', '$nbpers')"
);
mysql_close();
}
}
?>
<?php
mysql_connect("localhost", "root");
mysql_select_db("demande");
$reponse = mysql_query("SELECT *
FROM demandeur
ORDER BY id_dem
DESC LIMIT 0,1"
);
mysql_close();
while ($donnees = mysql_fetch_array($reponse))
{
?>
<p><strong>Nom :<?php if($_POST['nom'] == NULL)
{
echo "Veuillez indiquer votre nom.";
}
else
{
echo $_POST['nom'];
}
?></strong><br>
<strong>Prénom : <?php if($_POST['prenom'] == NULL)
{
echo "Veuillez indiquer votre prénom.";
}
else
{
echo $_POST['prenom'];
}
?></strong><br>
<strong>Civilité : <?php if($_POST['civilité'] == NULL)
{
echo "Veuillez indiquer votre civilité.";
}
else
{
echo $_POST['civilité'];
}
?></strong><br>
<strong>Statut : <?php if($_POST['statut'] == NULL)
{
echo "Veuillez indiquer votre statut.";
}
else
{
echo $_POST['statut'];
}
?></strong><br>
<strong>Adresse mail : <?php function VerifierAdresseMail($adresse)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
if(preg_match($Syntaxe,$adresse))
{
return true;
}
else
{
return false;
}
}
$adresse=htmlentities($_POST['email']);
if(VerifierAdresseMail($adresse))
{
echo $_POST['email'];
}
else
{
echo "Votre adresse e-mail n'est pas valide.";
}
?></strong><br>
<strong>Formation : <?php echo $_POST['formation']; ?></strong><br>
<strong>Nombre de Personne : <?php echo $_POST['nbpers']; ?></strong></p>
<?php
}
?>
Donc voilà , si on enregistre quelqu'un avec une adresse qui existe ou pas dans la base de donnée, ça ne marche pas. en revanche si dans on "if" j'enlève le "AND user_exists($email)" ça marche. Mais dans ce cas là, il peut y avoir des doublons.
Merci par avance pour vos réponses fructueuses.
Amicalement.
A voir également:
- Problème enregistrement Base de donnée
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Gigaset a170h problème base ✓ - Forum telephonie fixe