Problème enregistrement Base de donnée
Résolu
godLike
Messages postés
259
Date d'inscription
Statut
Membre
Dernière intervention
-
godLike Messages postés 259 Date d'inscription Statut Membre Dernière intervention -
godLike Messages postés 259 Date d'inscription Statut Membre Dernière intervention -
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
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Formules mathématiques de base - Télécharger - Études & Formations
- Exemple base de données access à télécharger gratuit - Forum Access
- Gigaset ne reconnait plus sa base - Forum telephonie fixe