Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SIMULATION DE LOGIN


Information sur la source

Catégorie :Formulaires Classé sous : login, basemysql Niveau : Débutant Date de création : 09/01/2007 Vu / téléchargé: 5 078 / 947

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

C'est un simple code(je l'ameliore en ce momment), montrant le principe de login des utilisateurs,en utilisant une base MySQL
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de juki_webmaster le 10/01/2007 01:03:25

Le genre de code qui as dut etre poster 10-20-30 fois sur PHPCS :(
Pas de nouveautés, c'est le genre de code qu'ont ne reutiliserais meme pas sur son site, vu qu'il est pas du tout "portable", autemps tout reecrire soit meme pour ces besoins.

En vrac :

# if(isset($_POST['Inom'])) $Inom=$_POST['Inom'];
# else $Inom="";

Je traduit ça sur une seul ligne (bien que sa soit plus lent):
$Inom = isset($_POST['Inom']) ? $_POST['Inom'] : null;
http://fr.php.net/manual/fr/language.operators.comparison.php#language.operators.comparison.ternary

#
# $Idate="$Iyear"."-"."$Imois"."-"."$Ijour";

$Idate = $Iyear . '-' . $Imois . '-' . $Ijour;

# $sql3 = "SELECT * FROM public_tbl WHERE Nom_Utilisateur='$user_name'";
# $req3 = mysql_query($sql3) or die('Erreur SQL !

Tu selectionne touts les champs, c'est peut etre pas nessesaire ? et si un jour ta table ait beaucoups plus de champs ?

$resultat = mysql_num_rows($req3);

Tu ne verifit pas si $resultat vaut quelque chose avant mysql_fetch_array()

$nm=$tab["Nom"];

Regles de nomage et d'indentation.

# $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());

Tu aurais dut mettre les identifiants de connexions dans un fichier à part, pour faciliter ce qui aurons envie d'essayer le code.

#  $sql = "INSERT INTO public_tbl(Nom_Utilisateur, Mot_De_Passe, Nom, Prenom, Date_Naissance,Sexe, Commentaire) VALUES('$Iuser_name','$Ipassword','$Inom','$Iprenom','$Idate','$Isexe','$Itxt')";

Ce n'est pas securiser, voir mysql_real_escape_string() , get_magic_quotes_gpc(), htmlentities() .

Avec les sessions PHP sa serais mieu : http://fr.php.net/manual/fr/ref.session.php

Un index auto-incrementable sur la table membre sera trés utile.

Bref, bon courage, n'hesite sourtout pas à te rendre sur php.net pour la documentation detaillé des fonctions dont je vient d'en parlé.

signaler à un administrateur
Commentaire de devlo le 10/01/2007 11:46:50

//$resultat = mysql_num_rows($req3);
//Tu ne verifit pas si $resultat vaut quelque chose avant mysql_fetch_array()

Quelle est l'utilité de vérifier au préalable si $resultat 'vaut quelque chose'

Moi j'ai toujours effectué un test sur le nombre de lignes retournées avec mysql_num_rows
puis si > 0 alors affectation du résultat à une variable avec mysql_fetch_array

Mais je suis peut être dans l'erreur... ?

signaler à un administrateur
Commentaire de nightlord666 le 10/01/2007 13:24:44

Je pense qu'il voulait plutôt dire de vérifier $req3, et pas $resultat...

Sinon, je suis totalement d'accord, ce code est vraiment très peu réutilisable, et on dirait plus un exercice personnel qu'un code pouvant être partagé avec les autres.

signaler à un administrateur
Commentaire de juki_webmaster le 10/01/2007 14:22:24

Non non tu verifie bien $resultat avant $tab= mysql_fetch_array($req3);, car là si ton $resultat vaut <= 0, ça sera pas tres jolie :)

# $resultat = mysql_num_rows($req3);
#
#
# $tab= mysql_fetch_array($req3);

if (mysql_num_rows($req3) <= 0) { // ou !== (int)1 si ont prefere :)
   // Rien
} else {
   $tab = mysql_fetch_array($req3);
}

signaler à un administrateur
Commentaire de devlo le 10/01/2007 14:24:28

Oula je devrais relire ce que jecris avant de poster.....
La remarque de JUKI est tout à fait justifiée

