Faire un site avec des membres

Faire un site avec des membres - PHP - Programmation

Marsh Posté le 06-11-2005 à 17:44:35    

Bonjour,
 
Je debute en php, j'ai fais un peux de c++...
 
Je voudrais pouvoir stocker des membres sur mon site.
 
La page d'inscription est prête, mais je me demande comment faire, et si c'est realisable, pour stocker des membres avec leurs mots de passe, et toutes ces infos.
 
Merci à ceux qui repondront.


---------------
Mon Topic à Upper
Reply

Marsh Posté le 06-11-2005 à 17:44:35   

Reply

Marsh Posté le 06-11-2005 à 18:11:11    

Hello,
 
Pour débuter en php n'hesite pas a faire un tour sur des site du genre phpdebutant ou autre
(regarde les liens utiles sur ce forum)
 
Généralement pour tout ce qui est stockage d'informations dynamique en php on utilise MySQL.
Il te suffit d'une table contenant les champs login / password par exemple.
 
Tu envoies les informations de ton formulaire de login sur une page, tu testes que le couple login/pass rentré par l'utilisateur existe dans la table de ta base de données et si oui tu dis que ton utilisateurs et loggué sinon tu raffiche ton formulaire de login.


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 06-11-2005 à 18:28:07    

OKi, merci, apparament pas trop compliqué.
 
Suffit d'avoir une base mysql, et de savoir comment envoyer les données la bas...
 
C'est surtout sa que je ne sais pas,s inon après au niveau de la gestion mysql, je me debrouille...


---------------
Mon Topic à Upper
Reply

Marsh Posté le 06-11-2005 à 18:40:01    

//tu te connectes a la bdd avec mysql_connect(...)
 
//ajout d'un utilisateur
$sql = "INSERT INTO matable (login,pass) VALUES ('".$_POST['login']."','".$_POST['pass']."')";
if( mysql_query($sql) )
    print("ajout reussi" );
else
    print("erreur lors de l'ajout" );
 
 
//selection d'un utilisateur
$sql = "SELECT login FROM matable WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."'";
if( $res = mysql_query($sql) )
{
    if(mysql_num_rows($res) > 0)
        print("vous etes logue" );
    else
        print("mauvais login/pass" );
}
else
    print("erreur lors de la selection" );
 
 
(j'ai fait ca de tete désolé si il y a des fautes de frappe)

Message cité 1 fois
Message édité par fluminis le 06-11-2005 à 18:41:00

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 06-11-2005 à 18:42:23    

Celon la version de php que t'utilises, par défaut <5 c'est natif, >5 faut la librairies mysql (à voir dans ton php ini) mais que ce soit l'un ou l'autre, tu as tout une panoplie de fonctions php pour gérer mysql ;) C'est fait pour marcher en duo donc t'as vraiment tout ce qu'il te faut, suffit juste de jeter un oeil dans la donc et les fonction mysql_* ;)

Reply

Marsh Posté le 06-11-2005 à 18:45:47    

fluminis a écrit :

//tu te connectes a la bdd avec mysql_connect(...)
 
//ajout d'un utilisateur
$sql = "INSERT INTO matable (login,pass) VALUES ('".$_POST['login']."','".$_POST['pass']."')";
if( mysql_query($sql) )
    print("ajout reussi" );
else
    print("erreur lors de l'ajout" );
 
 
//selection d'un utilisateur
$sql = "SELECT login FROM matable WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."'";
if( $res = mysql_query($sql) )
{
    if(mysql_num_rows($res) > 0)
        print("vous etes logue" );
    else
        print("mauvais login/pass" );
}
else
    print("erreur lors de la selection" );
 
 
