Foros del Web » Programando para Internet » PHP »

Usar metodo POST por file_get_contents();

Estas en el tema de Usar metodo POST por file_get_contents(); en el foro de PHP en Foros del Web. Hola recientemente probe este codigo, funciona correctamente hasta cierto punto, ya que envia bien los datos $_POST pero no consigue loguearse, el login si que ...
  #1 (permalink)  
Antiguo 25/07/2012, 02:24
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
Usar metodo POST por file_get_contents();

Hola recientemente probe este codigo, funciona correctamente hasta cierto punto, ya que envia bien los datos $_POST pero no consigue loguearse, el login si que funciona correctamente ya que lo probe a parte en el navegador y si que iba en cambio al usar este metodo no es capaz de redirigir al profile.php

Código:
<?php
$url = 'http://aex12.webcindario.com/images/login.php';

$data = array('user' => 'Aex12',
              'pass' => 'micontraseña',
              'loguear' => 'Loguearse',
              'action' => 'conectar'
              );
 
	
	$options = array('http' => array(
		'method'  => 'POST',
		'content' => http_build_query($data)
	));
	$context  = stream_context_create($options);


$page = file_get_contents($url, false, $context);

echo $page;
echo "<textarea rows='20' cols='70'>".$page."</textarea>";
?>
Hice un pequeño login en mi servidor en la ruta arriba especificada y puedo loguearme normal desde el navegador(Es decir funciona correctamente) pero a la hora de enviar LOS MISMOS datos que envio desde el navegador pero desde php no loguea, se queda en la pantalla de login y no redirige al profile.php (Lo que deberia de hacer) asi que probe si enviaba correctamente los datos por post he hice el mismo codigo pero apuntando a http://aex12.webcindario.com/images/login1.php
Y dentro de este archivo puse esto y efectivamente llegavan los datos por el metodo post asi que puse de nuevo todo bien para que apuntase de nuevo a /.../login.php pero seguia el mismo error envia bien todos los datos $_POST pero el login no hace lo que es debido (Redirigir a Profile.php) alguna sugerenica?
Código:
echo $_POST['user']; echo $_POST['pass'];
Bueno espero que algun experto en este tema pueda ayudarme y me guie
  #2 (permalink)  
Antiguo 25/07/2012, 09:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Usar metodo POST por file_get_contents();

Lo que pasa es que los redirects y eso ya no se manejan con el file_get_contents, tienes que usar cURL para poder seguir los redirects, file_get_contents es una función muy simple solo para extraer el contenido de una pagina, pero si esta hace redirects, no los va a seguir.

Saludos.
  #3 (permalink)  
Antiguo 25/07/2012, 12:49
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Usar metodo POST por file_get_contents();

Cita:
Iniciado por GatorV Ver Mensaje
Lo que pasa es que los redirects y eso ya no se manejan con el file_get_contents, tienes que usar cURL para poder seguir los redirects, file_get_contents es una función muy simple solo para extraer el contenido de una pagina, pero si esta hace redirects, no los va a seguir.

Saludos.
Lo tendre en cuenta, el problema es que mi servidor web no tiene instalada esta libreria por eso opte por usar file_get_contents(); y ya busque dentro del foro privado de mi servidor y alguien pregunto si podian instalar esta libreria y se lo denegaron la peticion, a si que mi pregunta de ahora es hay alguna forma de descargar cURL e incluirlo en el script con un require("curl.php");? De no poderse, HTTP_Request (Que he leido que tambien puede enviar POST y que si que se puede instalar desde un require) podrá seguir los redirect? espero una respuesta, gracias!
  #4 (permalink)  
Antiguo 25/07/2012, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Usar metodo POST por file_get_contents();

Pues siempre puedes hacer un fsockopen() y usar manualmente los comandos aunque es más tarea, no se si HTTP_Request lo pueda hacer, deberías de probar Snoopy, es una clase algo vieja pero se que funciona también.
  #5 (permalink)  
Antiguo 26/07/2012, 04:01
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Usar metodo POST por file_get_contents();

Cita:
Iniciado por GatorV Ver Mensaje
Pues siempre puedes hacer un fsockopen() y usar manualmente los comandos aunque es más tarea, no se si HTTP_Request lo pueda hacer, deberías de probar Snoopy, es una clase algo vieja pero se que funciona también.
fsockopen() lo tiene bloqueado mi servidor voy a buscar acerca del snoopy, sabrias decirme un tutorial bueno?
  #6 (permalink)  
Antiguo 26/07/2012, 09:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Usar metodo POST por file_get_contents();

Snoopy usa fsockopen, así que en ese caso no te va a servir, y en ese caso veo muy complicado que hagas el script que necesitas, ya que es forzoso que analices las respuestas que te envía el servidor para procesar la re dirección.

Etiquetas: credenciales, file_get_contents(), login, servidor, usuarios
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 04:04.