Avatar billede caspersch Nybegynder
16. april 2010 - 12:18 Der er 8 kommentarer og
1 løsning

Problem med at sende POST variabler og hente data efterfølgende

Jeg vil gerne opnå følgende: Hente data fra en kodeords beskyttet side. Kodeordsforbindelse betyder at der skal logges ind med et brugernavn og kodeord via en form (post), hvorefter der sættes en session og man har adgang til siden. Jeg har prøvet med følgende kode, men det virker ikke. Den giver ingen fejl, og POST variablerne bliver også sendt rigtigt. Det virker som om det er noget med PHP og den session siden laver, som ikke harmonere:

Eksempel:

<?php
$URL="127.0.0.1/bing/login.php";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://$URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=test&kode=test");
curl_exec ($ch);   
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/bing/a_websites.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch); 
print $output;
?>
Avatar billede repox Seniormester
16. april 2010 - 12:22 #1
Når du har logget ind, skal du jo fortælle siden hvilken session du vil anvende for at kunne blive i den samme session.
Som koden er nu, bruger du to forskellige sessioner.

Hent den session cookie ved at returnere headers og medsend cookien i det det nye kald.
Avatar billede caspersch Nybegynder
16. april 2010 - 12:27 #2
Tak for dit svar, jeg er dog lidt i tvivl om hvad jeg præcist gør forkert? Jeg har netop brugt $ch, igennem alle kald?
Avatar billede repox Seniormester
16. april 2010 - 12:32 #3
Jeg kommer bare til at gentage mig selv...
Selvom du bruger den samme variabel, så er det stadig to selvstændige cURL kald; altså - to forskellige sessions.

For at serveren kan genkende dig, skal du fortælle serveren hvilken session du vil anvende ved at sende den cookie med, med det indhold som identificerer sessionen.
Avatar billede caspersch Nybegynder
16. april 2010 - 15:49 #4
Jeg har kigget doc. igennem, og fundet frem til følgende:

<?php
$URL="127.0.0.1/bing/login.php";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://$URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=test&kode=test");
curl_setopt($ch, CURLOPT_COOKIEFILE, 'load.txt');
curl_exec ($ch);   

$ch2 = curl_init(); 
curl_setopt($ch2, CURLOPT_URL, "http://127.0.0.1/bing/a_websites.php");
curl_setopt($ch2, CURLOPT_COOKIEFILE, 'load.txt');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch2);
curl_close($ch2); 
print $output;
?>

Dog uden det virker?
Avatar billede Slettet bruger
16. april 2010 - 16:32 #5
jeg ved det ikke - kommenterer kun for at få spørgsmålet på min overvågningsliste.
- undskyld afbrydelsen - fortsæt : )
Avatar billede repox Seniormester
16. april 2010 - 16:55 #6
Hvis der ikke kommer nogen mig i forkøbet, kommer jeg lige med et løsningsforslag senere i aften...
Avatar billede repox Seniormester
18. april 2010 - 13:54 #7
Hov, jeg glemte den lige :/

<?php
$URL="127.0.0.1/bing/login.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://$URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=test&kode=test");
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("load.txt")); // realpath() er tilføjet, fordi at cURL skal bruge den fulde sti
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath("load.txt")); // CURLOPT_COOKIEJAR er tilføjet, for ellers vil den ikke opsamle cookies til din cookiefil
curl_exec ($ch); 

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "http://127.0.0.1/bing/a_websites.php");
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("load.txt"));
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath("load.txt"));
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch2);
curl_close($ch2);
print $output;
?>
Avatar billede caspersch Nybegynder
26. april 2010 - 19:50 #8
Tak for det, smid et svar. Det virker også men var nu ikke fejlen i mit tilfælde :-).
Avatar billede repox Seniormester
27. april 2010 - 09:11 #9
Det fik du her...
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