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

Langage PHP Discussion :

Accéder à une page avec login


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut Accéder à une page avec login
    Bonjour,

    Je suis débutant en PHP et je cherche à automatiser l'accès à une url. Mais pour arriver à cette url finale je dois naviguer dans le site et surtout m'authentifier.

    Naviguer dans le site ça j'arrive en me faisant des menus du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <li><a href="http://page1.html">lien1</a></li>
    <li><a href="http://page2.html">Lien2</a></li>
    <li><a href="http://page3.html">Lien3</a></li>
    Par contre quand j'arrive sur la page de saisie du login mot de passe là je n'ai sais pas comment faire.

    Bien entendu en mettant en paramétre de l'url le login mot de passe ça ne marche logique.

    C'est quelque chose de basique je sais mais je bloc

    D'avance merci

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    Merci pour la réponse mais ce n'est pas vraiment ma problématique. Je vais essayer de l'expliquer.

    A partir de mon site en php je cherche à me connecter à un autre site qui lui me demande un identifiant mot de passe. Je ne gére pas l'autre site et je ne sais pas ce qui est derriere.

    C'est comme si sur mon site perso j'ai un lien qui va vers http://www.developpez.net/forums/ .Il me faut saisir un login mot de passe.

    Comment je fais pour dire à mon php va dans le champ de saisie login et mot de passe et clique sur s'identifier et pas le rechercher personnaliser tout en haut à droite.

    C'est juste pour eviter manuellement d'ouvrir le navigateur aller sur la bonne url saisir le mot de passe/login valider. Je veux un raccourci vers la page directement

    Je ne sais pas si c'est plus clair

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Regarde si le site en question te fournit un protocole d'authentification par webservice. Sinon tu peux toujours essayer d'effectuer un POST HTTP mais c'est pas terrible comme solution, tu vas avoir du mal à déterminer si le login s'est effectué ou non...

    Voici néanmois un exemple pour twitter:
    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
    function tweet($message, $username, $password)
    {
      $context = stream_context_create(array(
        'http' => array(
          'method'  => 'POST',
          'header'  => sprintf("Authorization: Basic %s\r\n", base64_encode($username.':'.$password)).
                       "Content-type: application/x-www-form-urlencoded\r\n",
          'content' => http_build_query(array('status' => $message)),
          'timeout' => 5,
        ),
      ));
      $ret = file_get_contents('http://twitter.com/statuses/update.xml', false, $context);
     
      return false !== $ret;
    }
    Il faut utiliser un fopen (ou un file_get_contents, ce qui revient au même) en utilisant le wrapper HTTP en spécifiant un contexte qui servira à déterminer le type de requête (en l'occurence POST).

    Voir:
    http://php.net/manual/en/function.file-get-contents.php
    http://www.php.net/manual/en/functio...ext-create.php

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Une autre solution , peut être d'utiliser cURL : http://julp.developpez.com/php/curl/#L3.1.4

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    Merci pour vos réponses je vais essayer de voir ce que je peux faire avec tout ça.

    Mais ça me parrait je crois que je vais me rabattre sur Excel et le VB parceque se connecter à un site web et saisir le login et mot de passe se fait avec juste en passant l'url en paramétre et en utilsant 2,3 touches tabulations.

    Je suis un peu déçu je pensais automatiser avec du php la connexion au site et récupérer un tableau sur la page d'acceuil je vais revenir au bonne vieille méthode.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    si c'est juste du basci auth

    c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_get_contents('http://user:password@twitter.com/statuses/update.xml');

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    Je ne connais pas le type d'authentification du site

    Ci-joint mon code avec la vrai adresse du site que je veux joindre comment passer cette foutue page de login. Bien sur j'en ai un je ne veux contourner je veux juste pouvoir le saisir

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
       <head>
           <title>Recuperation info joueur</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       </head>
     
       <body>
     
           <!-- L'en-tête -->
           <?php include("entete.php"); ?>
     
           <!-- Les menus -->
           <div id="menu">        
           	<div class="element_menu">
    	   <h3>Titre menu</h3>
    	   <ul>
    		   <li><a href="http://teamhb.org">TeamHB</a></li>
    		   <li><a href="page2.html">Lien</a></li>
    		   <li><a href="page3.html">Lien</a></li>
    	   </ul>
       	 </div>    
    	</div>
     
            <!-- Le corps -->
            <div id="corps">
               <h1>Mon site</h1>
     
            </div>
     
           <!-- Le pied de page -->
           <?php include("entete.php"); ?>
     
       </body>
    </html>

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    ce que tu cherches a faire n'est pas possible

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    ok c'est dommage avec Excel en VB ça le fait bien

    jusque pour info le code vb que j'utilise et qui fonctionne

    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
    28
    29
    30
    31
    32
    33
     
    Sub connexion()
     
        Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.Visible = True
     
        ie.Navigate ("http://www.teamhb.org")
     
        ' attente de fin de chargement
        Do Until ie.ReadyState = 4
            DoEvents
        Loop
     
        Set IEdoc = ie.Document
     
        'login
         Set DOCelement = IEdoc.getElementsByName("user").Item
         DOCelement.Value = "xxxx"
     
        'password
         Set DOCelement = IEdoc.getElementsByName("pass").Item
         DOCelement.Value = "xxx"
         'DOCelement.Select
     
        'connexion
         Set DOCelement = IEdoc.Forms(0)
         DOCelement.submit
     
        End sub

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Excel c'est coté client, PHP c'est coté serveur

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    ce qui veut dire que pour récupérer mes infos je n'ai pas d'autre solution que les récupérer avec Excel et les charger en base avec PHP

    Je voulais justement éviter se transfert de l'un à l'autre et tout faire de bout en bout côté PHP.

    Tant pis ce sera du pseudo automatique

    Merci quand même

  13. #13
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ce que tu cherches a faire n'est pas possible
    Pas d'accord. Avec l'exemple curl que j'ai donné plus haut , c'est exactement ce qu'il à besoin de faire.
    Envoyer les identifiants au serveur comme si il les avait rentrer et récupérer la page qui se trouve derrière, normalement protégé par une authentification.

    Ca suppose juste d'avoir :
    - les identifiant
    - la méthode de soumission du formulaire (ici POST)
    - la page cible (ici index.php)
    - et la page protégées (par exemple moncompte.php)

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par grunk Voir le message
    Pas d'accord. Avec l'exemple curl que j'ai donné plus haut , c'est exactement ce qu'il à besoin de faire.
    Envoyer les identifiants au serveur comme si il les avait rentrer et récupérer la page qui se trouve derrière, normalement protégé par une authentification.

    Ca suppose juste d'avoir :
    - les identifiant
    - la méthode de soumission du formulaire (ici POST)
    - la page cible (ici index.php)
    - et la page protégées (par exemple moncompte.php)
    lui veut le faire à travers un lien, donc pas récupérer une image de la page mais être sur le vrai site

  15. #15
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    lui veut le faire à travers un lien, donc pas récupérer une image de la page mais être sur le vrai site
    Ah effectivement , j'ai lu en travers , mea culpa

  16. #16
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    lui veut le faire à travers un lien, donc pas récupérer une image de la page mais être sur le vrai site
    On peut toujours tenter quelque chose avec Ajax mais après on va se lancer dans des trucs...

  17. #17
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    Quand tu dis que je cherche à faire un lien c'était pour dire les actions que cela devait faire

    ce que propose me propose grunk me parrait pas mal

    - les identifiant je les ai
    - la méthode de soumission du formulaire (ici POST)
    - la page cible (ici index.php) pour moi ça c'est plutôt la page protégée derrière l'action form la page cicle c'est l'adresse du site ??
    - et la page protégée (par exemple moncompte.php)

    Non c'est pas ça ?

  18. #18
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Ce que je propose ne va pas te loguer automatiquement sur le site , pour t'éviter l'identification et arriver directement là ou tu le souhaite.

    Ca permet de passer une authentification en php pour que ton serveur récupère par exemple une données protégée, mais en aucun cas celà va logguer ton navigateur.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2011, 14h05
  2. accéder à une page avec une commande "navigate"
    Par jeanfouille dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/08/2010, 12h41
  3. [AJAX] AJAX accéder à une page nécessitant login
    Par julien.63 dans le forum AJAX
    Réponses: 1
    Dernier message: 22/04/2009, 02h30
  4. Accéder à une page avec des paramètres dans l'url
    Par *alexandre* dans le forum JSF
    Réponses: 3
    Dernier message: 11/03/2009, 20h53
  5. Accéder à une page web sans passer par login et mdp
    Par benthebest dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/07/2006, 01h04

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