Je cherche à configurer curl pour utiliser un serveur proxy. L'url est fournie par un formulaire html, ce qui n'a pas posé de problème. Sans le proxy, cela fonctionne bien. J'ai trouvé des codes sur ce site et d'autres, mais ils ne fonctionnent pas. Toute aide pour trouver la bonne solution serait très appréciée. Je pense que les solutions ci-dessous sont proches, mais qu'il me manque quelque chose. Merci.
Le code ci-dessous a été adapté d'ici http://www.webmasterworld.com/forum88/10572.htm mais il renvoie un message d'erreur à propos d'un T_VARIABLE manquant à la ligne 12.
<?
$url = '$_POST[1]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1)
curl_exec ($ch);
$curl_info = curl_getinfo($ch);
curl_close($ch);
echo '<br />';
print_r($curl_info);
?>
Le texte ci-dessous est tiré de curl à travers un proxy ne renvoie aucun contenu
<?
$proxy = "66.96.200.39:80";
$proxy = explode(':', $proxy);
$url = "$_POST[1]";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
curl_setopt($ch, CURLOPT_HEADER, 1);
$exec = curl_exec($ch);
echo curl_error($ch);
print_r(curl_getinfo($ch));
echo $exec;
?>
est actuellement en ligne sur pelican-cement.com mais ne fonctionne pas non plus.
UPDATE : Merci pour toute votre aide, j'ai fait les changements ci-dessus. Maintenant, il ne renvoie qu'un écran vide.
<?
$url = $_POST['1'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_exec ($ch);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
?>
3 votes
Il manque un point-virgule à la ligne 12.
0 votes
Vous devez également remplacer $url = '$_POST[1]' par $url = $_POST[1] - sinon, $url sera une chaîne de caractères au lieu de l'URL souhaitée.
0 votes
De plus, la clé dans le tableau $_POST est une chaîne de caractères et non un entier, donc vous voudriez qu'elle dise
$_POST['1']
0 votes
< ? $url = $_POST['1'] ; $ch = curl_init() ; curl_setopt($ch, CURLOPT_URL,$url) ; curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0) ; curl_setopt($ch, CURLOPT_PROXY, '66.96.200. 39 : 80') ; curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0) ; curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET') ; curl_setopt ($ch, CURLOPT_HEADER, 1) ; curl_exec ($ch) ; $curl_scraped_page = curl_exec($ch) ; curl_close($ch) ; echo $curl_scraped_page ; ? >' @Pekka @yoavmatchulsky @MT
2 votes
Le formulaire sur pelican-cement.com a des entrées nommées "firstname" et "lastname", mais aucune nommée "1".
3 votes
@user586011 : Veuillez ajouter votre solution en tant que réponse ci-dessous et l'accepter. Ne mettez pas la solution dans la question, cela ne fonctionne pas bien.