Avatar billede encorez Nybegynder
07. november 2009 - 17:43 Der er 7 kommentarer og
1 løsning

Fejl 35 i CURL

På mit arbejde har vi brug for at lave et lille internt tool der skal tilgå vores intranet side, returnere kildekoden så vi kan opstille dataerne som vi skal bruge dem.

Når jeg går på vores intranetside normalt via browser, kommer en normal pop-up hvor jeg skal skriver brugernavn og password og derefter har adgang til de sider jeg skal bruge.

Her er koden som jeg tilgår siden med. Koden virker, men er ustabil da den returnerer fejlkode 35, 3 ud af 5 gange. Derfor bliver jeg nødt til at kører koden i en while løkke til den kommer igennem og giver et resultat.

Kan du hjælpe til koden kan logge på første gang hver gang?

Og er der nogen der ved når man er logget ind første gang, er der så nogen måde hvorpå man kan forblive logget på så jeg i scriptet kan kører flere CURL'er til intranet siden uden at skulle logge på hver gang? Måske vil det speede det op.

$errors =1;
while($errors!='0'){
$ck = curl_init("www.www.dk");
curl_setopt($ck, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ck, CURLOPT_USERPWD, "user:pass");
curl_setopt($ck, CURLOPT_SSL_VERIFYPEER, false);   
curl_setopt($ck, CURLOPT_FOLLOWLOCATION, true);   
curl_setopt($ck, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$site_code = curl_exec($ck);
$errors = curl_errno($ck);
curl_close($ck);
}
Avatar billede erikjacobsen Ekspert
07. november 2009 - 18:31 #1
Som der står skrevet: "A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints the problem slightly more. Could be certificates (file formats, paths, permissions), passwords, and others. "  -  hvad er beskeden?
Avatar billede erikjacobsen Ekspert
07. november 2009 - 18:33 #2
Måske kan du sætte CURLOPT_SSL_VERIFYPEER til false - dvs. undlade at kontrollere certifikatet - hvis det giver mening i jeres tilfælde. Måske giver den kontrol sommetider en timeout - ja, det er rent gætteri.
Avatar billede encorez Nybegynder
07. november 2009 - 18:56 #3
Jeg har lavet en curl_getinfo og får dette når den giver fejl 35.
[url] => www.www.dk [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0.219 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 )

Og det her når det går godt
[http_code] => 200 [header_size] => 1437 [request_size] => 244 [filetime] => -1 [ssl_verify_result] => 19 [redirect_count] => 0 [total_time] => 1.953 [namelookup_time] => 0 [connect_time] => 0.219 [pretransfer_time] => 0.735 [size_upload] => 0 [size_download] => 76545 [speed_download] => 39193 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 1.438 [redirect_time] => 0

Er der andre kommandoer til CURL for at få mere info om fejlbeskeden?

I min nuværende kode er CURLOPT_SSL_VERIFYPEER sat til false. Mente du true?
Jeg har lige sat den til true. I så fald fejler den hver gang og den skifter mellem af give en fejl 35 eller fejl 60.

Kan du ud af dette se hvad der skulle være problemet?
Avatar billede erikjacobsen Ekspert
07. november 2009 - 19:07 #4
Nå ja, den var sat til false - det er ok.

Der er forskel på ssl_verify_result. Den nemme løsning: skal det ske via SSL ?

Der er måske mere info i: http://php.net/curl_error
Avatar billede encorez Nybegynder
07. november 2009 - 19:21 #5
Fik en bedre fejlbesked med den.

Unknown SSL protocol error in connection to www.www.com:443

Men ved ikke om den bringer om nærmere
Avatar billede encorez Nybegynder
07. november 2009 - 19:56 #6
Jeg tror måske jeg løste det. Prøvede at søge efter SSL i funktionslisten og prøvede med denne
curl_setopt($ck, CURLOPT_SSLVERSION, 2)

og nu går den igennem hver gang ser det ud til.
Avatar billede erikjacobsen Ekspert
07. november 2009 - 20:05 #7
Mærkeligt at det virkede nogle gange før.
Avatar billede encorez Nybegynder
08. november 2009 - 12:46 #8
Ja, enig. Jeg prøvede at sætte den til 3, og det var samme resultat som slet ikke at bruge CURLOPT_SSLVERSION; nemlig at den fejler 3 ud af 5 gange.
Der står i dokumentationen mener jeg, at hvis ikke CURLOPT_SSLVERSION er sat, så forsøger funktionen selv at gætte hvilken version der skal bruges, hvilket burde virke i de fleste tilfælde.
Men i mit skulle den åbenbart sættes.

Tak for hjælpen til at finde løsningen. Jeg går ud fra du ikke vil have pointene, så jeg bliver nødt til selv at tage dem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester