Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » Programación en general » Hacer login en páginas HTTPS con PHP Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2010-10-26 12:00 @542
Avatar de Usuario
Perlero Nuevo
Registrado: 2009-08-04 13:53 @620
Ubicación: Valencia, España
Mensajes: 46
Hacer login en páginas HTTPS con PHP
Hola,
si me valido introduciendo usuario y contraseña en una página web se me muestra la página de usuario registrado, donde encuentro ciertos campos de interés (crédito, último acceso, etc). La cuestión es que trato de acceder a la página y obtener esos campos para tratarlos posteriormente en un script en PHP.

He probado mirando el URL que aparece en el campo 'action' en el formulario del código fuente y los campos que son enviados para la validación, para luego intentarlo con wget:
1) wget --save-cookies cookie --post-data ’user=usuario&password=contrasenya’ <url>
2) wget --load-cookies cookie -p <url/fichero/descargar>

o incluso con:
wget --save-cookies cookie --http-user=usuario --http-password=contrasenya <url/fichero/descargar>

Lo que me descarga el index.html.

También he estado mirando la documentación de PHP al respecto, incluso alguna vez tuve que montar una URL con diferentes campos GET para envío de SMS y cosas del estilo, pero esta vez me pierdo con el tema de la validación.

¿Alguna sugerencia?

Gracias por adelantado.

_________________
"Dios nos dió boca para pedir y el kernel de Linux para conceder/denegar servicios" (popular)


Nota 2010-10-26 12:48 @575
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Hacer login en páginas HTTPS con PHP
No entiendo bien lo que deseas hacer, pero ¿ya probaste con
file_get_contents()?

Es una función con la cual se obtiene el contenido que regresa el archivo, puede ser
Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
  1. <?php
  2. $homepage = file_get_contents('http://www.example.com/file.php?action=algo');
  3. echo $homepage;
  4. ?>
  5.  

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Nota 2010-10-26 15:01 @667
Avatar de Usuario
Perlero Nuevo
Registrado: 2009-08-04 13:53 @620
Ubicación: Valencia, España
Mensajes: 46
Re: Hacer login en páginas HTTPS con PHP
Hola de nuevo. Sí probé pero obtengo lo mismo que con el wget antes mencionado.

Básicamente necesitas validarte para poder entrar en la página de usuario registrado o, incluso en otro tipo de páginas (como las de proveedores de servicios), para obtener ficheros con tarifas y cosas del estilo.

¡Gracias de todas formas!

_________________
"Dios nos dió boca para pedir y el kernel de Linux para conceder/denegar servicios" (popular)


Nota 2010-10-26 17:52 @786
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Hacer login en páginas HTTPS con PHP
Eso me parece a los WS (webservice)... bueno ni modos.

Una vez hice una función así en PHP para obtener información de un webservice en Perl que desarrollé, recuerdo que la función es :
con ella podía hasta pasar ficheros, xml, etc..

Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
  1. public function sendData($direccion,$variables, $referido="") {
  2.                    global $_SERVER;
  3.                 //Desarmamos la URL definida en $dirección
  4.                    $infodeurl=parse_url($direccion);
  5.                 //En caso de que el parametro $referido no este definido, que coloque el documento actual
  6.                    if($referido=="") $referido=$_SERVER["SCRIPT_URI"];
  7.                 //Desglosamos las variables que se van a enviar
  8.                    foreach($variables as $key=>$valor)
  9.                         $valores[]=$key."=".urlencode($valor);
  10.                 //Convertimos las Variables desglosadas en una cadena de consulta
  11.                    $datos=implode("&",$valores);
  12.                 //En caso de que el puerto no esté definido en la url, utilizaremos por defecto el puerto 80
  13.                    if(!isset($infodeurl["port"]))  $infodeurl["port"]=80;
  14.                 //Creamos la Data que se enviara por medio del socket
  15.                    $retorno.="POST ".$infodeurl["path"]." HTTP/1.1\n";
  16.                    $retorno.="Host: ".$infodeurl["host"]."\n";
  17.                    $retorno.="Referer: $referer\n";
  18.                    $retorno.="Content-type: application/x-www-form-urlencoded\n";
  19.                    $retorno.="Content-length: ".strlen($datos)."\n";
  20.                    $retorno.="Connection: close\n";
  21.                    $retorno.="\n";
  22.                 //incluimos las variables en la data
  23.                    $retorno.=$datos."\n";
  24.                 //Conectamos al dominio especificado en la URL
  25.                    $fp = fsockopen($infodeurl["host"],$infodeurl["port"]);
  26.                 //le enviamos los datos
  27.                    fputs($fp, $retorno);
  28.                 //Sacamos el resultado linea a linea
  29.                    while(!feof($fp))
  30.                    {
  31.                           $resultado .= fgets($fp, 128);
  32.                    }
  33.                 //Cerramos la conexión con el servidor
  34.                    fclose($fp);
  35.                 //Y retornamos los datos.
  36.    return $resultado;
  37. }

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Nota 2010-10-29 06:09 @298
Avatar de Usuario
Perlero Nuevo
Registrado: 2009-08-04 13:53 @620
Ubicación: Valencia, España
Mensajes: 46
Re: Hacer login en páginas HTTPS con PHP
Hola de nuevo.

La cosa tiene que ser más sencilla... yo sólo quiero hacer login en una página pero en lugar de hacerlo con el navegador con la terminal de Linux o con PHP.

He continuado con el wget y de momento sólo consigo obtener la siguiente página a la validación si modifico fraudulenta y manualmente la cookie y le introduzco 'TRACKERID xxxxxxxxxx' (copiado desde la cookie generada al hacer la conexión mediante navegador). No sé el motivo por el que con el proceso:

1) wget --keep-session-cookies --save-cookies cookie.txt --post-data='user=usuario&pass=contrasenya' https://www.url.com/index.php?part=tplogin

2) wget --keep-session-cookies --save-cookies cookie.txt --load-cookies cookie.txt https://www.url.com/salida.php?form=profile

falla a menos que haga 'la trampa'.

_________________
"Dios nos dió boca para pedir y el kernel de Linux para conceder/denegar servicios" (popular)


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO