Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2014, 17:08
CJaramillo
 
Fecha de Ingreso: diciembre-2014
Ubicación: Colombia
Mensajes: 18
Antigüedad: 9 años, 4 meses
Puntos: 0
Pregunta Problema con uso de CURL

Buenas tardes


Estoy desarrollando un script, en el cual al momento de ingresar un nuevo usuario en una plataforma, se ingrese los datos de este mismo usuario en otra plataforma distinta.

Para este efecto uso el siguiente código:

Código PHP:
<html>
<head>
    <title>Uso de API de ProcessMaker</title>

    <meta charset="UTF-8">
    <?php include "NuevoCaso.php"?>
</head>
<body>

    <?php

     $user 
'*****';
     
//$pass = '*******';
     
$pass '********';

     
ini_set("soap.wsdl_cache_enabled""0");
     
$cliente = new SoapClient("http://p***************o:80/sysPQRS/es/classic/services/wsdl2");     
     
     
$parametros = array(array('userid'=>$user'password'=>$pass));

     
$resultado $cliente->__SoapCall('login'$parametros);
     
     if(
$resultado->status_code == 0)
     {
         echo 
"Sesión iniciada exitosamente <br><br>";
         
$sessionId $resultado->message;
                  
         
/*Listar los usuarios*/
         
echo "<br><br> Lista de usuarios_____________________________________<br>";
         
$parametros = array(array('sessionId'=>$sessionId));          
         
$resultado $cliente->__SoapCall('userList'$parametros);         
         
$usersArray $resultado->users;
         if (
is_array($usersArray))
         {
             foreach (
$usersArray as $user)
             {
                 echo 
"User name: $user->name, User ID: $user->guid <br>";             
             }                   
         }              
        else
        {
            echo 
"Error: $usersArray->name <br>";
        } 

        
/*Crear un nuevo usuario*/
        
echo "<br><br> Nuevo Usuario_____________________________________<br>";
        
$parametros = array(array('sessionId'=>$sessionId'userId' => 'JoseO',
            
'firstname'=>'Jose''lastname'=>'Ojeda''email'=>'[email protected]'
            
'role'=>'PROCESSMAKER_OPERATOR''password'=>'123456'));
        
//$resultado = $cliente->__SoapCall('createUser', $parametros);
        
if ($resultado->status_code == 0
        {
            echo 
"$resultado->message <br> User ID: $resultado->userUID";
            
            
$session curl_init('http://smart.parquesoftpasto.com/api?task=newuser');            
            
curl_setopt ($sessionCURLOPT_POST,1);            
            
//le decimos qué parametros enviamos (pares nombre/valor, también acepta un array)
            
curl_setopt ($sessionCURLOPT_POSTFIELDS"[email protected]&password=123456&name=Jose&apellido=Ojeda&identificacion=123456");
            
curl_setopt($session,CURLOPT_RETURNTRANSFER,1);

            
print_r($session);
            
            
$respuesta curl_exec($session);    

            if(
$respuesta != 0)
            {
                echo 
"<br>Usuario creado exitosamente en Ushahidi!!!!";    
                
print_r($respuesta);            
                
curl_close ($session);
            }        
            else
            {
                echo 
"<br>Imposible crear usuario en base de datos de ushahidi";
                
$error curl_error($session);
                echo 
"<br>".$error;
                
print_r($respuesta);
                
curl_close ($session);
            } 
        }
            
        else
        {
            echo 
"<br>Incapaz de crear usuario en ProcessMaker.<br>Error Number: $resultado->status_code<br>"."Mensaje de Error: $resultado->message<br>";
        }
            

        
/*Listar Casos*/ /*
        echo "<br><br> Lista de Casos_____________________________________<br>";
        $parametros = array(array('sessionId'=>$sessionId));
         $resultado = $cliente->__SoapCall('caseList', $parametros);
         $casosArray = $resultado->cases; 
         $n=0;
         if ($casosArray != NULL)
         {
             foreach ($casosArray as $caso)
             {
                 //while($n<count($casosArray))
                 //{
                     echo "Nombre del Caso: $caso->name, Caso ID: $caso->gd, Estado: $caso->status, Index: $caso->delIndex <br><br>";
                     $n++;
                 //}
             }                       
         }              
        else 
        {
            echo "<br> Hay cero casos. <br><br>";
        } */


        /*Lista de Procesos*/ /*
        echo "<br><br> Lista de Procesos_____________________________________<br>";
        $parametros = array(array('sessionId'=>$sessionId));
        $resultado = $cliente->__SoapCall('processList', $parametros);
        $processesArray = $resultado->processes;
         
         if ($processesArray != NULL)
        {
            if (is_array($processesArray))
            {
                foreach ($processesArray as $process)
                {
                    echo "Process name: $process->name, Process ID: $process->guid <br>";                    
                }                    
            }
            else
            {
                echo "Process name: $processesArray->name, Process ID: $processesArray->guid <br>";
            }
         }
         else
         {
             echo "Error: $processesArray->name <br>";
         } */


         /*Lista de Tareas*/ /*
         echo "<br><br> Lista de tareas_____________________________________<br>";
         $parametros = array(array('sessionId'=>$sessionId));
         $resultado = $cliente->__SoapCall('taskList', $parametros);
         $tasksArray = $resultado->tasks;
         if ($tasksArray != (object) NULL)
         {
             foreach ($tasksArray as $task)
             {
                 echo "<br> Nombre de la tarea: $task->name, Task ID: $task->guid <br>";
             }                   
         }              
        else 
        {
            echo "<br> Hay cero tareas asignadas a este usuario. <br>";
        } */
              
                

        /* Crear Nuevo Caso */ /*
        
        echo "<br><br> Nuevo Caso_____________________________________<br>";
        $name = new variableStruct();
        $vars = array('APPLICANT_NAME'=>'Carlos', 'APPLICANT_LAST'=>'Jaramillo', 
             'APPLICANT_ID'=>'123456', 'APPLICANT_EMAIL'=>'[email protected]',
             '$APPLICANT_EMPLOYER'=>'ParqueSoft');
        $aVars = array();
         foreach ($vars as $key => $val)
         { 
              $obj = new variableStruct();
              $obj->name = $key;
              $obj->value = $val;
              $aVars[] = $obj;     
         }*/
        

        /*Use las funciones Lista de procesos () y Lista de tareas () para buscar los IDs para el  
        proceso y su primera tarea.*/  /*
        $parametros = array(array('sessionId'=>$sessionId, 'processId'=>'82624301853c85a89813cd8090028969', 
             'taskId'=>'182114808548079fa7decf8034689551', 'variables'=>$aVars));
         $resultado = $cliente->__SoapCall('newCase', $parametros);
         if ($resultado->status_code == 0)
         {
             echo "Nuevo ID de caso: $resultado->caseId, Caso No: $resultado->caseNumber \n";
         }
              
        else
        {
            echo "Error al crear caso: $resultado->message \n";
        }*/
     
}
     else
     {
         echo 
$resultado->status_code;
     }

    
?>

</body>
</html>
El usuario que se esta registrando mediante SOAP es la plataforma ProcessMaker, y necesito que los datos de este mismo usuario se guarden en la plataforma en la cual uso el Curl que es de Ushahidi.

Dentro de la API de ushahidi esta el siguiente método que seria el encargado de recibir los datos enviados por el Curl (Se que no los guardo en la BD aun, pero bueno este es un código de ejemplo):

Código PHP:
public function new_user()
    {  

        if(isset(
$_POST['name']) AND isset($_POST['apellido']) AND isset($_POST['email']) AND isset($_POST['identificacion']) AND isset($_POST['password']))
        {
            echo 
"El usuario que intenta ingresar en la BD de Ushahidi es:";
            echo 
"<br>Nombre: ".$_POST['name'];
            echo 
"<br>Apellido: ".$_POST['apellido'];
            echo 
"<br>Email: ".$_POST['email'];
            echo 
"<br>Identificacion: ".$_POST['identificacion'];
            echo 
"<br>Contraseña: ".$_POST['password'];

            return 
0;
        }
        else
        {
            echo 
"No se ha ingresado algún usuario.";
            return 
1;
        }
        
    } 
Pero cual ejecuto el código en el navegador, me salta un error de que falta un parámetro para poder ejecutar el curl (que es donde esta mi problema, el resto del código funciona perfectamente).

Solicito su ayuda, pues la verdad no se cual es el error.