Gerer les utilisateur

hyunkel95 Messages postés 8 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 2 juin 2004 - 26 avril 2004 à 17:47
cs_Delwyn Messages postés 24 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 29 avril 2004 - 29 avril 2004 à 12:01
bonjour à tous

Voila g un petit pb.
j'aimerais pouvoir sécurisé mon site en demandant o gens de se logué. Mais pour ce qui ne sont pas inscrit il fo kil se creer un compte;Pour cela il fo il fo kil ecrive un nom é un mot de passe.
g donc creer une table contenant les utilisateur et les mot de passe.
j'arrive a inserer les utilisateur et leur mot de passe mé la ou ca bloc c lorsque le nom existe deja j'aimeré qu'un message apparaise "le nom d'utilisateur existe deja".

Cela marche bien lorsque le dernier nom de la table est semblable au nom que l'utilisateur vien d'inscrire si le dernier nom est different il l'ajoute alors que le nom existe deja plus haut dans la table ( je c pas si g bien été clair)

voici mon code:

while($row = mysql_fetch_array($res))

$nom = $row['utilisateur'];
if($user==$nom)
{
echo"
Le nom d'utilisateur existe déjà
";
echo"<meta http-equiv="refresh" content="2;URL=accueil.php">
";
}
else
{
$pass=$_GET['pass'];
$new="INSERT INTO utilisateur VALUES ("","$user","$pass")";
$req=mysql_query($new) or die ("requete invalide");

echo"
L'utilisateur a bien été ajouté
";
echo"<meta http-equiv="refresh" content="2;URL=accueil.php">
";

}

si kelkun pouvé maider ca seré cool
merci

3 réponses

cs_Delwyn Messages postés 24 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 29 avril 2004
27 avril 2004 à 09:16
Une solution plus simple (enfin si j'ai bien compris ton pobleme) pour regarder si un champ existe deja dans la table est tout simple de faire comme suit :

$requet="SELECT id_user FROM user WHERE login_user LIKE $user"; // tu vas chercher un seul champ

$result = mysql_query($requet);
$row = mysql_fetch_array($result);

if (!empty($row))
echo "Utilisateur déja enregistré";


Bon voila une solution rapide mais tu peux encore faire plus propre en créant une fonction spécialment a cette effet :

// cette fonction retourne vrai si champ_php apartient bien a la table_sql
function Exist($champ_php, $champ_sql, $table_sql)
{

$requet = "SELECT $champ_sql FROM $table_sql WHERE `$champ_sql` LIKE '$champ_php'";
$result = mysql_query($requet);
$row = mysql_fetch_array($result);

if (empty($row))
return false;
else
return true;
}


si tu suis tout tu appellera cette fonction comme suit :

if (Exist($user,"login_user","user")
echo "Champ déjà existant";


Avec
$user = le login que l'utilisateur tente d'enregistrer
"user" = le nom de ta table
"login_user"= le champ correspondant au login dans la table "user"

Autre solution, modifi ta table et le champ "login_user" met le en atribut unique. La requete générera alors une erreur lor de l'execution, et donc s'il y'a une erreur tu affiche "champ deja existant".

Voila j'espere que ca t'aidera.
0
hyunkel95 Messages postés 8 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 2 juin 2004
27 avril 2004 à 19:07
jte remercie delwyn de me venir en aide

mé le pb que j'ai ca né pas de savoir si un champ existe deja mé de savoir si ce kil ya dans ce champs existe deja

par exemple si je veux entrer comme utilisateur Pierre puis paul puis jacque si je re rentre a nouveau paul j'aimeré qu'un message me dise que le nom existe deja é donc kil ne le renregistre pas dans la table
0
cs_Delwyn Messages postés 24 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 29 avril 2004
29 avril 2004 à 12:01
On se comprend mal. Ce que j'ai compris c'est :

J'ai ma table "utilisateur"

id | login | pass

1 | Pierre | ***
2 | paul | *****
3 | jacque | ******

Maintenant qq'un veut crer un new compte :
login paul ; pass ***

Tu souhaiterais que l'enregistrment n'est pas lieu et que l'utilisateur soit informé de la defaillance : Paul est deja existant.

Alors si c bien ca tu prends ma fonction et tu fais :

if (Exist($new_user,"login_user","user")
     echo "Le login $new_user est déjà existant";


Si j'ai mal compris je vois pas :p
0
Rejoignez-nous