Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Curl - logowanie + dodwanie
Forum PHP.pl > Forum > PHP
Pawel86
Witam!
Mam następujący kod:

Kod
  
   $post_data = array();
   $post_data['login_str'] = "xxx";
   $post_data['password_str'] = "xxxxxx";
   $post_data['m'] = "";
   $post_data['g'] = "";
   $post_data['URI'] = "admin.php";
   $post_data['check'] = 1;
   $url = "http://xxx.pl/users/login.php";

   $o="";
   foreach ($post_data as $k=>$v)
   {
       $o.= "$k=".utf8_encode($v)."&";
   }
   $post_data=substr($o,0,-1);
  
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_TIMEOUT, 15);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_URL, $url);  
   curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
   $result = curl_exec($ch);

unset($post_data);

   $post_data = array();
   $post_data['u'] = "";
   $post_data['check'] = "Dodaj";
   $post_data['Q[2216]'] = "cos";
   $post_data['Q[2223]'] = "tes";
   $post_data['Q[2262]'] = "lublin :)";
   $post_data['Q[2214]'] = 4;
   $post_data['id_advert'] = 0;
   $post_data['id_category'] = |14|2|;
   $url = "http://xxx.pl/manage/add.php";

   $o="";
   foreach ($post_data as $k=>$v)
   {
       $o.= "$k=".utf8_encode($v)."&";
   }
   $post_data=substr($o,0,-1);

   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_TIMEOUT, 15);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_URL, $url);  
   curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
   $result = curl_exec($ch);


echo $result;


"Pierwszy" curl dotyczy logowania - powinien zalgowac do systemu, a drugi powinien dodac zdarzenie lecz ani to ani tamto nie ma miejsca (oczywiscie nie dodaje sie zdarzneie bo user niezalogowany).

Nigdy nie uzywalem curla wiec jakby, ktos moglby pomoc mi w rozwiazaniu tego problemu to bylbym wdzieczny.

Pozdroawiam Pawel
pieto
no wlasnie ten sam problem ? tzn mi potrzeba aby tylko zalogowal mam kod

  1. <?php
  2. function cp_log() {
  3. global $cpanel_protocol,$cpanel_url,$cpanel_port, $cpanel_login,$cpanel_pass;
  4.  
  5. $postfields = "user=user&pass=pass&press=Login"; 
  6.  
  7. $url =$cpanel_protocol.'://'.$cpanel_url.':'.$cpanel_port.'/login/'; 
  8. //$url ="http://www.pieto.org" ;
  9. $ch = curl_init();
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($ch, CURLOPT_URL, $url); 
  12. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
  13. curl_setopt($ch, CURLOPT_VERBOSE, 0);
  14. curl_setopt($ch, CURLOPT_HEADER, 1);
  15. //curl_setopt($ch, CURLOPT_POST, 1);
  16. curl_setopt($ch, CURLOPT_PORT, 2082);
  17. curl_setopt($ch, CURLOPT_COOKIEJAR, 'logs/cookie.txt'); 
  18. curl_setopt($ch, CURLOPT_POSTFIELDS, "$postfields"); 
  19. curl_exec ($ch); 
  20. curl_close ($ch); 
  21. unset($ch); 
  22. $ch = curl_init(); 
  23. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
  24. curl_setopt($ch, CURLOPT_COOKIEFILE, "logs/cookie2.txt"); 
  25. curl_setopt($ch, CURLOPT_URL,"http://www.pieto.org:2082/frontend/rvlightblue/subdomain/index.html"); 
  26. $result = curl_exec ($ch); 
  27.  
  28. //curl_close ($ch); 
  29. echo $result; 
  30. }
  31. ?>



i nie chce ?
Ludvik
Źle preparujesz tablicę z danymi do POST.
  1. <?php
  2. // Funkcja zamieniająca tablicę w postaci nazwa => wartość na ciąg zmiennych do
  3. // przesłania metodą POST.
  4. function createPostString($aPostFields) {
  5. foreach ($aPostFields as $key => $value) {
  6. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  7. }
  8. return implode('&', $aPostFields);
  9. }
  10. ?>

Równie dobrze, możesz samą tablicę podstawić - też działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.