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 :

Authentification avec MYSQL ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut Authentification avec MYSQL ?
    Bonjour

    Je souhaites faire une authentification (PHP) a l'aide d'une table de Mysql.

    J'ai créer 1 table (2 champs -> identifiant et mot de passe)


    Le formulaire :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name='formulaire' action='traitement_zonesec.php' method='post'>
    			<table>
    				<tr><td>Votre identifiant : </td><td><input name='identifiant' type='text' size='15' ></td></tr>
    				<tr><td>Votre mot de passe : </td><td><input name='mot_de_passe'type='password'  size='15' ></td></tr>
     
    				<tr><td><input name='annuler' type='reset' value='Annuler' ></td> 
    				<td><input name='soumettre' type='submit' value='Envoyer'></td></tr>
    			</table>
    		</form>

    Le script PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $ID=$_POST['identifiant'];
    $PWD=$_POST['mot_de_passe'];
     
    $connexion=mysql_connect('localhost','-','-') or die ('impossible de se connecter, veuillez ré-essayer');
    $db = mysql_select_db('intranet', $connexion) or die ('La base de données ne peut pas être sélectionnée');
    if($connexion) {
    $query="SELECT * FROM login WHERE pwd_login='".$PWD."' and identifiant_login='".$ID."'";
    }
    $result=mysql_query($query);
    ?>
    Voici la syntaxe ou cela fonctionnes nickel avec PostGres :

    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
    <?php
     
    $connect=pg_connect("host=- dbname=- user=-");
     
    $num=$_POST['int'];
    $password=$_POST['passe'];
     
    $req="SELECT * FROM intervenant WHERE pwd='".$password."' and num_int=".$num."";
     
    $result=pg_query($connect,$req) or die ('Erreur requete');
    if(pg_num_rows($result)==1){
    					header("location:index1.php");
    				}else {
    					header("location:sidentifier.php"); 
    				}
    ?>
    C'est la dernière partie (if pg_num_rows etc...) que j'arrives pas à traduire et surtout le plus important a effectuer la redirection !
    Cordialement,

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    euh et qu'est-ce qui ne fonctionne pas?

  3. #3
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Après ma variable $result , il me manques comme tu peux le voir sur l'exemple PostGres , la redirection vers la page si ça a fonctionner ou pas.

    J'ai une page blanche , mais je ne sais pas si ça a fonctionner ou pas.

  4. #4
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    ok alors il fait faire ça:

    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
    <?php
    $ID=$_POST['identifiant'];
    $PWD=$_POST['mot_de_passe'];
     
    $connexion=mysql_connect('localhost','root','xxxxxxx') or die ('impossible de se connecter, veuillez ré-essayer');
    $db = mysql_select_db('intranet', $connexion) or die ('La base de données ne peut pas être sélectionnée');
    if($connexion) {
    $query="SELECT * FROM login WHERE pwd_login='".$PWD."' and identifiant_login='".$ID."'";
    }
    $result=mysql_query($query);
    
    if(mysql_num_rows($result) == 1)
    { 
        header("location:index1.php");
    }
    else
    {   
        header("location:sidentifier.php");
    }

  5. #5
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Ok , j'avais déja essayé ça en fait et ça me met ce message d'erreur :

    "cannot modifier header informatino-header already sent by (output starded at ligne qui correspond a la balise d'ouveture de mon php)

  6. #6
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    C'est du au fait que header tu dois l'utiliser avant d'afficher qqch. Je ne sais pas si tu affiche déjà qqch... en attendant juste pour tester le code remplace les header par echo 'loggé' et echo 'erreur de login' comme sa tu verras si le code de login fonctionne.

    Ensuite tu peux aller voir dans la faq il y a plusieurs méthodes de redirectionnement.

  7. #7
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Donc alors , ça m'afficher bien loggué ou pas.

    PS 1 : j'ai 2 utilisateurs ;
    1 -> Identifiant 0000 / Pwd : 00
    2 -> Identifiant 1111 / Pwd : 11

    Ca me met toujours "OK" pour le 1er utilisateur , meme si je saisie qu'un zéro pour le mot de passe de l'utilisateur 1.

    Donc le "0" est t'il prohibé pour l'Authentification PHP ?

    PS 2 : En fait comme le code y est , je n'utilises pas le header avant donc c'est bizarre qu'il ne veuilles pas le prendre.

  8. #8
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Je pense que dans ta base de donnée tu as stocké 0 et pas 0000 il est de quel type ton champ?

  9. #9
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Oui , normalement je dois mettre comme type de champ (alpha-numérique) , le fait de saisir 2 zéro , ça ne changes rien pour lui. Mais comme c'était pour tester , je n'ai pas fait attention.



    Sinon pour les header , ça ne marches toujours pas

  10. #10
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Tu as uniquement cette page? tu n'affiche rien avant?

  11. #11
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Non , en faites comme dans le bout de code ci dessus (script php) , il y a le
    if....{header : index1) else {header : sidentifier}

    Quand il s'agit des echo , ça fonctionnes nickel. Mais sinon , il ne veux vraiment pas des headers pour effectuer la redirection.

  12. #12
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Ben utilise une autre méthode alors...

    http://php.developpez.com/faq/?page=...ts_redirection

  13. #13
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    D'accord , ben Merci quand meme Yoteco.

    Mais bon en meme temps si quelqu'un a la solution a ce problème de header.
    Parce que ça doit être quelque chose de tout bète.

  14. #14
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Ben en faite , il faut virer tout le code HTML avant.

    La page doit commencer a <?php


  15. #15
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    A la suite de l'authentification , comment fais t'on pour afficher le nom et le prénom de l'utilisateur avec mySQL (ex : Bievenue NOM _ PRENOM.

    Dans ma table user, un identifiant correspond à un nom et un prénom et il possède un mot de passe bien évidemment.

    On est obliger d'utiliser les cookies pour faire ça ?

    Voici ce qu'avait fait un ami a moi avec PostGres et ça fonctionnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
    $num_int=$_COOKIE["id"];
    $connect=pg_connect("host=- dbname=- user=-");
     $result=pg_query($connect,"SELECT nom,prenom FROM intervenant WHERE num_int=".$num_int." ") or die ('Erreur requete');
    $pers = pg_fetch_row($result);
       echo $pers[0]; 
       echo $pers[1];
     
    ?>

  16. #16
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    J'ai fait ceci , je n'ai pas obtenu de message d'erreur.

    Cependant , il ne m'affiches rien contrairement a quand je fais un "echo ok" s'affiche.

    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
    <?php
     
    		$id_ag=$_COOKIE["id"];
    		$connexion=mysql_connect('localhost','root','-') or die ('impossible de se connecter, veuillez re-essayer');
    		$db = mysql_select_db('-', $connexion) or die ('La base de données ne peut pas être sélectionnée');
     
     
     
    			$result='SELECT nom_ag FROM agent WHERE id_ag=".$id_ag." ';
     
    		$req = mysql_query($result) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    		$row=mysql_fetch_row($req);
    		echo $row[0];
     
     
     
    		?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Servlet d'authentification avec MySQL
    Par Drakerz dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/12/2014, 08h49
  2. Authentification avec struts2 + MySql
    Par Colonel-Essaid dans le forum Struts 1
    Réponses: 0
    Dernier message: 10/04/2011, 21h09
  3. [Conseil] Systeme d'authentification avec base MySql
    Par x-zolezzi dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/09/2010, 20h32
  4. Script d'authentification PHP / MySQL avec session
    Par king_soft dans le forum Langage
    Réponses: 6
    Dernier message: 09/07/2010, 15h00
  5. Authentification JAAS avec MySQL
    Par kubowsky dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 25/05/2009, 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