2010-07-24 3 views
0

J'essaie d'obtenir la source d'un fichier en utilisant PHP et la fonction file_get_contents.Obtenir la source d'un fichier en utilisant PHP

Le problème est que le site nécessite un login. Je pensais que cela pourrait être contourné en se connectant d'abord au site, puis en utilisant la fonction file_get_contents mais ce n'est pas le cas. La page que la fonction renvoie est la page de connexion.

Voici le code:

<?php 

if (isset($_GET['getroster'])){ 
$file = stripslashes(file_get_contents('https://intranet.hlf.de/custom/cddTUB.asp?show=1')); 
print ($file); 
} 

?> 

Comme vous pouvez le voir lors de l'exécution de cette fonction, ou en allant à l'URL, il demande un nom d'utilisateur, mot de passe et société à partir d'une liste déroulante.

Est-il possible de transmettre ces valeurs à la page en utilisant cette fonction ou toute autre fonction PHP. Ou peut-être le faire d'une manière totalement différente?

Répondre

2

Les cookies dans votre navigateur, et les cookies peuvent être envoyés avec PHP sont complètement indépendants.

Vous pouvez définir les options CURLOPT_COOKIEJAR et CURLOPT_COOKIEFILE pour spécifier un fichier dans lequel les cookies doivent être stockés et chargés.

En faisant cela, vous devrez d'abord faire une demande qui fait le login (cela vous obtiendra le cookie). Ensuite, vous pouvez faire la demande que vous vouliez faire en tant qu'utilisateur connecté (parce que maintenant curl a les cookies).

0

Vous devez envoyer les cookies corrects. Si vous pouvez utiliser curl, alors le script sur this page devrait aider. Vous pouvez également jeter un oeil à ce SO question (il est légèrement différent de votre cas car il réutilise les cookies du navigateur pour faire la demande).

0

Un changement, vous pouvez poster un exemple de la façon de le faire Daniel?

Il n'y aurait pas une option de créer un formulaire de connexion qui transmet les informations de l'utilisateur à la page pour se connecter automatiquement? Lire quelque chose à propos de la fonction stream_context_create qui pourrait faire une connexion en envoyant des informations d'en-tête mais je ne serais vraiment pas par où commencer. Les exemples postés à ce sujet ne donnent qu'un nom d'utilisateur et un mot de passe mais j'ai bien sûr une troisième option à poster sur la page d'authentification!

Questions connexes