Problema con PHP (librería curl)

Iniciado por .:UND3R:., 4 Marzo 2012, 01:47 AM

0 Miembros y 1 Visitante están viendo este tema.

.:UND3R:.

Hola a todos tengo un modulo para mi web que tiene como propósito lo siguiente: El usuario debe introducir alguno de sus datos, además de eso deberá introducir en un textbox una captcha, esta captcha es externa a mi servidor y es sacada desde un sistema de votación. La idea es que a través del módulo ocurra lo siguiente:
Citar-el usuario introduce su ID de login
-el usuario introduce su Personaje
-el usuario introduce el captcha (este tomado desde un servidor externo de votaciones)

La idea es que cuando el usuario presione el botón enviar, a través de la librería curl se envíe una cabecera http header post al servidor externo para validar el voto en la página externa.

Todo funciona a la perfección excepto la cabecera post que no se envía:

la imagen del formulario es la siguiente:



en donde el captcha es tomado desde la página:
http://www.xtremetop100.com/in.php?site=1132331256



En otras palabras que automáticamente se valide el voto de la página http://www.xtremetop100.com/in.php?site=1132331256

He utilizado Live Http Headers para visualizar como trabaja el sistema de votos en el servidor externo. a continuación muestro una imagen de como trabaja.



Por lo que deduzco que debería enviar el contenido post mostrado en la imagen.

Pero no funciona, adjunto vote.php para ver en que falla:


Código (php) [Seleccionar]
<?php
include("secure.php");
include(
"config.php");

//Configurar votacion
$votehours "12";
$votecredits "10";
$votelink "http://www.mu-caos.cl";

// Obtiene imagen captcha
$img 'http://www.xtremetop100.com/captchasystem/captcha.php';


$connect mssql_connect($core['db_host'],$core['db_user'],$core['db_password']);
$db mssql_select_db($core['db_name'],$connect);
if(!
$db) die('<center>Conexion SQL fallida!</center>');

function 
vote()
{
global 
$votecredits;
global 
$votelink;
global 
$votehours;

$captcha_valude secure($_POST['captcha_valude']);
$character secure($_POST['character']);
$account secure($_POST['login']);
$data ='site=1132331256&word='.$_POST['captcha_valude'].'&submit=Vote+for+Mu+Caos';
check_inject();

$time 60 60 $votehours;
$timenow time();
$time2 $timenow $time;

$queryaccount mssql_query("Select * from MEMB_INFO where memb___id='$account'");
$accountcheck mssql_num_rows($queryaccount);

$querycharacter mssql_query("Select * from Character where Name='$character'");
$charactercheck mssql_num_rows($querycharacter);

$queryvote mssql_query("Select * from votereward where time>'$time2' and memb___id='$account'");
$votecheck mssql_num_rows($queryvote);

if(empty(
$account)) { echo"<font color='red'>Introduce tu ID!</font><br>"$error=1; }
elseif(empty(
$character)) { echo"<font color='red'>Introduce tu personaje!</font><br>"$error=1; }
elseif(empty(
$captcha_valude)) { echo"<font color='red'>Introduce las letras de la imagen!</font><br>"$error=1; }
elseif(
$accountcheck <= 0) { echo"<font color='red'>La ID ingresada no existe!</font><br>"$error=1; }
elseif(
$charactercheck <= 0) { echo"<font color='red'>El personaje introducido no existe!</font><br>"$error=1; }
elseif(
$votecheck >= 1) { echo"<font color='red'>Votaciones permitidas solo cada $votehours horas!</font><br>"$error=1; }

if(
$error != 1) {
$a mssql_query("INSERT INTO votereward (memb___id, time ) VALUES('$account','$timenow')");
$b mssql_query("Update Character set PCPoints = PCPoints+$votecredits WHERE Name='$character'");

// PRUEBA
$ch curl_init('http://www.xtremetop100.com/in.php?site=1132331256');
curl_setopt ($chCURLOPT_POST1);
curl_setopt ($chCURLOPT_POSTFIELDS$data);
curl_exec ($ch);
curl_close ($ch);


// PRUEBA
echo"<font color='green'>Votación realizada exitosamente!</font>";
echo
"<meta http-equiv=\"refresh\" content=\"5;url=$votelink\" />";
}
}

if(isset(
$_POST['submit'])) { vote(); }
?>

<br>Por cada voto recibiras <?php echo($votecredits);?> PCPoints!
<table border=0 cellspacing=5 cellpadding=0>
<td width='250'>
<form name="" method="post" action="">
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
 <td width="70" height="28" align="center">Login ID:</td>
 <td>&nbsp;</td>
 <td><p>
   <input name="login" type="text" id="login" maxlength="10" />
 </p></td>
</tr>
<tr>
 <td height="20" align="center">Personaje:</td>
 <td>&nbsp;</td>
 <td><input name="character" type="text" id="character" maxlength="10" /></td>
</tr>
<tr>
<td>
<td align="center">
<td align="left"><div>

<?php echo '<IMG src="'.$img.'">';?>
<p>Inserta las letras de la imagen:</p>
<p><input type="text" id="captcha_valude" name="captcha_valude"></p>
 <input type="submit" class=button name="submit" value="Votar" />
 <input type="reset" class=button name="reset" value="Resetear" />
</div>
<td>&nbsp;</td>
</tr>
</table>
</form>
</div>
</td>
</table>


Desconozco de PHP, todo lo he encontrado indagando por Internet y con un poco de ayuda de yoya que me ha dado unas pequeñas pistas.

Yo creo que el fallo dentro del recuadro de comentario // prueba

Si me dijeran que debería agregar o modificar o en que estoy fallando se los agradecería mucho, es lo único que me falta para un proyecto que llevo realizando desde hace una buena cantidad de tiempo. Muchísimas gracias por leer

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

javirk

¿Tienes que coger los datos obligatoriamente desde ahí? Si no, usa reCaptcha: http://code.google.com/intl/es-ES/apis/recaptcha/docs/php.html

.:UND3R:.

#2
Cita de: javirk en  4 Marzo 2012, 16:42 PM
¿Tienes que coger los datos obligatoriamente desde ahí? Si no, usa reCaptcha: http://code.google.com/intl/es-ES/apis/recaptcha/docs/php.html

Lógicamente que si la web a la que mi php votará no es mía por lo que yo me tengo que adaptar a ella no ella a mi, por eso tengo que tomar el captcha de la web externa a mi servidor y enviar un Header POST con el parámetro mostrado en la imagen. Y eso es lo que falla, ya que trabaja sin ningún problema todo excepto enviar datos al servidor anexo, Headder POST

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)