signaler à un administrateur
Commentaire de kankrelune le 10/01/2007 15:13:32

"# if(isset($_POST['Inom'])) $Inom=$_POST['Inom'];
# else $Inom="";

Je traduit ça sur une seul ligne (bien que sa soit plus lent):
$Inom = isset($_POST['Inom']) ? $_POST['Inom'] : null;"

Pas d'accord... chacun fait comme il l'entend le premier exemple est valable et plus rapide qui plus est... .. .

Pour le reste comme d'hab... ATTENTION AU SQL INJECTIONS !!! .. .

Il faut utiliser mysql_real_escape_string() sur le variable servant aux requêtes

http://fr.php.net/manual/fr/function.mysql-real-escape-string.php

Sauf si c'est un int... à ce moment là...

'SELECT ... .. . WHERE id='.(int)$maVariable

Par contre htmlspecialchars(), htmlentities() ou strip_tags() sont inutile pour les requetes SQL... MySQL n'est pas sensible au html... c'est pour l'affichage qu'il faut s'en servir... pour empecher les failles XSS... par exemple quand tu fais "félécitation blabla vous êtes enregistrés"... .. .

Vérifier les retour de mysql comme le dit juki_webmaster

if(empty($user_name)) { echo 'Attention !!! User name manquant'; exit();}
elseif (empty($password)){echo'Attention !!! Mot de passe manquant';exit();}
else
{
    . .. ... code ... .. .
}

Tes exit(); ne servent pas à grand chose (et c'est crade en plus) ou alors c'est ton else {} qui sert à rien... soit tu fais...

if(empty($user_name))
    exit('Attention !!! User name manquant');
elseif(empty($password))
    exit('Attention !!! Mot de passe manquant');

. .. ... code ... .. .

soit tu fais

if(empty($user_name))
    echo 'Attention !!! User name manquant';
elseif(empty($password))
    echo'Attention !!! Mot de passe manquant';
else
{
    . .. ... code ... .. .
}

C'est plus logique... .. .

dans le même esprit pourquoi séparer la page de traitement du formulaire... ça peut être utile dans certains cas (exemple post sur un forum pour éviter les doublons par réactualisation de la page) mais pour ce code c'est inutile et ça augmente le nombre de fichiers pour rien... .. .

Voili voilou

@ tchaOo°

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Connexion d'un "abonné"... [ par Bestiol ] Bonjour !!Je suis hyper débutant en PHP et j'aimerais savoir comment faire pour allier un formulaire HTML à une "unité" connexion.php pour que celle-c double [ par lan0sic ] voila j'aimerai tester si il y a deja un login du meme nom sur la base de donnée. j'utilise ce code: # test si login est deja existant // on fait une Header Location [ par apz ] salut a tous, j'ai un espace membres lycos. dans mon fichier php login il ya le code suivant : Code: if ($page == "login") { $pass = md5(stripslashes( deonection table log?? [ par pcpourtous ] voial j'ai une table log, une identification avec une variable session "login"je veux gérer une table log : donc quand l'utilisateur se connecte j'ins Création d'un compte clients et d'un login , ... [ par mitcho ] Voila j'aimerai faire la Création d'un compte clients et d'un login, et aussi la création d'un compte admin pour géré le site "on line", j'aimerai sav Autentification sur un site [ par talamaskary ] Donc j'ai un site et j'aimerai qu'il y ai pour y acéder un mots de pass et un login! donc ce qu'il faudrai c'est une page d'inscription pour les nouve HELP pb pour mettre sur un serveur [ par nikos283 ] Salut j'ai un petit pb!Mon site sous easy php fonctionne tres bien.Des que je le met sur un serveur apache linux il m'affiche le message d'erreur suiv execution php [ par elanspeech ] Bonjour,J'ai installe php4.3.1, la page php de login s'execute et me demande login et mot de passe.J'entre les informations, la reexcution de la page jcomprends pas les cookies [ par eax ] salut! br j arrive pas à utiliser les cookies br je fais br setcookie login ,$login,NULL b login NT [ par zadn ] SalutJe voudrais savoir si c'est possible de récupérer le login NT d'une personne qui se connecte au serveur avec des fonctions php ?Merci++


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.