Nioulou
2008-05-26 20:16:28 UTC
Bonjour tout le monde,
Voici une portion de mon. Le but étant de se connecter à un site, garder la
session grâce à l'utilisation de cookie et "naviguer" à travers le site par
la suite.
J'ai remarqué qu'il faut en moyenne 15-20 sec pour récuperer une page. Je
suis sûr que ceci n'est pas normal, ca devrait être beaucoup plus rapide. Je
dois preciser que j'ai une connexion 2 Mo/s
1) Voila les deux methodes de ma classe qui posent problèmes:
public function connect($url, $login='', $pwd='')
{
global $log;
$log->Write("Connection");
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_USERAGENT, $this->user_agent);
if(!empty($login) && !empty($pwd))
{
curl_setopt ($this->ch, CURLOPT_POST, 1);
curl_setopt ($this->ch, CURLOPT_POSTFIELDS, $this->loginformName.'='
.$login. '&' .$this->loginformPwd. '=' .$pwd);
}
if($this->ssl === true)
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookieFile);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($this->ch);
if($ret != FALSE)
$log->Write("Authentication successfull");
else
$log->Write("authentication failed");
}
protected function GoToPage($page)
{
global $log;
$log->Write("Retrieving page: ".$page);
curl_setopt ($this->ch, CURLOPT_POST, 0);
curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookieFile);
if($this->ssl == true)
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_URL,$page);
$content = curl_exec($this->ch);
if($content != false)
$log->Write("Page retrieved: ".$page);
else
$log->Write("Error retrieving page: ".$page);
return $content;
}
2) et voila l'instanciation de mon objet et l'appel aux fonctions de
connexion
$curlTest = new $curlTest();
$curlTest->connect('https://xxx.com/login.do', $login, $pwd);
$curlTest ->ListAdvertisers("https://xxx.com/page.php");
J'espere que vous pourrez m'aider à trouver une solution, je suis à court de
temps. J'ai cherché partout mais n'ait trouvé aucune solution.
Merci,
Nioulou
Voici une portion de mon. Le but étant de se connecter à un site, garder la
session grâce à l'utilisation de cookie et "naviguer" à travers le site par
la suite.
J'ai remarqué qu'il faut en moyenne 15-20 sec pour récuperer une page. Je
suis sûr que ceci n'est pas normal, ca devrait être beaucoup plus rapide. Je
dois preciser que j'ai une connexion 2 Mo/s
1) Voila les deux methodes de ma classe qui posent problèmes:
public function connect($url, $login='', $pwd='')
{
global $log;
$log->Write("Connection");
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_USERAGENT, $this->user_agent);
if(!empty($login) && !empty($pwd))
{
curl_setopt ($this->ch, CURLOPT_POST, 1);
curl_setopt ($this->ch, CURLOPT_POSTFIELDS, $this->loginformName.'='
.$login. '&' .$this->loginformPwd. '=' .$pwd);
}
if($this->ssl === true)
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookieFile);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($this->ch);
if($ret != FALSE)
$log->Write("Authentication successfull");
else
$log->Write("authentication failed");
}
protected function GoToPage($page)
{
global $log;
$log->Write("Retrieving page: ".$page);
curl_setopt ($this->ch, CURLOPT_POST, 0);
curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookieFile);
if($this->ssl == true)
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_URL,$page);
$content = curl_exec($this->ch);
if($content != false)
$log->Write("Page retrieved: ".$page);
else
$log->Write("Error retrieving page: ".$page);
return $content;
}
2) et voila l'instanciation de mon objet et l'appel aux fonctions de
connexion
$curlTest = new $curlTest();
$curlTest->connect('https://xxx.com/login.do', $login, $pwd);
$curlTest ->ListAdvertisers("https://xxx.com/page.php");
J'espere que vous pourrez m'aider à trouver une solution, je suis à court de
temps. J'ai cherché partout mais n'ait trouvé aucune solution.
Merci,
Nioulou