PHP dentro de javascript.

Iniciado por #Aitor, 1 Julio 2013, 17:42 PM

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

#!drvy

CitarQuizá debí haber aclarado que es para un Wargame... >_<

jajajaj ahora todo tiene sentido xD.

Bue, para estas cosas hay que ponerse creativo xD. No se.. yo lo haría de 2 maneras:



Supongamos que tienes una archivo reto.php...

El codigo que tienes, pero si se cumple (correcto), le envio una peticion ajax a un php con la respuesta, este la evalúa y si es correcta, retorna la url.

Ejemplo:
Código (javascript) [Seleccionar]
<?php
if(!empty($_GET['respuesta'])){
   if(
$_GET['respuesta']==='algo'){die('http://enlace_al_siguente_reto.com');}
   else{die(
'error');}
}
?>

<html>
<head>
</head>
<body>

<!-- Funcion para AJAX -->
<script type="text/javascript" id="ajax">
function cargarReto(variable){ var xmlhttp;
  if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}
  else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){
     var respuesta = xmlhttp.responseText;

     // Si la respuesta no es correcta alerta.
     if(respuesta==='error'){alert('Intento de h4ck -__-'); return false;}
     // Si es correcta redirigir.
     else{document.location=respuesta; return true;}

  }}; xmlhttp.open("GET","reto.php?respuesta="+variable,true); xmlhttp.send();
};
</script>

<script type="text/javascript">
var ejemplo = "algo";
var ejemplo2 = document.Formulario.ejemplo2.value;

if (ejemplo2 != ejemplo){
  alert("incorrecto");
}else{
  alert ("correcto");
  cargarReto(ejemplo2);
}
</script>

// resto del código, formularios, bla bla bla...
</body>
</html>




O, tambien puedes ofuscar el document location. Por ejemplo:

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


<script type="text/javascript">
var ejemplo = "algo";
var ejemplo2 = "algo";

if (ejemplo2 != ejemplo){
  alert("incorrecto");
}else{
  alert ("correcto");
  var _0x1f7d=["\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6D"];document[_0x1f7d[0]]=_0x1f7d[1];
}
</script>

// resto del código, formularios, bla bla bla...
</body>
</html>


Si se cumple, hará document.location="http://www.google.com";
http://javascriptobfuscator.com/

Saludos

#Aitor

#11
Cita de: drvy | BSM en  1 Julio 2013, 19:27 PM
jajajaj ahora todo tiene sentido xD.

Bue, para estas cosas hay que ponerse creativo xD. No se.. yo lo haría de 2 maneras:



Supongamos que tienes una archivo reto.php...

El codigo que tienes, pero si se cumple (correcto), le envio una peticion ajax a un php con la respuesta, este la evalúa y si es correcta, retorna la url.

Ejemplo:
Código (javascript) [Seleccionar]
<?php
if(!empty($_GET['respuesta'])){
   if(
$_GET['respuesta']==='algo'){die('http://enlace_al_siguente_reto.com');}
   else{die(
'error');}
}
?>

<html>
<head>
</head>
<body>

<!-- Funcion para AJAX -->
<script type="text/javascript" id="ajax">
function cargarReto(variable){ var xmlhttp;
  if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}
  else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){
     var respuesta = xmlhttp.responseText;

     // Si la respuesta no es correcta alerta.
     if(respuesta==='error'){alert('Intento de h4ck -__-'); return false;}
     // Si es correcta redirigir.
     else{document.location=respuesta; return true;}

  }}; xmlhttp.open("GET","reto.php?respuesta="+variable,true); xmlhttp.send();
};
</script>

<script type="text/javascript">
var ejemplo = "algo";
var ejemplo2 = document.Formulario.ejemplo2.value;

if (ejemplo2 != ejemplo){
  alert("incorrecto");
}else{
  alert ("correcto");
  cargarReto(ejemplo2);
}
</script>

// resto del código, formularios, bla bla bla...
</body>
</html>




O, tambien puedes ofuscar el document location. Por ejemplo:

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


<script type="text/javascript">
var ejemplo = "algo";
var ejemplo2 = "algo";

if (ejemplo2 != ejemplo){
  alert("incorrecto");
}else{
  alert ("correcto");
  var _0x1f7d=["\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6D"];document[_0x1f7d[0]]=_0x1f7d[1];
}
</script>

// resto del código, formularios, bla bla bla...
</body>
</html>


Si se cumple, hará document.location="http://www.google.com";
http://javascriptobfuscator.com/

Saludos

Probé las dos, y funcionan perfectamente, muchísimas gracias. Me gustó la de ajax, aunque sinceramente no entiendo el código, quiero decir, sé lo que hace y lo que tengo que modificar para que pase lo que yo quiero, pero no sé que es realmente lo que está pasando, así que leeré un poco sobre ajax hasta entenderlo.

Muchísimas gracias ^.^' y perdonad las molestias.


POR CIERTO, EDITO:


Me percaté que si fuerzas al condicional a poner una condición diferente, para pasar de nivel y burlar a la respuesta real, tira el error que pusiste en ajax diciendo intento de hack.

Muchas gracias por ese detalle, se agradece mucho =P
Mi algoritmo en PHP (estupideces y más).
Código (php) [Seleccionar]
while($Se_feliz){
  Piensa_un_OBJETIVO(); // Sin excusas!
  if($Tienes_un_objetivo){
    Suspira(); // Sé paciente.
    if($Consigues_el_objetivo){ echo "¡Felicidades #Aitor!";return;
      //RETURN; ¿O volvemos a empezar?
    }else{
      Inténtalo_de_nuevo();
    }
  }
}