Foros del Web » Programando para Internet » PHP »

dudas con Curl

Estas en el tema de dudas con Curl en el foro de PHP en Foros del Web. hola, estoy tratando de automatizar el proceso de login mediante cURL, la idea es automatizar el login de OrangeHRM, el archivo login del HRM es ...
  #1 (permalink)  
Antiguo 22/07/2010, 16:15
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
dudas con Curl

hola, estoy tratando de automatizar el proceso de login mediante cURL, la idea es automatizar el login de OrangeHRM, el archivo login del HRM es el siguiente:

Código PHP:
define('ROOT_PATH'dirname(__FILE__));

session_start();

$wpath explode('/login.php'$_SERVER['REQUEST_URI']);
$_SESSION['WPATH']= $wpath[0];

require_once 
ROOT_PATH '/lib/models/eimadmin/Login.php';
require_once 
ROOT_PATH '/lib/common/authorize.php';


if ((isset(
$_POST['actionID'])) && $_POST['actionID'] == 'chkAuthentication') {

    
$login = new Login();

    
$rset=$login->filterUser(trim($_POST['txtUserName']));

    if (
md5($_POST['txtPassword']) == $rset[0][1]) {
        if (
$rset[0][5]=='Enabled') {
            if ((
$rset[0][7] == "Yes") || (($rset[0][7] == "No") && !empty($rset[0][6]))) {
                
$_SESSION['user']=$rset[0][3];
                
$_SESSION['userGroup']=$rset[0][4];
                
$_SESSION['isAdmin']=$rset[0][7];
                
$_SESSION['empID']=$rset[0][6];

                
$_SESSION['fname']=$rset[0][2];

                
/* If not an admin user, check if a supervisor */
                
$isSupervisor false;
                if (
$_SESSION['isAdmin'] == 'No') {

                    
$authorizeObj = new authorize($_SESSION['empID'], $_SESSION['isAdmin']);
                    
$isSupervisor $authorizeObj->isSupervisor();
                }
                
$_SESSION['isSupervisor'] = $isSupervisor;

                
$wpath explode('/login.php'$_SERVER['REQUEST_URI']);
                
$_SESSION['WPATH']= $wpath[0];

                
setcookie('Loggedin''True'0'/');

                
header("Location: ./index.php");
            } else {
                
$InvalidLogin=3;
            }
        } else 
$InvalidLogin=2;
    } else {
        
$InvalidLogin=1;
    }


y mi php cURL es el siguiente:

Código PHP:
$ch curl_init();

curl_setopt($chCURLOPT_URL"http://myserver/RRHH/login.php");

curl_setopt ($chCURLOPT_POST1);
curl_setopt($cCURLOPT_RETURNTRANSFERTRUE);
curl_setopt($chCURLOPT_FOLLOWLOCATIONTRUE);
//curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);

curl_setopt ($chCURLOPT_POSTFIELDS"txtUserName=Admin&txtPassword=Admin&actionID=chkAuthentication&Submit=+Login+");

$store curl_exec ($ch);
curl_close ($ch); 
he notado que la url no cambia sigue mostrando http://......./login_curl.php, como se puede redirigir al index.php???

el resultado es a medias, ya que me muestra la pagina del admin, pero al momento de clockar algun link, me retorna a la pagina del login.

que hago mal?

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 22/07/2010, 16:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: dudas con Curl

observa que el sistema al que intentas hacer login hace uso de sesiones y cookies, de modo que en la configuración de tu conexión cURL debes especificar dicha funcionalidad...

revisa el manual:
http://php.net/curl
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/07/2010, 18:02
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
Respuesta: dudas con Curl

gracias, la cookie que crea es:

Código PHP:
setcookie('Loggedin''True'0'/'); 
pero no se como agregarla al cURL, creo que es asi..

Código PHP:
$LoginURL 'http://myserver/RRHH/login.php';
$ARGS_Login 'txtUserName=Admin&txtPassword=Admin&actionID=chkAuthentication';
$cookie "Loggedin, True, 0, /";

$ch curl_init();
curl_setopt($chCURLOPT_URL$LoginURL);

curl_setopt ($chCURLOPT_POST1);
curl_setopt    ($chCURLOPT_FOLLOWLOCATION  ,1);
curl_setopt ($chCURLOPT_POSTFIELDS$ARGS_Login);
curl_setopt($chCURLOPT_COOKIESESSIONTRUE); 
curl_setopt($chCURLOPT_COOKIE$cookie);
curl_setopt ($chCURLOPT_COOKIEJAR'cookie.txt');

curl_exec ($ch);
curl_close ($ch); 
el comportamiento sigue igual..

saludos y gracias
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Última edición por cadrogui; 22/07/2010 a las 18:10
  #4 (permalink)  
Antiguo 22/07/2010, 19:34
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
Respuesta: dudas con Curl

He tratado de la siguiente manera y nada...

Código PHP:
function AutoLOGIN($post$page$n$session$referer
    { 
        if(!
is_array($post)) 
        { 
         return 
false
        } 
        
        
$DATA_POST curl_init(); 
        
curl_setopt($DATA_POSTCURLOPT_RETURNTRANSFERtrue); 
        
curl_setopt($DATA_POSTCURLOPT_URL$page); 
        
curl_setopt($DATA_POSTCURLOPT_POSTtrue); 
        if(
$n
        { 
         
curl_setopt($DATA_POSTCURLOPT_FOLLOWLOCATIONtrue); 
        } 
        if(
$session
        { 
         
curl_setopt($DATA_POSTCURLOPT_COOKIEFILE'cookiefile.txt'); 
         
curl_setopt($DATA_POSTCURLOPT_COOKIEJAR'cookiefile.txt'); 
        } 
        
        if(
$referer
        { 
         
curl_setopt($DATA_POSTCURLOPT_REFERER$referer); 
        } 
        
        
curl_setopt($DATA_POSTCURLOPT_POSTFIELDS$post); 
        
$data curl_exec($DATA_POST); 
        if(
$data == false
        { 
         echo
'Warning : ' curl_error($DATA_POST); 
         
curl_close($DATA_POST); 
         return 
false
        } 
        else 
        { 
         
curl_close($DATA_POST); 
         return 
$data
        } 
    } 


pd: como puedo hacer para usar la cookie que genera el sistema de autentificacion?


le agregue este trozo de code, pero sigue sin funcionar, alguna sugerencia????

Código PHP:
             $COOKIE_VARS "Loggedin, ";
             
$COOKIE_VARS .= "True, ";
             
$COOKIE_VARS .= "0, ";
             
$COOKIE_VARS .= "/";
             
             
curl_setopt($DATA_POSTCURLOPT_COOKIE$COOKIE_VARS);
             
             
curl_setopt($DATA_POSTCURLOPT_COOKIEFILE'Loggedin.txt');  
             
curl_setopt($DATA_POSTCURLOPT_COOKIEJAR'Loggedin.txt'); 
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Última edición por cadrogui; 22/07/2010 a las 21:30
  #5 (permalink)  
Antiguo 23/07/2010, 19:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: dudas con Curl

Bueno no soy moderador pero, hay un ejemplo en este aporte, trata y déjanos saber si te pudo ayudar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 23/07/2010, 20:44
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
Respuesta: dudas con Curl

gracias abimaelrc, pero los lei hartas veces y no lo he logrado, he creado la cookie y al clickar un link me dice que la sesion expiro y me bota!!!

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #7 (permalink)  
Antiguo 23/07/2010, 21:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: dudas con Curl

Pero pasa los cookies por la url mira este ejemplo para que te hagas de idea http://www.forosdelweb.com/3030459-post1.html Mira los últimos 3 ejemplos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: curl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.