PHP dentro de javascript.

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

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

#Aitor

¿Alguien podría decirme por qué no se ejecuta el código en el else? (Obviamente el documento es .php).

Código (javascript) [Seleccionar]

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

if (ejemplo2 != ejemplo){
alert("incorrecto");
}else{
alert ("correcto");
<?php header('Location: ejemplo4.php'); ?>
}
</script>

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


Esto, obviamente estaría con su formulario... el problema es que cuando metes la "contraseña" que sería "algo" (variable ejemplo). Sólo sale la alerta de correcto, mas no redirecciona a la siguiente página, sí bien sé, que poner php ahí, pudiendo poner un document.location es una bobada, pero no me interesa que vean a dónde va redireccionado, pero si el string que se necesita meter para ser redireccionado...

Realmente no sé si se puede hacer esto, porque como javascript viene del lado del cliente, y php del lado del servidor... en el caso de no poder, habría alguna forma que oculte ese document.location? Probé con encriptadores, pero no me convencen, y algunos ni funcionan.

¡Gracias!
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();
    }
  }
}

#!drvy

No es posible por que PHP se ejecuta mucho antes que el javascript o el html.

PD: Van a ver igualmente a donde va a redireccionar por que pueden obligar al javascript a cumplir la condición forzosamente.

Saludos 

Pablo Videla

Si haces todo ese script con un echo de php, te va  salir lo que quieres.

#Aitor

#3
Cita de: DonVidela en  1 Julio 2013, 17:52 PM
Si haces todo ese script con un echo de php, te va  salir lo que quieres.

¿Te refieres a esto? Si es así no funciona T_T


Código (php) [Seleccionar]

<?php
 
echo '<script type="text/javascript">
function Comprobar(){

var ejemplo = "algo";
var ejemplo2 = document.Formulario.ejemplo2.value;
 
if (ejemplo2 != ejemplo){
alert("incorrecto");
}else{
alert ("correcto");
<?php header(\'Location: ejemplo4.php\'); ?>

}}

</script>

<form name="Formulario" onsubmit="return false;">
<center><input name="ejemplo2"></center><br>
<center><input type="button" value="Confirmar" OnClick="Comprobar()"></center>
</form>
<br>';
?>


Gracias por la ayuda!
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();
    }
  }
}

#Aitor

Cita de: drvy | BSM en  1 Julio 2013, 17:46 PM
No es posible por que PHP se ejecuta mucho antes que el javascript o el html.

PD: Van a ver igualmente a donde va a redireccionar por que pueden obligar al javascript a cumplir la condición forzosamente.

Saludos 

No sé quién tiene razón, el chico de abajo dice que si se puede >_<'

Referente a la postdata, sé que pueden forzar a cumplir la condición, pero es más fácil ver la "contraseña" a usar inspector elemento e igualar por ejemplo 1==1, para que se cumpla la condicion y pasar por la redirección.

Gracias por la ayuda !
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();
    }
  }
}

#!drvy

Es que para esas cosas, mejor programarlo todo en PHP o en su caso usa AJAX para enviar los valores, comprobarlos y que te devuelva la url a la que tiene que ir.

CitarNo sé quién tiene razón, el chico de abajo dice que si se puede >_<'

Pruebalo =)

Saludos


Pablo Videla

Cita de: drvy | BSM en  1 Julio 2013, 18:47 PM
Es que para esas cosas, mejor programarlo todo en PHP o en su caso usa AJAX para enviar los valores, comprobarlos y que te devuelva la url a la que tiene que ir.

Pruebalo =)

Saludos



Tiene razón el amigo, yo me equivoque, en vez de usar header location, usa document.location, no es necesario php aca.
Código (html4strict) [Seleccionar]


<script type="text/javascript">
function Comprobar(){

var ejemplo = "algo";
var ejemplo2 = document.Formulario.ejemplo2.value;

if (ejemplo2 != ejemplo){
alert("incorrecto");
}else{
alert ("correcto");
document.location = "ejemplo.html";
}}
</script>

<form name="Formulario" onsubmit="return false;">
<center><input name="ejemplo2"></center><br>
<center><input type="button" value="Confirmar" OnClick="Comprobar()"></center>
</form>
<br>

#!drvy

@DonVidela, es que #Aitor intenta evitar document.location para no enseñar la url a la que va a redireccionar. Entonces yo creo que lo mejor que lo haga todo por parte de server..

Saludos

Pablo Videla

Cita de: drvy | BSM en  1 Julio 2013, 18:54 PM
@DonVidela, es que #Aitor intenta evitar document.location para no enseñar la url a la que va a redireccionar. Entonces yo creo que lo mejor que lo haga todo por parte de server..

Saludos

Bueno, en eso tienes razón, no se que tanto debería esconder xD

#Aitor

Cita de: drvy | BSM en  1 Julio 2013, 18:54 PM
@DonVidela, es que #Aitor intenta evitar document.location para no enseñar la url a la que va a redireccionar. Entonces yo creo que lo mejor que lo haga todo por parte de server..

Saludos

El problema es que, si lo hago todo por parte del servidor, no se ve el código fuente, y por ende no se sabrá que se debe ingresar. Mi intención es que no hagan trampas saltandose todo la estructura, poniendo en el navegador a dónde está redireccionando el document.location

Quizá debí haber aclarado que es para un Wargame... >_<
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();
    }
  }
}