![]() |
Forum SELFHTML: Archives: |
Le message suivant est de: Boris,
bobo-6@caramail.com, 18. 03. 2004, 10:49
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 :
<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(); }
}
}
</code>
Voilà je crois qu'il ya tout...
Merci d'avance.
Le message suivant est de: David,
moi@moi.com, 19. 03. 2004, 10:16
http://www.site-en-stock.net
Salut!
je m'y prendrais differement au lieu de recuperer tous les logins et de les comparer, je chercherais directement dans la base si le login y est deja (on va se servir de la puissance de mysql) ce qui donnerait a la place de:
»» $sql_login = "SELECT * FROM utilisateur";
»» $res_sql_login = mysql_query($sql_login, $db_link) or die(mysql_error());
plutot:
$sql_login = "SELECT * FROM utilisateur WHERE NomChampLogin='$login'";
$jeu_sql = mysql_query($sql_login, $db_link) or die("impossible de lire la base de donnees");
$nb_reponses_total = mysql_num_rows($jeu_sql);
if($nb_reponses_total==0) // Ce login n'est pas present dans la base
{ // on peut l'inserer dans la base
$sql = "INSERT INTO utilisateur SET nom='$nom',";
...}
if($nb_reponses_total>0) //login deja present
{ echo("Ce login est deja attribue"); }
voila a toi t'arranger ca a ta sauce
@+
David
© 1998-2004
selfhtml@fr.selfhtml.org