(j'ai fait ca de tete désolé si il y a des fautes de frappe)


Très mauvaise vue du test ton truc :( Et vive l'injection sql ;)
 
Par ailleurs tu m'expliques en quoi avoir 2 couples utilisateur/mdp justifie un log existant :???: Sauf si tu enregistres que les utilisateurs loggés...
 
M'enfin dans les grandes lignes pour la connexion mysql c'est bien ça ;)

Reply

Marsh Posté le 06-11-2005 à 18:47:20    

Merci beaucoup.
 
Mais flumisis, quand tu met:
 
//tu te connectes a la bdd avec mysql_connect(...)  
 
C'est qu'il faut faire les ajouts manuellement?


---------------
Mon Topic à Upper
Reply

Marsh Posté le 06-11-2005 à 18:50:43    

T'es sur que tu maitrises l'administration de mysql et le sql???
 
mysql_connect= connexion au serveur
 
mysql_query=tu envois une requête à mysql
 
mysql_fetch_row=tu lis le tableau que mysql t'envois en résultat de ta requête (pour un select)
 
Ajout en Sql c'est quoi?????

Reply

Marsh Posté le 06-11-2005 à 18:54:28    

leflos5 > pour un débutant, je n'ai pas obcurci mon code avec des tests dans tous les sens pour savoir si les données sont correctes.
Je suis tout à fait d'accord, il manque des tests sur les données afin de s'assurer quelles sont valides et ne menacent en rien notre bdd.
 
subshadow > je ne sais plus les parametres de la fonction mysql_connect, je te laisse chercher :), il te faut precisser l'hostame, le user et le pass
ensuite il te faut selectionner la bdd avec la fonction mysql_select_db(...)


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 06-11-2005 à 19:01:00    

fluminis a écrit :

leflos5 > pour un débutant, je n'ai pas obcurci mon code avec des tests dans tous les sens pour savoir si les données sont correctes.
Je suis tout à fait d'accord, il manque des tests sur les données afin de s'assurer quelles sont valides et ne menacent en rien notre bdd.
 
subshadow > je ne sais plus les parametres de la fonction mysql_connect, je te laisse chercher :), il te faut precisser l'hostame, le user et le pass
ensuite il te faut selectionner la bdd avec la fonction mysql_select_db(...)


 
Je parle même pas de script obscure, juste que ça me parait pas logique et qu'on se satisfait pas de trouver un couple utilisateur/mdp mais de vérifier le mdp de l'utilisateur ;) C'est de l'algo, de la gestion, ce que tu veux mais surtout pas faire ça comme ça!
 
Pour mysql_connect, sois tu précise la bd en paramètre soit tu utilises mysql_select_db :)
 
Et que ça soit simple n'empêche pas d'éliminer les règles de base contre l'injection ;) Soit un seul paramètre et test derrière unique donc le résultat est sur ;)

Reply

Marsh Posté le 06-11-2005 à 19:01:00   

Reply

Marsh Posté le 06-11-2005 à 19:03:14    

$sql = "SELECT login FROM matable WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."'";  
 
je verifie bien le login et le pass ?
je comprends pas, je veux bien des explications afin de ne pas refaire des betises dans mes prochaines realisations


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 06-11-2005 à 19:44:48    

leflos5 a écrit :

T'es sur que tu maitrises l'administration de mysql et le sql???
 
mysql_connect= connexion au serveur
 
mysql_query=tu envois une requête à mysql
 
mysql_fetch_row=tu lis le tableau que mysql t'envois en résultat de ta requête (pour un select)
 
Ajout en Sql c'est quoi?????


 
Je me debrouille, avec la base de donnée! :D
 
Mais je n'ai jamais vraiment toucher au code mysql....
 
En tout cas merci à vous, je crois que j'ai du boulot la! :/
 


---------------
Mon Topic à Upper
Reply

Marsh Posté le 06-11-2005 à 20:59:34    

fluminis a écrit :

$sql = "SELECT login FROM matable WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."'";


Utilise la fonction mysql_real_escape_string() sur les variables $_POST["xx"]. Cf. doc php.net
Et ne stock pas en clair les mots de passe.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 07-11-2005 à 00:51:53    

dwogsi a écrit :

Utilise la fonction mysql_real_escape_string() sur les variables $_POST["xx"]. Cf. doc php.net
Et ne stock pas en clair les mots de passe.


Et on suppose jamais que 2 paramètres sont entiers, véritables quand ils sont saisis par un utilisateur dans une clause where de sql... C'est ça qui me gêne, après on est pas là pour tout lui faire mais l'envoyer dans le mur :(
 
C'est de l'algo de base pour du sql, suis désolé mais je cautionne pas les erreurs lourdes de conséquences même pour un truc simple ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed