Page avec login

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Page avec login

par Danny » 12 mai 2008, 13:38

(...)

Essaye de trouver un cours ou un bouquin sur le fonctionnement d'un serveur Web, ça aidera.
Un bouquin, ouais.. comme pour le DaVinci code j'attendais la sortie du film, mais c'est pas pour demain si je comprends bien. :roll:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Invité » 12 mai 2008, 13:04

(...)
Doit devenir :
$sql = 'SELECT count(*) FROM [b]membre[/b] WHERE login="'.mysql_escape_string($_POST['login']).'" AND [b]pass_md5[/b]="'.mysql_escape_string($_POST['[b]pass[/b]']).'"';
Ceci étant, je ne suis nullement spécialiste mais il me semble qu'il va aussi falloir supprimer la fonction "md5()" du mot de passe lorsqu'il est sauvegardé dans la base de données... mais là, ça dépasse mes compétences...

à+ :)
Merci. Ça avance puisque maintenant je crois quelque chose quand j'upload, il reeste à atteindre la page membre. pour l'instant j'ai ce message d'erreur:
Erreur SQL !
SELECT count(*) FROM membres WHERE usrname="airneuf" AND psword="xxxxx"
Can't connect to MySQL server on 'localhost' (10061)


Dans le code cité plus haut j'ai remplacé membre par le nom de ma table, et j'ai remplacé pass_md5 et pass par le nom du champ de ma table qui contient le mot de passe, soit psword.

C'est bien ce que je devais faire ?

par caroube » 12 mai 2008, 10:44

Je travaille avec Dreamweaver, ai-je vraiment besoin de Apache (dont je ne comprends pas encore le fonctionnement) pour faire du PHP ?
Apache est un serveur Web. Quand tu tapes une URL ou quand tu cliques sur un lien, c'est à ce logiciel que tu t'adresses. Apache va récupérer le nom de la page que tu as appelé et va te l'envoyer.
Soit c'est une page HTML, une image, un fichier PDF, un fichier texte, ... : il lit le fichier sur son disque et il te l'envoie
Soit c'est un fichier PHP, Perl, ... : il appelle le programme correspondant, attend sa réponse et transmet la réponse au browser appelant.

Essaye de trouver un cours ou un bouquin sur le fonctionnement d'un serveur Web, ça aidera.

par dunbar » 12 mai 2008, 09:59

Ceci étant, je ne suis nullement spécialiste mais il me semble qu'il va aussi falloir supprimer la fonction "md5()" du mot de passe lorsqu'il est sauvegardé dans la base de données... mais là, ça dépasse mes compétences...

à+ :)

Oui il vaudrait mieux en effet donc cette partie
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")'; 
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
Elle devient
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['pass']).'")'; 
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 

par FredoMkb » 12 mai 2008, 02:24

Bonsoir :)
Concrètement, dans ce qui suit, en tenant compte du fait que j'ai 6 ans et que je viens tout juste d'apprendre à lire et écrire, j'enlève quoi au juste ?
Tu écris drôlement bien pour quelqu'un qui vient juste d'apprendre ;) dommage que ce don ne fonctionne pas avec la programmation :D :langue:


Alors, àmha, il suffit d'enlever la fonction "md5()", c'est à dire que la ligne suivante :
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
Doit devenir :
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string($_POST['pass']).'"';
Ceci étant, je ne suis nullement spécialiste mais il me semble qu'il va aussi falloir supprimer la fonction "md5()" du mot de passe lorsqu'il est sauvegardé dans la base de données... mais là, ça dépasse mes compétences...

à+ :)

par Danny » 12 mai 2008, 00:57

Il suffit de supprimer MD5 avant d'entrée une valeur .
Concrètement, dans ce qui suit, en tenant compte du fait que j'ai 6 ans et que je viens tout juste d'apprendre à lire et écrire, j'enlève quoi au juste ?

<?
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();
?>

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par dunbar » 11 mai 2008, 22:06

Il suffit de supprimer MD5 avant d'entrée une valeur .

par Danny » 11 mai 2008, 17:56

Très bon tuto, merci.

Quelques questions:

- on me dit de créer 4 fichiers PHP (index.php/inscription.php/membre.php/deconnexion.php). Dans l'arborescence mondomaine.com/membres/, je sauvegarde ces fichiers PHP sous ''/membres'', c'est bien ça ? Et je remplace les identifiants et valeurs par les miens ?

Je travaille avec Dreamweaver, ai-je vraiment besoin de Apache (dont je ne comprends pas encore le fonctionnement) pour faire du PHP ?

Ci-dessous du code provenant de la page index.php du tuto proposé plus haut. Ce code vise à vérifier si login et password correspondent aux valeurs de la base de données, mais en mode 'MD5'. Comment reformuler si je veux ça sans MD5, tout simple, genre que dans ma base de données ma_database, dans la table membres le login= pierre et le password = 1234 ?
<?
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();
?>

par dunbar » 11 mai 2008, 16:23

Tu y place le nom du fichier qui va vérifier l'authentification exemple:
verif.php
Ok merci.
J'aimerais voir un exemple de fichier verif.php pour voir comment c'est fait. Je vais trouver ça où ?
Ici un exemple

par Danny » 11 mai 2008, 16:13

Tu y place le nom du fichier qui va vérifier l'authentification exemple:
verif.php
Ok merci.
J'aimerais voir un exemple de fichier verif.php pour voir comment c'est fait. Je vais trouver ça où ?

par dunbar » 11 mai 2008, 14:44

Non sans blague t'as raison c'est plutôt cuilà que je voulais mettre : http://www.dannylabonte.net
Il n'y a toujours pas de paramètre action au tag form.
Je mets quoi comme paramètre ? un URL?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Tu y place le nom du fichier qui va vérifier l'authentification exemple:
verif.php

par Danny » 11 mai 2008, 13:52

Non sans blague t'as raison c'est plutôt cuilà que je voulais mettre : http://www.dannylabonte.net
Il n'y a toujours pas de paramètre action au tag form.
Je mets quoi comme paramètre ? un URL?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par caroube » 11 mai 2008, 08:45

Non sans blague t'as raison c'est plutôt cuilà que je voulais mettre : http://www.dannylabonte.net
Il n'y a toujours pas de paramètre action au tag form.

par FredoMkb » 11 mai 2008, 03:33

Bonjour :)

Je ne peux pas t'aider en ce qui concerne la base de données, j'y connais rien, mais va jeter un coup d'oeil sur ce récent échange, tu trouveras peut-être quelques pistes qui t'aideront à avancer un peu...

à+ :)

par Danny » 11 mai 2008, 00:20

Le problème n'est pas uniquement l'accès aux données, mais la diffusion d'un accès à une base de données, donc un piratage de ton compte possible.
Je me suis donc permis de supprimer le mot de passe ;)
Ah ben, merci. :wink: