[ igor_ns @ 03.10.2002. 09:12 ] @
Nalazim se iza proxy servera koji zahteva da se prijavim (login-password) da bih mogao da pristupim WEB-u. Kako da iz php skripte pristupim WEB-u sa fsockopen/fputs/fgets u takvom okruženju. Izmena konfiguracije proxy servera nije moguća. Proxy server je jedna, a Apache/PHP server je druga mašina.

Nadam se da sam bio jasan.

Pregledao sam malo mailing listu na php-net i video da je to često postavljeno pitanje, ali nisam našao odgovor.

Može li neko sa ovog foruma da mi pomogne.
unapred hvala
Igor
[ FlatLine @ 03.10.2002. 11:39 ] @
Pošto nisam iza proxy-ja koji zahteva authorization, ovo je samo otprilike kako se to radi, tj. za konekciju sam siguran samo za authorization nisam.
Code:
<?php

//==========================================================[ Proxy Settings ]
$proxyHost = 'proxy.blablabla.bla';
$proxyPort = '8080';
$proxyUser = 'username';
$proxyPass = 'password';
$proxyAuth = base64_encode ("$proxyUser:$proxyPass");

//====================================================[ Remote Hots Settings ]
$host = 'slashdot.org';
$port = '80';
$page = '';

//========================================================[ Proxy Connection ]
$fp = fsockopen ($proxyHost, $proxyPort, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)";
} else {
    fputs ($fp, "GET http://$host/$page HTTP/1.0\r\nHost: $host\r\nProxy-Authorization: $proxyAuth\r\n\r\n");
    while (!feof($fp)) {
        $buffer .= fgets ($fp, 128);
    }
    fclose ($fp);
}

print ($buffer);

?>
[ igor_ns @ 04.10.2002. 08:55 ] @
Hvala puno na odgovoru. Iz tvog odgovora i malo surfovanja rodila se funkcija:

Code:

function get_url_proxy($proxy_server, $proxy_port, $proxy_user, $proxy_pass, $url)
{
 $fp = @fsockopen($proxy_server, $proxy_port); 
 if ($fp > 0)
 { 
  $realm = base64_encode($proxy_user.":".$proxy_pass);

  fputs($fp, "GET $url HTTP/1.0\r\n");
  fputs($fp, "Proxy-Connection: Keep-Alive\r\n");
  fputs($fp, "User-Agent: PHP ".phpversion()."\r\n");
  fputs($fp, "Pragma: no-cache\r\n");
  fputs($fp, "Proxy-authorization: Basic $realm\r\n");
  fputs($fp, "\r\n");

  $o = "\0";
  while (!feof($fp) && $o != "\r\n")
    $o = fgets($fp, 512);

  while (!feof($fp))
   $buf .= fgets($fp, 1024); 
  fclose($fp); 
 } 
 return $buf; 
}

pozdrav.
Igor