Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - gato89

#1
PHP / Re: Problema con petición POST
26 Abril 2008, 11:40 AM
Gracias Arwing, en cuanto tenga un poco de tiempo libre lo pruebo y te cuento como va el asunto.

Un saludo. :D
#2
PHP / Re: Problema con petición POST
20 Abril 2008, 13:06 PM
Uff menudo lío! jaja

Mira, tenemos un servidor, llamado Servidor 1, externo a mi. En ese servidor tenemos las páginas index.php, login.php, auth.php y datos.php. Además, la página datos.php esta "protegida", y si no inicias sesión en login.php, no te deja ver los datos. Y luego tenemos un Servidor 2, el mio, que no tiene nada que ver con Servidor 1. Lo que quiero hacer yo es desde Servidor 2, obtener una página de Servidor 1. Esto sería sencillisimo si no pidiera identificación, pero la pide, y ahí es donde me pierdo... Aquí te dejo un ejemplo real de una de las páginas en las que me interesa poder hacer esto. Por lo que he descubierto yo, el sistema de identificación funciona así:

index.php (pura paja, no hace falta para nada, lo que pasa es que es a la que te redirige auth.php de ir todo correctamente)
login.php (tiene un formulario con dos inputs, username y password, y un submit)
authenticate.php (comprueba el username y password recibidos mediante POST)
viewrefs.php (contiene los datos para los que hace falta estar identificado mediante el anterior sistema para ver)

entonces tu envias una petición POST con tus datos (username y password) a auth.php, comprueba que esten bien, y te redirige a index.php. Una vez hecho eso, teóricamente debería estar identificado en toda la web, y sin embargo si accedo a datos.php con una petición GET, me da la página que me daría si no estuviera identificado.

Mira, aquí tengo un ejemplo que funciona, no esta hecho con fsockopen(), sino con get_file_contents(), y así si que he conseguido que me funcione la petición POST:
Código (php) [Seleccionar]
<?php

$opciones 
= array('http' => array('method'  => 'POST',
'header'  => 'Content-type: application/x-www-form-urlencoded',
'content' => 'username=XXXXXXXXXXXXX&password=YYYYYYYYY'));

$contexto  stream_context_create($opciones);

$resultado file_get_contents('http://www.10bux.net/authenticate.php'false$contexto);

echo 
$resultado;

?>


ese script me devuelve la siguiente página:

Código (html4strict) [Seleccionar]
<html>


<head>
<title>10Bux.net - the fastest way to earn online</title>
<link rel="stylesheet" type="text/css" href="css.css">
<link rel="shortcut icon" href="http://10bux.net/images/10.gif">
</head>
<body leftmargin="0" topmargin="0">
<script language=javascript>
<!--
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
//-->
</script><br />
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="maintop">

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>
<td width="37%" height="80" class="maintopright">
<div class="maintopright">&nbsp;&nbsp;<a href="index.php"><img src=top.png border="0" align="middle"></a></div>
</td>




<td width="63%" class="maintopright"><div align="right">
Guest [<a href=login.php>Login</a> | <a href=signup.php>Register</a>]</div></td><td width="1%" class="maintopright"><td>

</tr>

</table> </td>
</tr>
<tr>
<td align="left" valign="top" class="main"><div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="900" align="center" valign="top" class="maincenter"><div style="margin-top:2; margin-bottom:2;">
<table width="100%" border="0" cellspacing="0" cellpadding="6">
<tr>
<td class="topper"><div align="center">

<a href=viewads.php>Surf Ads</a> | <a href=how.php>How</a> | <a href=faq.php>FAQ</a> | <a href=purchaseads.php>Advertise</a> | <a href=contact.php>Contact</a>

</div></td>

</tr>




<tr>
<td colspan="5" style="FONT-SIZE: 5px; BACKGROUND-COLOR: #FFFFFF; border-top:solid 1px #999999;">&nbsp;</td>
</tr>
</table>
<table width="95%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td class="midinfo">



Logging into 10Bux.net <b>XXXXXXXXXXXXX</b>...<br />
You are being redirected to the homepage..<br />
<a href='index.php'>Click here if you do not wish to wait..</a><br />
<meta http-equiv='refresh' content='5; url=index.php'>
                                        </td>
                                    </tr>

                </table><br>       



<table width="100%" border="0" cellspacing="0" cellpadding="6">

  <tr>
<td width="50%" class="footer"><div align="center">

<font color='#000000'>&copy; 10Bux.net</font> | <a href='tos.php'>Privacy</a> | <a href='tos.php'>TOS</a> | <a href='/forum/' target='_blank'>Forum</a> | <a href='banner.php'>Banner</a> | <a href='purchase35refs.php'>Un-referred Members</a> | <a href='upgrade.php'>Upgrade</a>

| <a href='adhistory.php'>Ad History</a>

| <a href='webstats.php'>Site Stats</a>

  </div></td>

  </tr>
</table> </div>

</td>
</tr>
</table>
</div>
</td>
</tr>

</table>

<noscript><center><div class="heading"><b>You must have javascript enabled to use 10Bux.net</b></div></center><br></noscript>
<noframes><center><div class="heading"><b>You must have frames enabled to use 10Bux.net</b></div></center><br></noframes>

</body>
</HTML>


lo que me interesa es esto:

Logging into 10Bux.net XXXXXXXXXXXXX...
You are being redirected to the homepage..
Click here if you do not wish to wait..


