login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cURL - inloggen op andere site

Offline Martijn - 27/05/2009 16:26 (laatste wijziging 27/05/2009 16:36)
Avatar van MartijnCrew PHP Ik werk bij een club, maar die website is zo gruwelijk verouderd dat foto's uploaden echt eeuwen duurt. Ik ben bezig met een extern script wat info dumpt in formuliertjes op die site, maar het lukt me niet zo

ik heb dit, en wat ik aan de tutorial hierzo snap, zou dit het moeten doen:

  1. <?php
  2. $link = "http://www.n201.nl/user.php";
  3. $account = "inlognaam";
  4. $pass = "inlogpassword";
  5. $ch = curl_init($link);
  6. curl_setopt($ch, CURLOPT_POST, true);
  7. //zet het type op post
  8.  
  9. curl_setopt($ch, CURLOPT_POSTFIELDS, "uname=" .$account."&pass=".$pass."&op=login");
  10.  
  11. //stuur de gegevens uit het formulier door naar de link
  12.  
  13. curl_exec($ch);
  14. //Zet de output op het scherm
  15.  
  16. if (curl_errno($ch)) {
  17. print curl_error($ch);
  18. //Als er een fout is geef deze dan
  19. }
  20. else{
  21. curl_close($ch);
  22. //Sluit de link met de website
  23. }
  24. ?>

edit: Ik krijg een ongeldige login, wat normaal suggereerd dat mn pass fout is, maar die klopt zeker weten

12 antwoorden

Gesponsorde links
Offline Koen - 27/05/2009 16:32 (laatste wijziging 27/05/2009 16:32)
Avatar van Koen PHP expert
  1. <input type='hidden' name='op' value='login' />


Ah, je zag het al, nvm 
Offline Martijn - 27/05/2009 16:33 (laatste wijziging 27/05/2009 16:37)
Avatar van Martijn Crew PHP ik krijg nu 'ongeldige login' terwijl ik zeker weten goed gegevens heb hmm

ik heb een vaag vermoeden dat ze nog wat sneaky beveiligingen hebben gemaakt. Weet iemand er een paar en hoe je die omzijlt? Graag in je achterhoofd houden dat het een redelijk oude website is
Offline Borre - 27/05/2009 16:38
Avatar van Borre Nieuw lid moet de submit niet worden ingevoert in de url?
Offline Martijn - 27/05/2009 16:43 (laatste wijziging 27/05/2009 16:46)
Avatar van Martijn Crew PHP <form action="user.php" method="post">

nope.

edit:
wat wel jammer is, manual inloggen en met fopen() de pagina uitlezen resulteert in een melding vanaf de site dat je niet bent ingelogd. Als iemand daar een suggestie voor heeft...?
Offline Rik - 27/05/2009 17:11
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Misschien controleren ze op de HTTP_REFERER header (let op de spelling). Probeer die eens mee te geven met CURLOPT_REFERER.
Offline Koen - 27/05/2009 17:27
Avatar van Koen PHP expert Try: PHP.net: rawurlencode
Offline Martijn - 27/05/2009 17:29 (laatste wijziging 27/05/2009 17:33)
Avatar van Martijn Crew PHP die rawurlencode, die maakt volgens mij weinig uit, want ik gebruik alleen maar cijfers en letters


bouke, SCORE! dat was m bedankt man
Offline Rik - 27/05/2009 17:43
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
 Goed gegokt!
Offline Martijn - 27/05/2009 17:51 (laatste wijziging 27/05/2009 18:28)
Avatar van Martijn Crew PHP Ik heb nu dit:
  1. <?php
  2. $link = "http://www.n201.nl/user.php";
  3. $linkFoto = "http://www.n201.nl/modules/myalbum/submit.php";
  4.  
  5. $account = "Martijn";
  6. $pass = "sdfsdfsddfs";
  7. $ch = curl_init($link);
  8. curl_setopt($ch, CURLOPT_POST, true);
  9. curl_setopt($ch, CURLOPT_REFERER, $link);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, "uname=" .$account."&pass=".$pass."&op=login");
  11. curl_exec($ch);
  12.  
  13. if (curl_errno($ch)) {
  14. print curl_error($ch);
  15. }
  16. else{
  17. ////////////////////////////////////////////////////////////////////////////////
  18. $fl = curl_init($linkFoto);
  19. curl_setopt($fl, CURLOPT_REFERER, $linkFoto);
  20.  
  21. curl_exec($fl);
  22. if (curl_errno($fl)) {
  23. print curl_error($fl);
  24. }
  25. else{
  26. curl_close($fl);
  27. }
  28. //////////////////////////////////////////////////////////////////////////////
  29. curl_close($ch);
  30. echo"Ingelogd";
  31. }
  32. ?>

Dat tweede is om op het foto deel te komen. Het is de bedoeling nadat ik ingelogd ben, foto's kan uploaden, en dat in de formuliertjes 2 waardes standaard ingevuld worden, zodat je dat niet bij elke foto moet doen.

Dit resulteert in een bericht dat ik juist ben ingelogd, maar daarna dat ik geen toegang hebt (die melding krijgt je als naar 'fotos' gaat zonder ingelogd te zijn)


edit: Als ik inlog via cURL, moet ik er dan ook kunnen inloggen als ik de pagina manual bezoek? want na de inlog verwijst ie terug naar hun index.php, en daar ben ik dan niet ingelogd
Offline Rik - 27/05/2009 19:10
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik weet niet hoe het precies werkt, maar volgens mij handelt curl automatisch (sessie) cookies af. Als je dezelfde curl resource gebruikt zou je ingelogd moeten blijven lees ik ook op php.net.

Dus misschien helpt het om in plaats van regel 17, dit te gebruiken:
  1. curl_setopt($ch, CURLOPT_URL, $linkFoto);
en verder ook weer $ch gebruiken ipv $fl, die je nieuw hebt aangemaakt.
Offline Martijn - 27/05/2009 19:23
Avatar van Martijn Crew PHP ik heb nu tussen regel 17 en 28 dit staan, maar zonder succes:

  1. curl_setopt($ch, CURLOPT_URL, $linkFoto);
  2. curl_setopt($ch, CURLOPT_REFERER, $root);
  3. if (curl_errno($ch)) {
  4. print curl_error($ch);
  5. }
  6.  
  7. curl_exec($ch);

Offline Rik - 27/05/2009 21:04
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Misschien moet je dan toch zelf je cookies bijhouden. Eigenlijk zou je met een packet sniffer eens moeten kijken wat voor requests php precies verstuurt vanuit je script. Dan zie je gelijk als er iets mist.  

Hiermee zouden de cookies moeten worden bijgehouden:
http://nl.php.n....php#85956
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.235s