Foros del Web » Programando para Internet » PHP »

PHP Y el manejo de iframes o forms

Estas en el tema de PHP Y el manejo de iframes o forms en el foro de PHP en Foros del Web. Hola, Estoy haciendo un curso de PHP, pero me han puesto un ejercicio en que necesito utilizar formularios de una forma recurrente. EL primer formulario ...
  #1 (permalink)  
Antiguo 19/12/2004, 16:01
Avatar de PHPmaruja  
Fecha de Ingreso: diciembre-2004
Ubicación: Barcelona /España
Mensajes: 35
Antigüedad: 19 años, 4 meses
Puntos: 0
PHP Y el manejo de iframes o forms

Hola,

Estoy haciendo un curso de PHP, pero me han puesto un ejercicio en que necesito utilizar formularios de una forma recurrente.

EL primer formulario es una tonteria dice asi:

<?
$HTTP_COOKIE_VARS["Mensaje"];
$numero = rand(0,100);
$Veces = 1;
setcookie("Veces","$Veces");
setcookie("NumeroJuego","$numero");
?>

<html>
<head>
<title> Adivinar un numero </title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
</head>
<body>
<form action="ej18_2php_.php" method="POST">
Entrar numero : <input type="text" name="numero" />
<BR>
<input type="submit" value= "jugar">
</form>
</body>
</html>

Osea que pide un numero y compara con el que el PC ha elegido, luego pasa al formulario 2 que dice:
$HTTP_COOKIE_VARS["NumeroJuego"];
$HTTP_COOKIE_VARS["Veces"];
$Veces= $Veces + 1;
setcookie("Veces","$Veces");

if ($numero == $NumeroJuego){
$mensaje = "Lo has adivinado";
}else if ($numero < $NumeroJuego){
$mensaje = "Es un numero mayor";
} else $mensaje = "Es un numero menor";

echo $mensaje ;
?>
<html>
<body>
<form action="ej18_2php.php" method="POST">
Entrar numero : <input type="text" name="numero" />
<BR>
<input type="submit" value= "jugar">
</form>
</body>
</html>

El problema se me presenta pq debo pedir 5 veces como maximo el num. pero
si lo ha adivinado antes debería cargar el siguiente form (3er form.)
<?
$POST["numero"];
$HTTP_COOKIE_VARS["NumeroJuego"];

if ($numero == $NumeroJuego){
$mensaje = "Lo has adivinado";
}else
$mensaje = " Ya lo has intentado 5 veces, el número era el .$numero";

echo $mensaje ;
?>


No se si me he explicado pero luego de todo este rollo
lo que necesito saber es
1) COMO HAGO UN BUCLE CON EL ej18_2php.php (2 formulario)
2) COMO SALGO DE
if ($numero == $NumeroJuego){
$mensaje = "Lo has adivinado";
HACIA EL 3er form.


Alguien puede ayudarme

Gemma
  #2 (permalink)  
Antiguo 19/12/2004, 20:18
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
No tienes que hacer un bucle, solo tienes que coparar la variable $veces de la cookie con 5 con un if...
Y para redireccionar a otro formulario puedes usar la funcion header() de esta manera:

header("Location: tu_formulario.php");
exit;
__________________
JmN
  #3 (permalink)  
Antiguo 19/12/2004, 20:23
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
Otra cosa.......

un form (o formulario HTML) no tiene nada que ver con un iframe (escribo esto por el titulo del thread...)
__________________
JmN
  #4 (permalink)  
Antiguo 19/12/2004, 20:35
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
no es necesario usar mas de una pagina. Puedes hacerlo asi:

Código PHP:
<?php
define
("INTENTOS_MAXIMOS",5); //definimos el numero maximo de intentos

//a la variable cookie numero, si existe, le asignamos el mismo valor
//si no existe le asignamos el resultado de rand()
$_COOKIE['numero'] = isset($_COOKIE['numero']) ? $_COOKIE['numero'] : rand(0,100);
if ( !isset(
$_COOKIE['veces']) ) { //si no existe la variable cookie veces, entonces la creamos
    
$_COOKIE['veces'] = 1;
} else { 
//si ya existe entonces la incrementamos para saber cuantas veces ha intentado el usuario
    
$_COOKIE['veces']++;
}

//asumimos que aun no se excede y que aun no adivina el numero
$excedio false;
$adivino false;
//y comrpobamos si ya se excedio
if ( $_COOKIE['veces'] > INTENTOS_MAXIMOS ) {
    
$numero            $_COOKIE['numero']; //capturamos el verdadero numero
    
$se_ha_excedido    true//informamos que ya se excedio
    
unset($_COOKIE['veces']);
    unset(
$_COOKIE['numero']);
} else { 
//de otra forma verificamos si el numero que introdujo es correcto
    
if ( isset($_POST['numero']) && $_POST['numero'] == $_COOKIE['numero'] ) {
        
$adivino true;
    } else {
        
$adivino false;
    }
}
?>
<html>
<head>
<title> Adivinar un numero </title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
</head>
<body>

<?php
//si se excedio entonces mostramos mensaje de finalizacion
if ( $se_ha_excedido ) {
    echo 
"Lo sentimos, has excedido las 5 oportunidades, el numero correcto es: {$numero} <br />"
    echo 
"Inicia de nuevo haciendo <a href='juego.php'>click aqui</a>";
} elseif ( 
$adivino ) { //de otra forma vemos si ya adivino
    
echo "Adivinaste el numero, felicidades.<br />";
    echo 
"Inicia de nuevo haciendo <a href='juego.php'>click aqui</a>";
} else {
?>
<form action="juego.php" method="POST">
Entrar numero : <input type="text" name="numero" />
<br />
<input type="submit" value= "jugar">
</form>
<?php //cerramos el else ?>
</body>
</html>
saludos
  #5 (permalink)  
Antiguo 22/12/2004, 16:43
Avatar de PHPmaruja  
Fecha de Ingreso: diciembre-2004
Ubicación: Barcelona /España
Mensajes: 35
Antigüedad: 19 años, 4 meses
Puntos: 0
De acuerdo Ok Gracias

Gracias por vuestra ayuda.

Me quedo claro del todo.

GEmma
__________________
Mambo, Joomla y CHA CHA CHA
Maruja de dia - webmaster de noche
http://www.PHPmaruja.es/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:07.