Verification formulaire pour eviter doublon de nom

sebing Messages postés 144 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 3 novembre 2010 - 25 oct. 2009 à 10:45
sebing Messages postés 144 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 3 novembre 2010 - 30 oct. 2009 à 20:40
Bonjour,

Novice en codage, j'ai pas réussi a trouver mon bonheur sur internet.
J'ai un formulaire d'inscription mais j'aimerai rajouter un vérificateur de nom pour éviter qu'il y ai une double inscription.
Voila mon formulaire:

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


Nom:" />


50nl:<select name="nlc">
         <option <?php if($nlc == "NON") { echo 'selected'; } ?>>NON</option>
<option <?php if($nlc == "OUI") { echo 'selected'; } ?>>OUI</option>
 </select>


50 BRASSE:<select name="bc">
        <option <?php if($bc == "NON") { echo 'selected'; } ?>>NON</option>
<option <?php if($bc == "OUI") { echo 'selected'; } ?>>OUI</option>
 </select>


50PAP:<select name="papc">
        <option <?php if($papc == "NON") { echo 'selected'; } ?>>NON</option>
<option <?php if($papc == "OUI") { echo 'selected'; } ?>>OUI</option>
 </select>


50DOS:<select name="dosc">
        <option <?php if($dosc == "NON") { echo 'selected'; } ?>>NON</option>
<option <?php if($dosc == "OUI") { echo 'selected'; } ?>>OUI</option>
 </select>



" />
    
</form>

J'ai un script d'agenda qui fait cette manip mais je ne la comprend pas, il est bien car ça met en temps réel (lors de la saisie) si la catégorie est prise ou non.
Je vous donne le code:
<!--
function checkCategorie()
{
document.getElementById("disponible").value="";
document.getElementById("divCategorie").innerHTML="";
document.getElementById("divCategorie").className="";
var nom=document.getElementById("nom").value;
if (nom != "")
{
$.ajax({
type: 'POST',
url: 'checkCategorie.php',
data: "nom="+$('#nom').val(),
dataType: 'text',
success: validerCategorie
});
}
}

function validerCategorie(reponse)
{
if (reponse == 1)
{
document.getElementById("divCategorie").innerHTML="Catégorie non disponible";
document.getElementById("divCategorie").className="valid_ko";
document.getElementById("disponible").value=0;
}
else
{
document.getElementById("divCategorie").innerHTML="Catégorie disponible";
document.getElementById("divCategorie").className="valid_ok";
document.getElementById("disponible").value=1;
}
}

function verifierFormulaire()
{
var nom = document.getElementById("nom").value;
var disponible = document.getElementById("disponible").value;
if (nom == "")
{
var message="Veuillez introduire le nom de la catégorie.\n";
var erreur = 1;
}
else if (disponible == 0)
{
var message="Cette catégorie existe déjà.\n";
var erreur = 1;
}
if (erreur)
{
alert(message);
return false;
}
}
-->
</script>

J'ai essayé en vain de le mettre sur ma page ça fonctionne pas

Merci

Seb

3 réponses

buch54 Messages postés 1 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 25 octobre 2009
25 oct. 2009 à 16:58
Bonjour,
essaie ceci en n'oubliant pas de modifier le nom de la table où se trouve les enregistrements d'inscriptions ainsi que de renseigner le nom de ta connexion à la BDD.
Il vaut mieux utiliser cet fonction avec email, sinon 2 homonymes ne pourront pas s'inscrire.

// *** Redirection si nom existe
$MM_flag="MM_insert";
if (isset($_POST[$MM_flag])) {
$MM_dupKeyRedirect="inscription_existe_deja.php";
$loginUsername = $_POST['nom'];
$LoginRS__query = sprintf("SELECT nom FROM nomDeLaTableInscription WHERE nom=%s", GetSQLValueString($loginUsername, "text"));
mysql_select_db($database_nomDeLaConnexion, $nomDeLaConnexion);
$LoginRS=mysql_query($LoginRS__query, $nomDeLaConnexion) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);

//si le nom est trouvé dans la base de données- impossible d'ajouter le même nom
if($loginFoundUser){
$MM_qsChar = "?";
//ajouter le nom dans page de redirection
if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";
$MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;
header ("Location: $MM_dupKeyRedirect");
exit;
}
}
0
bluemandfr Messages postés 55 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 16 mai 2013
30 oct. 2009 à 20:05
Bonjour.

Je n'ai pas étudié ton code en détail, mais quelque chose m'a tout de suite sauté au yeux. Aussi je t'en fait part. Sache que :

TU DOIS DÉCLARER TOUS TES OBJETS AVEC :
- name
ET
- id !!!

Si tu mets :

Nom:" />



Cela va marcher sur IE et sur tous les browsers compatibles IE, mais pas sur Google Crome par exemple. Cela ne va pas générer d'erreur, mais toutes les portions de code utilisant une syntaxe comme :

document.getElementById("nom_qui_a_ete_defini_pour_l_objet")

NE MARCHERONT PAS : ils seront inopérants.

Aussi, je te conseille plus que fortement de TOUJOURS déclarer en double tes objets avex name et id. Avec l'exemple précédent, on aura :

Nom:" />



Tu n'imagine pas combien cette simple astuce va changer ta vie et ton site ! ;))))

Voilà !

Bonne chance pour tes projets en PHP ! ;))))

Cordialement,

BlueManCa.
0
sebing Messages postés 144 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 3 novembre 2010
30 oct. 2009 à 20:40
Merci,

Je vais me pencher dessus.

Cordialement.

Seb
0
Rejoignez-nous