Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2011, 12h11   #1
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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 :
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
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 13h22   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Regarde par là: http://beaussier.developpez.com/articles/php/session/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 14h03   #3
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 15h11   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
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 :
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
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h00   #5
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Une autre solution , peut être d'utiliser cURL : http://julp.developpez.com/php/curl/#L3.1.4
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 17h16   #6
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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.
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 17h23   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
si c'est juste du basci auth

c'est :
Code :
file_get_contents('http://user:password@twitter.com/statuses/update.xml');
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 17h50   #8
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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 :
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>
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h01   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
ce que tu cherches a faire n'est pas possible
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h09   #10
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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 :
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
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h13   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Excel c'est coté client, PHP c'est coté serveur
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h19   #12
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 08h46   #13
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
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)
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 10h07   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 10h28   #15
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
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
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 10h45   #16
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
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...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 20h02   #17
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 71
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 71
Points : 17
Points : 17
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 ?
baime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 08h55   #18
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
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.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web