Gerer les utilisateur

Signaler
Messages postés
8
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
2 juin 2004
-
Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004
-
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

Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004

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.
Messages postés
8
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
2 juin 2004

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
Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004

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