Viendo eso, pienso que si que me identifico con mi nombre de usuario y contraseña, el problema viene cuando me redirige a index.php, y al estar ubicado en mi servidor el script.php que realiza la petición anterior, pues logicamente en mi servidor(Servidor 2) no encuentra el tal index.php porque esta ubicado en Servidor 1.

En fin, que todo este lío es para conseguir ver viewrefs.php identificado, pero no se si lo estoy haciendo bien o si lo que estoy haciendo no me lleva a ningún sitio...:rolleyes:

Saludos.

PD: por cierto, la petición web si que debe estar bien hecha aunque no especifique Content-Type, porque el mensaje que me devuelve el servidor es el 200, todo OK..así que no entiendo porqué no me funcionará el otro método. :(
#3
PHP / Re: Problema con petición POST
20 Abril 2008, 01:02 AM
Gracias Arwing, lo probaré con var_dump().

Exactamente lo que quiero hacer es un "autologin", el problema es que la web es externa. Es decir, el sistema de identificación de usuarios ya esta montado (en la web externa), para identificarse lo único que hace falta es introducir tu nombre de usuario y contraseña en login.php, y enviar el formulario, el cual va a auth.php, donde se comprueban los datos y de ser correctos se pasa a index.php ya logueado. Ahora bien, lo que yo quiero es identificarme, y luego entrar en datos.php, el problema es que si envio una peticion GET obtengo la pagina que obtendria sin estar identificado, y necesito la que se obtiene cuando estas identificado...

No se si me he explicado...si no es asi, dimelo y lo intento mejor  :D

Saludos
#4
PHP / Re: Problema con petición POST
20 Abril 2008, 00:20 AM
Hola Diabliyo, gracias por contestar, pero no me has entendido bien...

Lo primero, una pequeña aclaración. La función print_r($variable) lo que hace es imprimir todos los valores de un array, en este caso, $variable, por lo que haciendo print_r($_POST) debería mostrarme todas las variables que paso mediante POST y sus valores. ;)

Y lo segundo, lo que yo quiero, no es el codigo PHP de la pagina web, lo que quiero es la salida HTML, es decir, lo que quiero obtener son unos datos que solo son visibles si estas identificado, pero son HTML. :rolleyes:

En realidad, lo que necesito es que alguien me explique como podría identificarme automáticamente en una página web, y acceder a unos datos que estan en ella...se que esto se puede hacer, pues conozco numerosos autoclickers que lo hacen, y me interesa su modo de funcionamiento, pero la mayoría estan programados en C/C++ o PERL, y a mi me interesa hacerlo en PHP...mi propósito no es hacer un autoclicker, es únicamente obtener una lista de datos que solo esta disponible una vez identificado...

Saludos :)
#5
PHP / Re: Problema con petición POST
18 Abril 2008, 13:46 PM
Se supone que lo que le mando es dato1=lalala&dato2=lololo, pero no me lo coge...Esta es la petición HTTP completa:


Código (php) [Seleccionar]
$salida = "POST /www/php/prueba3.php HTTP/1.1\r\n";
$salida .= "Host: localhost\r\n";
$salida .= "Content-Length: 25\r\n\r\n";
$salida .= "dato1=lalala&dato2=lololo";


De todas formas, me surgen otras dudas...porque la finalidad de esto es conseguir iniciar sesión automáticamente para poder acceder a páginas que no tendría permiso de no iniciarla, y aunque consiguiera pasarle los datos, y hacer la petición...no se cómo podría hacer para "mantener" el login en la proxima petición HTTP, que sería un simple GET.

Quiero decir, la finalidad de todo esto es entrar a una página que esta protegida por un nombre de usuario y una contraseña. El proceso es el siguiente: en login.php se postean los datos, ésta los envia a auth.php, y si todo es correcto, auth.php redirige a index.php ya identificado y con los derechos necesarios para ver la información pertinente.

Lo que quiero hacer yo con PHP es un script que todo eso lo haga solo, para obtener los datos de index.php (que es el que se necesita estar registrado para verlo) y manipularlos.

La verdad es que no se si esto se puede hacer con PHP únicamente, si alguien ha hecho algo parecido o tiene alguna idea...se agradecen. :rolleyes:

Saludos.
#6
PHP / Problema con petición POST
16 Abril 2008, 21:36 PM
Buenas! :D

estoy intentando desarrollar un script en php que me permita identificarme automaticamente en una segunda página, para lo que estoy utilizando esto:

<?php

$da 
fsockopen("localhost"80$errno$errstr30);

if (!
$da) {

echo "$errstr ($errno)<br />\n";

}else{

$salida "POST /www/php/prueba3.php HTTP/1.1\r\n";
$salida .= "Host: localhost\r\n";
$salida .= "Content-Length: 25\r\n\r\n";
$salida .= "dato1=lalala&dato2=lololo";
    
fwrite($da$salida);

while (!feof($da)) {
        
echo fgets($da128);
}
fclose($da);
}

?>



y el archivo prueba3.php es el siguiente:

<?php

print_r
($_POST);

?>


No se demasiado PHP, pero hasta donde llego, esto me debería funcionar bien, debería aparecerme el array con los datos que le paso en la cabecera HTTP...pero no, llevo toda la tarde intentandolo, y si lo hago mediante GET todo funciona a las mil maravillas, pero con POST no hay tu tía, no me reconoce las variables ni sus valores. ¿Alguien puede ayudarme?  :-(

Saludos!