[PHP] Curl en certificaten

Pagina: 1
Acties:
  • 112 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 17:42
Ik ben bezig een scriptje te maken voor het leeglezen van de info op de R.D.W. website (auto informatie) alleen krijg ik constant deze foutmelding:
Errors: 35 SSL: error:140820A7:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:missing export tmp rsa key
Ik gebruik de volgende code:
PHP:
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
<?
    $kenteken = $_GET["kenteken"];
    $kenteken = str_replace(" ", "", $kenteken);
    $kenteken = str_replace("-", "", $kenteken);

    if (strlen($kenteken) <> 6)
        die("Ongeldig kenteken: ".$kenteken."!");

    $url = "https://info.apk.nl/ovi/arvinvoer.aspx?__VIEWSTATE=dDwtMTM4Mzc1OTE2Nzs7PreXF8U2JhxAYyj18cKuRmFPdE7m&ArvInvoer1%3AEdit1=".substr($kenteken, 0, 2)."&ArvInvoer1%3AEdit2=".substr($kenteken, 2, 2)."&ArvInvoer1%3AEdit3=".substr($kenteken, 4, 2)."&ArvInvoer1%3AButton1=+Zoeken+";

    $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  // this line makes it work under https
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $Data = curl_exec($ch);

    echo '<pre>';
    print_r(curl_getinfo($ch));
    echo '</pre>';

    echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';
    
    curl_close($ch);

    echo $Data;
?>


Dit is volgens mij toch corrent voor SSL maar blijkbaar niet. Wie kan mij helpen?

[ Voor 10% gewijzigd door Kix@$$ op 31-01-2005 11:49 ]


Acties:
  • 0 Henk 'm!

  • PanMan
  • Registratie: November 1999
  • Laatst online: 18-09 22:50

PanMan

Spun!

Hrmz, niet getest met RWD, maar dit werkt bij mij iig prima bij een HTTPS url:
PHP:
1
2
3
4
5
$ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $url); // Destination URL
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // Output to a variable
        $results = curl_exec ($ch);
        curl_close($ch);

Success!
Edit:
Ach, fukt, ik heb het wel ff getest :). En als ik mijn kenteken er hard inzet, werkt het hier gewoon. Zelfs zonder useragent enzo...

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


Acties:
  • 0 Henk 'm!

  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 17:42
Hmm hier werkt hij niet. Welke CURL en PHP versie heb je daar?

Hier:
PHP Version 4.3.10
libcurl/7.11.2 OpenSSL/0.9.7c zlib/1.1.4

(is op Windows trouwens)

[ Voor 10% gewijzigd door Kix@$$ op 31-01-2005 13:35 ]


Acties:
  • 0 Henk 'm!

  • PanMan
  • Registratie: November 1999
  • Laatst online: 18-09 22:50

PanMan

Spun!

Hrmz.
PHP Version 4.3.9
CURL Information libcurl/7.12.0 OpenSSL/0.9.6c zlib/1.1.4

Maar ik zou zeggen dat dat toch niet zoo veel zou moeten schelen. Naja, wie weet. Vaag. Success iig! Hier werkt het :)
Anders anderen hosting? :)

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Even je foutmelding in Google gooien:
*klik*

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 17:42
Mja dan heb ik een licht verouderde versie van OpenSSL maarja, op php.net staat geen nieuwe versie dus daar kan ik niks mee dus ja, wa moet ik dan :{

[ Voor 10% gewijzigd door Kix@$$ op 02-02-2005 09:33 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

http://nl3.php.net/manual/en/function.curl-setopt.php

Kijk daar ook eens. CURL heeft bizar veel instelmogelijkheden. Moet vast wel iets tussen zitten waarmee je de problemen kunt oplossen of omzeilen.

Acties:
  • 0 Henk 'm!

  • LEiPiE
  • Registratie: Juni 2001
  • Laatst online: 20-09 11:03

LEiPiE

... (ing. van weinig woorden)

(jarig!)
Zocht op kenteken info en dit topic was precies wat ik nodig had :)
RDW site is echter veranderd, nieuwe code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
    $url  = "https://info.apk.nl/ovi/oviinvoer.aspx";
    $data = "__VIEWSTATE=dDwtMTQzMTQ0MDU2Mjs7PsUq5LvLDhrcEptsZpXKtgbrQ2ex"
        ."&txtKenteken=".urlencode($kenteken)
        ."&btnZoeken=Zoeken";
                
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close($ch);

Waarbij $kenteken AB-AB-00 is (dus met streepjes en alleen hoofdletters).

Heb er zelf een parsertje omheen gebakken dat de html code omvormt naar cvs en vervolgens nog wat bewerkingen toepast waardoor ik het zo in een vooraf geprepareerde database kan gooien.
Weet niet of 't zinnig is hier neer te gooien, of dat 't een leukere uitdaging is dat men 't zelf uitvindt? Code is wel aardig netjes, database minder (alles VARCHAR, luie donder dat ik ben :) maar ja, ik wist ook niet wat ik kon verwachten bij de 250 kentekens die ik moest doorploegen)

Papa x3, PHP-progger, Citrofiel, import-Tukker, muziekliefhebber

Pagina: 1