Oops, j'ai modifié le message précédent.
Le problème vient donc de l'arborescence sur deuxième serveur qui est "cachée"
Oops, j'ai modifié le message précédent.
Le problème vient donc de l'arborescence sur deuxième serveur qui est "cachée"
Ok cela veut peut-etre dire qu'il travail avec une session... dans ce cas il faudrait
observer les headers http pour voir si il y a pas un cookie de session.
Je pense dans ce cas que l'utilisation d'un proxy existant sera plus facile, tu veux pas tester l'un ou l'autre des proxy sur la page que je t'ai donnée ?
Ok, je regarde rapidement lequel semble meilleur et je teste.
J'en sais rien, essaye Zelune et PhpProxy
Salut,
Bien, j'ai essayé ces deux là et glype. Seule glype me donne le résultat escompté !
Il faut maintenant que je récupère juste le code dont j'ai besoin (pas de portail me demandant quelle url, pas de barre d'options en haut de la page). Bien entendu c'est un peu plus long que de surfer directement mais c'est ce qu'il me faut.
Extra :-) si je peux t'aider hésite pas, bon courage
Ok, j'espère avoir la grande joie de mettre un [résolu] ce soir
Powered by glype.
To legally remove the credits, you must purchase a license.
Dommage !
Pourtant il me faut bien ce genre de fonctionnement, côté cURL simple, j'accède à la première page mais sans feuille de style et sans images, aller chercher ces éléments est plus difficile.
Pour ceux que ça intéresserait, voilà quand même mes codes.
Sur mon serveur, un dossier proxy avec :
- .htaccess (décrit plus haut)
- const.php
- proxypage.php
- connect.php
const.php :
proxypage.php :
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <?php session_start(); define ("URL",'https://XXXX.XXXX.de/coremedia/generator/xxx/'); function curl_follow($uri = '') { if(isset($_SESSION["ARGS"])) { if(!empty($uri)) $ch = curl_init(URL.$uri); else $ch = curl_init(URL); // Setup headers - I used the same headers from Firefox version 2.0.0.6 // below was split up because php.net said the line was too long. :/ $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Pragma: "; // browsers keep this blank. // Définition de l'URL et autres options appropriées curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); #curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_REFERER, getenv('HTTP_HOST')); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); #curl_setopt($ch, CURLOPT_INTERFACE, getenv('HTTP_HOST')); // retourne chez le client ? curl_setopt($ch ,CURLOPT_CONNECTTIMEOUT, 4); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $_SESSION["ARGS"]); // Récupération de l'URL et passage au navigateur if($res = curl_exec($ch)) { #echo 'exécutée<br />'; #echo '<br />'; #echo curl_error($ch); #print_r(curl_getinfo($ch)); // Fermeture de la ressource cURL et libération des ressources systèmes echo $res; } else { #echo 'même pas exécutée : '; #echo curl_error($ch); #echo '<br /><br />'; #print_r(curl_getinfo($ch)); // Fermeture de la ressource cURL et libération des ressources systèmes } curl_close($ch); } exit(); } ?>
et connect.php, un simple formulaire avec les mots de passe, qui traite une fois posté :
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 <?php session_start(); require_once('./const.php'); // requete que le serveur XXX nous répond #echo $_SERVER['REQUEST_URI']; $new_result = substr($_SERVER['REQUEST_URI'],17,strlen($_SERVER['REQUEST_URI'])); // requête ou l'on a retirée le chemin relati fe mon serveur (17 caractères pour "/proto_site/proxy" #echo "<br />$new_result"; // je n'ai plus qu'a relancer la fonction sur cette url : if(isset($_SESSION["ARGS"])) { curl_follow($new_result); #echo 'droits : '.$_SESSION["ARGS"]; #echo '<br />URL demandée : '.URL.$new_result; } else echo 'this must never appear'; ?>
Voilà, il manque le fait d'aller chercher les ressources en plus (tous les liens relatifs de la page).
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 <?php session_start(); require_once('./const.php'); if(!empty($_POST)) { #$args = base64_encode($_POST['login'].':'.$_POST['password']); $args = $_POST['login'].':'.$_POST['password']; $_SESSION["ARGS"] = $args; curl_follow("http://xxx.xxx.de"); } [...]
De plus, en cliquant sur un lien qui remonte l'arborescence, je perd le .htaccess de mon dossier et je ne traite pas l'erreur (c'est ce qui se passe pour les images et le style ?).
Si je traite le tout dans une page 404 globale au site, ça peut marcher ?
Salut a tous (et à marcha surtout),
Bon, en fin de compte j'ai réussi à adapter le script , je ne sais pas ce qu'il ne fallait pas faire, je n'ai pas fait attention. La solution fonctionne (j'ai personnalisé ma gestion des droits de connexion), mais il me reste la barre de navigation du proxy, ça parait plus difficile à retirer...
Merci en tout cas.
On se rapproche d'une solution idéale :
Pour retirer la barre de navigateur du moteur proxy, il suffit de mettre en commentaire le tableau "$optionsDetails" du fichier "settings.php" dans le dossier "glype/includes".
Voili voilou
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager