Verification formulaire pour eviter doublon de nom

Signaler
Messages postés
144
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
3 novembre 2010
-
Messages postés
144
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
3 novembre 2010
-
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

Messages postés
1
Date d'inscription
dimanche 28 janvier 2007
Statut
Membre
Dernière intervention
25 octobre 2009

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;
}
}
Messages postés
55
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
16 mai 2013

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.
Messages postés
144
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
3 novembre 2010

Merci,

Je vais me pencher dessus.

Cordialement.

Seb