IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Se connecter dans un forum PHP/MySql


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut Se connecter dans un forum PHP/MySql
    a tout le monde
    Dans ma page d'acceuil, ils existent deux champs, un pour "pseudo" et l'autre pour "mot de pass". quand l'utlilisateur les saisie je veux que les donnés se verifient par la base de donnée s'il existe ou pas. si oui il me dira "Bienvenue M.... Vous etes connectés".
    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    	<?php
                   if (isset($_POST['pseudo']) AND isset($_POST['passwd1'])) // Si les variables existent
                       {
                            if ($_POST['pseudo'] != NULL AND $_POST['passwd1'] != NULL) // Si on a quelque chose à enregistrer
                                  {
                                      // D'abord, on se connecte à MySQL
                                         mysql_connect("localhost", "root", "") or die(mysql_error());
                                         mysql_select_db("forum");
     
    							    $reponse = mysql_query("SELECT lastname,firstname FROM membre WHERE pseudo=$_POST['pseudo'] AND passwd1=$_POST['passwd1']"); // Requête SQL
                                    $donnees = mysql_fetch_array($reponse)
    								$lastname = $donnees['lastname'];
    								$firstname = $donnees['firstname'];
     
                                  }
                       }
                 ?>
     
    			<p>
    	<form method="post" name="frm" action="index_connect.php"><br>
                Pseudo : <input type="text" name="pseudo"><br>
                Mot de pass : <input type="text" name="passwd1"><br>
    	<input type="checkbox" name="remember" value="Bike"> Me sevenir <input type="submit" value="S'identifier"><br><br>
    	<a href="forget.php">Oublier mot de pass ?</a><br>		
    	<a href="membres.php">S'inscrir ?</a><br>
                </form>
    			</p>
    s'il a trouvé les bonnes donnée, il me rentrerai dans index_connect.php qui a lo code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	       <?php
                                      // D'abord, on se connecte à MySQL
                                         mysql_connect("localhost", "root", "") or die(mysql_error());
                                         mysql_select_db("forum");
     
                                        echo 'Salut', $lastname, $firstname;<br>
    									echo 'Vous êtes connecté maintenant';
     
                                       // On se déconnecte de MySQL
                                     mysql_close();
                                  }
                       }
                            ?>
    bah voila mon travail, que je dois faire pour resoudre ce probleme ???¿
    et merci

  2. #2
    Membre chevronné Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Par défaut
    c'est quoi le probleme au juste ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    Citation Envoyé par alexp Voir le message
    c'est quoi le probleme au juste ?
    Ce code ne donne aucu'une resultat, presque tjrs me donne une fentre toute blache d'erreur, parfois la pageweb ne se change pas

  4. #4
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    Citation Envoyé par reckahomis1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	<?php
                   if (isset($_POST['pseudo']) AND isset($_POST['passwd1'])) // Si les variables existent
                       {
                            if ($_POST['pseudo'] != NULL AND $_POST['passwd1'] != NULL) // Si on a quelque chose à enregistrer
                                  {
                                      // D'abord, on se connecte à MySQL
                                         mysql_connect("localhost", "root", "") or die(mysql_error());
                                         mysql_select_db("forum");
     
    							    $reponse = mysql_query("SELECT lastname,firstname FROM membre WHERE pseudo=$_POST['pseudo'] AND passwd1=$_POST['passwd1']"); // Requête SQL
                                    $donnees = mysql_fetch_array($reponse)
    								$lastname = $donnees['lastname'];
    								$firstname = $donnees['firstname'];
     
                                  }
                       }
                 ?>
    tout d abord tu as une faille de securite de type injection sql,
    on ne met jamais la valeur d un post ou get brut dans une requete
    mais on les protege avec mysql_real_escape_string()

    ensuite ton code ci dessus devrait se trouver dans index_connect.php

    finalement regarde du cote des variables de session pour garder certaines variables dans le temps et non pas uniquement sur une page de script

  5. #5
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    le mysql_connect( "localhost","root","") ne contient pas de mot de passe, pour ne pas le mettre ici, ou parce qu'il n'y en pas sur ta base, si c'est le cas, c'est plutot dangereux....


    Sinon pour le reste tes if ($_POST != AND .. ) sont mal, faits, pense a bien mettre des ( ) entre chaque conditions, pour eviter certains problemes.

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    Citation Envoyé par chtipitou Voir le message
    tout d abord tu as une faille de securite de type injection sql,
    on ne met jamais la valeur d un post ou get brut dans une requete
    mais on les protege avec mysql_real_escape_string()
    Selon cet exemple, on sait pas les chaines s et s', en + c'est l'utulisateur qu'il doit saisie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());
     
    $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
    mysql_real_escape_string($user),
    mysql_real_escape_string($password));
    ?>
    je pense qu'on doit doit remplqcer la requete par ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = mysql_query("SELECT lastname,firstname FROM membre WHERE pseudo='{$_POST['pseudo']}' AND passwd1='{$_POST['passwd1']}')
    Citation Envoyé par chtipitou Voir le message
    ensuite ton code ci dessus devrait se trouver dans index_connect.php
    moi j'ai ce code dans la page index.php; car je veux quand l'utilisateur rentre les bonnes données, la page index_connect.php s'ouvre en lui disant "Bienvenue ....ect"

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    Citation Envoyé par juliens9 Voir le message
    le mysql_connect( "localhost","root","") ne contient pas de mot de passe, pour ne pas le mettre ici, ou parce qu'il n'y en pas sur ta base, si c'est le cas, c'est plutot dangereux....
    bah j'ai déja laissé les options par defaut, et ca marche pour les autres exemples que j'ai fait avant

  8. #8
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    Ben met vite un mot de passe a ta base de données, car la c'est plus un trou de sécurité, mais plutot un cratere...


    Et fait pareil pour tous tes sites, car ca te fera tout drole le jour ou quelqu'un fera un drop sur toutes les tables.....

  9. #9
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    Citation Envoyé par juliens9 Voir le message
    Ben met vite un mot de passe a ta base de données, car la c'est plus un trou de sécurité, mais plutot un cratere...


    Et fait pareil pour tous tes sites, car ca te fera tout drole le jour ou quelqu'un fera un drop sur toutes les tables.....
    comment je peus faire un mot de passs a ma base de donner ?
    j'utilise wampserveur 2.0

  10. #10
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    Ben tu va dans la liste des utilisateur de ta base de données et tu modifie le mot de passe de l'utilisateur root;

    Apres je connait pas wampserveur donc je saurais pas etre plus precis..

Discussions similaires

  1. MySQL error : Lost connection dans des thread php
    Par max44410 dans le forum Requêtes
    Réponses: 0
    Dernier message: 17/01/2008, 08h38
  2. archivage d'un texte word dans un site php mysql
    Par mambax dans le forum Outils
    Réponses: 1
    Dernier message: 14/04/2006, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo