SELFHTML

Forum SELFHTML: Archives:
Si login existant, alors pas d'ajout

Page d'information: vue d'ensemble
vers le bas 

(PHP) Si login existant, alors pas d'ajout

Le message suivant est de: Boris, Adresse électronique 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.


 
vers le hautvers le bas 

(PHP) Si login existant, alors pas d'ajout

Le message suivant est de: David, Adresse électronique 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


 
vers le haut

© 1998-2004 Adresse électronique selfhtml@fr.selfhtml.org