Mon problème est le suivant: je souhaite faire en sorte que les membres
qui s'inscrivent sur mo site ait tous un identifiant (login)
différentles uns des autres. Je fais donc dans mon code php pour
ajouter un utilisateur un test vérifiant si le login choisi correspond
déj àa qqun dans la base de donnees "utilisateur". Problème: si le
futur membre incsrit un login déjà utilisé il n'est pas inscrit dans ma
base de données mais pourtant après cliquer sur "enregistrer mes
informations" le lien lui demandant de recommencer car le login est
déjà utiliser ne s'affiche pas (pire il est écrit Bonjour "prenom"
etc...)
Pouvez vous m'indiquer ce que je dois changer dans mon code (dans ma table, mon php)??
PS: j'ai mis dans ma table utilisateur le caractère UNIQUE à login en pensant que ca servirait a qq chose...
PS: vous comprenez bien que je débute totalement en php!
Voici ma base de données utilisateur (ou membre)
--
-- Structure de la table `utilisateur`
--
CREATE TABLE `utilisateur` (
`id` int(5) NOT NULL auto_increment,
`nom` varchar(30) NOT NULL default '',
`prenom` varchar(30) NOT NULL default '',
`password` varchar(15) NOT NULL default '',
`membre` char(1) NOT NULL default '',
`mail` varchar(30) NOT NULL default '',
`tel` int(10) NOT NULL default '0',
`newsletter` int(1) NOT NULL default '0',
`login` varchar(15) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`) //ai-je besoin de mettre UNIQUE????
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
voici mon code php pour ajouter un utilisateur:
<?
/* prend les informations soumises par l'utilisateur et les integre
dans la base de données
*/
require_once("connexion2.php");
//connexion à la bd
$nom=$_POST['nom'];
$login=$_POST['login'];
$mail=$_POST['mail'];
$prenom=$_POST['prenom'];
$pass=$_POST['pass'];
$telephone=$_POST['telephone'];
$query2="SELECT login FROM utilisateur WHERE login=$login";
$res=TRUE;
$res=mysql_query($query2);
echo $res;
if ($res==TRUE) { ?> <a href="?page=inscription">login
déjà pris veuillez en trouve un autre</a>' <? // je veux que
quand le login est déjà utilisé par qqun d'autre un lien s'affiche pour
lui signifier de recommencer.... et ca marche pas!! }
else{
if (preg_match("/\@eleves\.enpc\.fr$/",$mail))
{
$query="INSERT INTO
utilisateur(nom,mail,login,prenom,password,tel,membre) VALUES
('$nom','$mail','$login','$prenom','$pass','$telephone','1')";
mysql_query($query);
//echo $query;
}
else
{
$query="INSERT INTO
utilisateur(nom,mail,login,prenom,password,tel,membre) VALUES
('$nom','$mail','$login','$prenom','$pass','$telephone','0')";
mysql_query($query);
//echo $query;
}
?>
<div class="titre">
Inscription
</div>
<div class="text">
<h1>
Bonjour
<? $select="SELECT prenom from utilisateur where utilisateur.prenom= '$prenom'";
$ret=mysql_query($select);
$verif=mysql_fetch_object($ret);
echo $prenom; ?>
</h1>
Tu es bien inscrit(e) sur le site du Bitum*
</div>
<?
}
?>
et voici mon formulaire pour l'inscription d'un utilisateur du site
<h1> Formulaire d'inscription </h1>
<form action="?page=ajout_utilisateurs" method='post'>
<table>
<tr>
<td class="reserv"> Nom : </td>
<td><input type='text' name='nom'/> </td>
</tr>
<tr>
<td class="reserv"> Prénom : </td>
<td> <input type='text' name='prenom'/></td>
</tr>
<tr>
<td class="reserv"> Login : </td>
<td><input type='text' name='login'/> </td>
</tr>
<tr>
<td class="reserv"> Téléphone : </td>
<td><input type='text' name='telephone'/> </td>
</tr>
<tr>
<td class="reserv"> Mail : </td>
<td><input type='text' name='mail'/> </td>
</tr>
<tr>
<td class="reserv"> Password : </td>
<td><input type='text' name='pass'/> </td>
</tr>
<tr>
<td> </td>
<td><input type='submit' value='enregistrer mes informations'/> </td>
</tr>
</tr></table>
Attention si tu es élève
</form>