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:
<?php
$opciones = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => 'username=XXXXXXXXXXXXX&password=YYYYYYYYY'));
$resultado = file_get_contents('http://www.10bux.net/authenticate.php', false, $contexto);
echo $resultado;
?>
ese script me devuelve la siguiente página:
<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"> <body leftmargin="0" topmargin="0"> <!--
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)
}
//-->
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<td width="37%" height="80" class="maintopright"> <div class="maintopright"> <a href="index.php"><img src=top.png border="0" align="middle"></a></div>
<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>
<td align="left" valign="top" class="main"><div> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <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"> <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>
<td colspan="5" style="FONT-SIZE: 5px; BACKGROUND-COLOR: #FFFFFF; border-top:solid 1px #999999;"> </td> <table width="95%" border="0" cellspacing="0" cellpadding="5">
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'>
<table width="100%" border="0" cellspacing="0" cellpadding="6">
<td width="50%" class="footer"><div align="center">
<font color='#000000'>© 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>
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...
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.