Si login existant, alors pas d'ajout

Fermé
bobolechef Messages postés 65 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 19 juin 2009 - 18 mars 2004 à 10:47
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 18 mars 2004 à 14:06
Salut à tous !

J'ai un formulaire qui permet d'ajouter des utilisateurs. J'aimerai que si le login d'un nouvel user existe déjà ça ne m'ajoute pas celui-ci. Mais ce que j'ai fait ne marche pas et je ne sais pas pkoi...
Les données sont dans une bdd mysql.

Voici une partie du code :

<? //***** AJOUT d'un utilisateur***************
switch ($_POST["act"])
{
case ajout_user :
// récupération des champs du formulaire
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$login=$_POST['login'];

// récupération des login existant
$sql_login = "SELECT * FROM utilisateur";
$res_sql_login = mysql_query($sql_login, $db_link) or die(mysql_error());
$a=0;
while ($t_login = mysql_fetch_array($res_sql_login))
	{
		if ($login==$t_login["login"])
			{
				$log=1;
			}
		$a++;
	}
// insertion en base
$sql = "INSERT INTO utilisateur SET nom='$nom',";
$sql .= "prenom='$prenom',login='$login',";
$result=mysql_query($sql, $db_link) or die(mysql_error());
break ;

case add :

?>
<INPUT TYPE="hidden" NAME="log">

<center><table><tr><td class="bordblanc_fondgris">
<table>
    <!-- nom -->
    <tr> 
      <td class="textebleu_pgras">Nom :</td>
      <td><input type="text" name="nom" size="40" maxlength="20" class="champ"></td>
    </tr>
    <!-- prenom -->
    <tr> 
      <td class="textebleu_pgras">Prénom :</td>
      <td><input type="text" name="prenom" size="40" maxlength="20" class="champ"></td>
    </tr>
    <!-- login -->
    <tr> 
      <td class="textebleu_pgras">Login :</td>
      <td ><input type="texte" name="login" size="20" maxlength="20" class="champ"></td>
    </tr>
<input type="button" alt="Valider" value="Valider" name="" OnClick="verif();" class="boutons">


function verif()
{  if (this.document.centralform.page.value=='add')
	{ if ((this.document.centralform.nom.value=="")||(this.document.centralform.login.value==""))
		{ alert("Les champs suivis d'une * sont obligatoires !"); }
	  else {
		if (this.document.centralform.log.value=="1")
			{ alert('login existant'); }
		else { document.centralform.central.value='gestion_utilisateur/admin_utilisateur';
document.centralform.page.value='liste';
document.centralform.act.value='ajout_user';
document.centralform.submit();	}
	       }
}

Voilà je crois qu'il ya tout...
Merci d'avance.

1 réponse

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
18 mars 2004 à 14:06
Hello,
Primo : essaye de définir des fonctions, beaucoupd de "programmeurs" codent comme des gorets
Deuxio:
case "ajout_user" :
au lieu de case ajout_user :
(tu fait une comparaison sur des chaînes de caractères
Tertio:
Demande à ta BDD de faire le travail à ta place
(économie de code et de processing)
*Nettoyage de $_POST["login"]
*$sql_login = sprintf("SELECT login FROM utilisateur where login='%s'", $_POST["login"]);
Puis tu regarde le nombre de résultats (ici recherche case insensitive , voir comparaison BINARY dans le manuel MySQL)
Quarto:
Place ton code JavaScript dans les balises idoines

Voilà quelques pistes pour y voir plus clair (liste non limitative)
C you later.

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
1