[PHP/cURL] inloggen beveiligde server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Topicstarter
Het is de bedoeling dat ik verbinding maakt met een server en vervolgens xml naar toe POST (en direct weer terug krijg, maar dat is latere zorg). Nou had ik het ook al verschillende manieren geprobeert om verbinding te maken met deze server. Met o.a. XML-RPC, SOAP, maar dat bleken toch al niet de juiste connectie optie te zijn, want het moet gewoon simpel via POST.

Dus ik nu ben ik het met cURL aan het proberen. En daar is tot nu toe het onderstaande script uitgekomen, maar het enigste wat het nog terug geeft is een "HTTP/1.1 401 Access Denied"-pagina. Dus de aanmelding gaat niet goed. :'( Volgens mij moet ik die domeinnaam ook nog mee sturen, maar hoe doe ik dat?

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
$url = 'http://127.0.0.1';
$server = '/test.php';
$username = 'username';
$password = 'password';
$domain = 'domeinnaam\'.$username;

$request = '<xml>..blaat...</xml>';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url.$server);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);//CURLAUTH_BASIC
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');

    $data = curl_exec($ch);
    if (curl_errno($ch)) {
        print curl_error($ch);
    } else {
        curl_close($ch);
        echo $data;
         //returns <xml>...</xml>
    }

Zelf ook even een klein script je geschreven dat via php een http authentication neerzet en daar kom ik gewoon binnen.

Ook heb ik het geprobeert door bij er zelf headers bij te gooien:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//zelfde als vorige script maar dan dit er tussen gepropt

    //eerst de header maken
    $header[] = "Authorization: Basic ".base64_encode("$username:$password");
    $header[] = "Host: $domain";// of $url.$server neerzetten
    $header[] = "MIME-Version: 1.0";
    $header[] = "Content-type: multipart/mixed; boundary=----doc";
    $header[] = "Accept: text/xml";
    $header[] = "Content-length: ".strlen($request);
    $header[] = "Cache-Control: no-cache";
    $header[] = "Connection: close \r\n";
    $header[] = $request;

    //en dan daadwerkelijk opsturen
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

Maar dat werkte ook niet (wel op het test script).

Verder ook al lopen zoeken op het forum en google, wel soort gelijke problemen tegen gekomen maar deze waren al met http authentication opgelost. Ik moet blijkbaar nog een extra (domain) optie toevoegen, welke weet ik alleen niet. En de mensen van de andere server heb ik ook al om hulp gevraagd, maar die waren niet erg hulpzaam. Iemand hier hopelijk wel. :)


"mijn" server maakt gebruik van:
php 5.0.4
libcurl/7.13.1 OpenSSL/0.9.7f zlib/1.2.2.2 libidn/0.5.15

De server waarmee ik verbinding maak is:
onbekend, maar werkt met ASP en IIS

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Waarom voeg je die domain header dan niet handmatig toe? Daar is de CURLOPT_HTTPHEADER optie toch voor :)

[edit]

Laat maar.. had je laatste stukje ook moeten lezen 8)7

[ Voor 25% gewijzigd door Bosmonster op 05-10-2005 15:25 ]


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Topicstarter
Daar dacht ik ook aan idd, maar gebruik ik eigenlijk wel de juiste naam/syntax om een domeinnaam door tegeven?

Ik probeer het nu dus met:
code:
1
2
3
Host: domeinnaam
of
Domain: domeinnaam


offtopic:
wat gaat er eigenlijk fout in dat eerst php stuk, allemaal rode lijntjes onder mijn code :?

[ Voor 4% gewijzigd door Gods Lonely Man op 05-10-2005 15:53 ]

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Dat is gewoon de normale syntax van de Host header, maar die moet wel kloppen met waar je de request van verstuurd uiteraard. b.v.:

Host: www.tweakers.net

Domain is geen bestaande header voor zover ik weet.

Even opgezocht, meer header informatie van de bedenker:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

[ Voor 37% gewijzigd door Bosmonster op 05-10-2005 15:57 ]


Acties:
  • 0 Henk 'm!

  • Bartoz
  • Registratie: November 2000
  • Niet online

Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Waarom gebruik je overigens

curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');

ipv gewoon CURLOPT_POST?

De NL handleiding van PHP over setopt is wat wazig overigens, de EN versie is een stuk beter:

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

[ Voor 45% gewijzigd door Bosmonster op 05-10-2005 16:02 ]


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Topicstarter
Daar heb ik allebei op lopen zoeken maar het hele woord domain/domein komt er helemaal niet op voor geloof ik. Of zoek ik nu op een verkeerd iets?
Bosmonster schreef op woensdag 05 oktober 2005 @ 16:00:
Waarom gebruik je overigens

curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');

ipv gewoon CURLOPT_POST?
Heeft niet echt een reden, gewoon alles proberen. :)

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Topicstarter
Never mind...

ik moet inloggen met domein/username 8)7
zou toch zweren dat ik dat al tig keer geprobeerd had |:(

iig bedankt voor de moeite.
tot in het volgende topic :D

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

PsychoBoy schreef op woensdag 05 oktober 2005 @ 14:57:
PHP:
1
2
3
4
5
$url = 'http://127.0.0.1';
$server = '/test.php';
$username = 'username';
$password = 'password';
$domain = 'domeinnaam\'.$username;
Dit is wat er mis is met je code: een ge-escapede quote.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Topicstarter
Doh! >_<

Dat zou een hoop verklaren idd. Wel gemeen dat ik dan geen parse error kreeg ;(

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.

Pagina: 1