Foros del Web » Programando para Internet » PHP »

Necesito AYUDA ... es fácil

Estas en el tema de Necesito AYUDA ... es fácil en el foro de PHP en Foros del Web. Hola, Estoy haciendo un curso de PHP, pero me han puesto un ejercicio en qe necesito utilizar formularios de una forma recurrente. EL primer formulario ...
  #1 (permalink)  
Antiguo 19/12/2004, 12:47
Avatar de PHPmaruja  
Fecha de Ingreso: diciembre-2004
Ubicación: Barcelona /España
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
Necesito AYUDA ... es fácil

Hola,

Estoy haciendo un curso de PHP, pero me han puesto un ejercicio en qe 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.

Tal vez debería pereguntarlo en el foro de PHP

Alguien puede ayudarme

Gemma
  #2 (permalink)  
Antiguo 20/12/2004, 01:26
Avatar de kemie  
Fecha de Ingreso: junio-2003
Ubicación: estocolmo<-->mexico
Mensajes: 1.627
Antigüedad: 20 años, 10 meses
Puntos: 1
si, creo que en el foro de php te pueden ayudar mejor
__________________
::::::::::::::::::::::::::::: WebHostNinja | diseñorama.com::::::::::::::::::::::::::::::
  #3 (permalink)  
Antiguo 20/12/2004, 03:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Tema trasladado al foro de PHP desde (x)html
  #4 (permalink)  
Antiguo 20/12/2004, 06:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) .. mas que bulcle lo que se trata es de "al terminar el proceso" que haces en el script que apuntas en el action del formulario (sea si mismo u otro script) . .redireccionas a tu formulario (página/script que lo contenga) con:

header ("Location: formulario.tal");
exit;

Tu rutina de creación y validación de valores de esas cookies ya se encargará de verficiar cuando se ha de "salir" del proceso o terminarlo.

2)

Con exit; .. die(); .. o redireccionando a otro sitio . por ejemplo a tu formulario (ya sea que esté en el mismo script o en otro) con:

header("Location: nose.php");
exit;

Un saludo,
  #5 (permalink)  
Antiguo 20/12/2004, 10:18
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
No habia más respuestas a este tema??... juraria que leí por ahí la propuesta de hacerlo en una sola pag... Pués bien, no soy experto, ando en proceso de aprendizaje y me pareció buen ejercicio. He aquí mi propuesta

Código PHP:
<?php
$intentos_maximos 
5// Definimos el maximo de intentos...

// Si no esta definina $_POST, lo tomamos como juego nuevo
if(!isset($_POST['adivina'])) {
 
setcookie('numero'rand(0,100), time()+600);
 
setcookie('intentos''1'time()+600);
// Iniciamos con un intento porque desde el inicio se pide introducir el número.

 
echo "<center><b>Bienvenido a este sencillo juego</b><br> El objetivo es adivinar un número dado al azar en un rango del 0 al 100 en menos de 5 intentos<br>Para ello se te darán una serie de pistas<br><b>S U E R T E ! ! </b>"//babosadas, lo sé...
// Ni modos.. a imprimir el form...
?>

<form name="adivina" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <p>T&uacute; n&uacute;mero: 
     <input type="text" name="adivina">
</p>
   <p>
     <input type="submit" value="SUERTE!!!">
</p>
</form>
</center>

<?php 
} else {
// Estamos en juego... empezamos a sumar intentos y checar oportunidades...
 
setcookie('intentos'$_COOKIE['intentos']+1time()+600);

 if (
$_COOKIE['intentos'] >= $intentos_maximos) {
// Si revazó el número de oportunidades, salimos...
  
echo "<br><b>Ups! No lograste adivinar el número secreto (".$_COOKIE['numero'].").</b><br>No te des por vencido, vuelve a intentarlo!!!. Solo da click <a href=\"".$_SERVER['PHP_SELF']."\">aquí</a></center>";
 } else {

// Inicio la busqueda de si se encontró el número deseado.
// Si se encontró.. finalizamos... 
  
if ($_POST['adivina'] == $_COOKIE['numero']) {
   echo 
"<br><b>FELICIDADES!!!</b><br>Haz adivinado el número... :-D . Ojalá y te haya gustado este pequeño juego<br><br>Para volver a jugar solo da click <a href=\"".$_SERVER['PHP_SELF']."\">aquí</a></center>"// Más babosadas... repito, lo sé.

  
} else {
// Si aún no es igual... imprimimos los diferentes casos como ayuda... y después el form
   
$restan $_COOKIE['intentos'];
   if (
$_POST['adivina'] < $_COOKIE['numero']) {
    echo 
"</center><br>Tu número: ".$_POST['adivina']."<br><i><b>El número buscado es MAYOR</i></b><br>Te quedan ".$restan." intentos.";
   } elseif (
$_POST['adivina'] > $_COOKIE['numero']) {
    echo 
"</center><br>Tu número: ".$_POST['adivina']."<br><i><b>El número buscado es MENOR</i></b><br>Te quedan ".$restan." intentos.";
   } else {
    echo 
"<br><b>ERROR!: NO DEBERIA EXISTIR ESTA CONDICIÓN</center></b>";
   }

// Inicia el form
?>
<center>
<form name="adivina" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <p>T&uacute; n&uacute;mero: 
     <input type="text" name="adivina">
</p>
   <p>
     <input type="submit" value="ADIVINA!!!">
</p>
</form>
</center>
<?php
// cerramos...
  
}
 }
}
?>
puf! que lio... haber qué arreglos me puedes segerir... Se que está lioso "la presentación" del código... pero fue de a rapido... Algo que no me gusta es el hecho de poner 2 veces en el código el form: 1 para la primera vez y otra para cuando se sigue jugando... no hayé una mejor forma... quizá con includes pero se trata de que quede en una sola pag...

Bueno.. lo que hace el ocio...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 20/12/2004, 11:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
jejeje.. 3 correcciones:
1.- ERROR GRAVE: Primero checo el número de intentos que se han realizado.. antes de verificar si se adivinó el número... esto proboca que, sí en el último intento se adivina el número... no lo valdría...
2.- Si defino al inicio $intentos_maximos ¿Por qué no le saco más probecho?? Desde el inicio al indicar las oportuninades que se consiguen... y en el ir restando los chances para posteriormente mostrarlas... ambos utilizo el "5" directo... cuando lo correcto seria utilizar el $intentos_maximos
3.- despues de checar que el número no sea el mismo.. veo dos condiciones para mandar a imprimir.. si es mayor ó menor... para ello primero veo la condición y luego imprimo, esto me provoca escribir 2 veces casi el mismo código... hubiese sido mejor; primero escribir el código a imprimir igual "echo... <i><b> El número buscado es "; >> y aquí hacer condicinal para ver e imprimir si es mayor ó menor << y continuar... Se ahorra código...

Definitivamente no la armo en esto...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 20/12/2004, 11:18
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102

Código PHP:
<html>
<head>
<title></title>
</head>
<body>
<?php
$intentos_maximos 
5// Definimos el maximo de intentos...
// Si no esta definina $_POST, lo tomamos como juego nuevo
if(!isset($_POST['adivina'])) {
    
setcookie('numero'rand(0,100), time()+600); // Creamos el número a adivinar. 10 minutos de vida a la cookie.
    
setcookie('intentos''1'time()+600); // Iniciamos con un intento porque desde el inicio se pide introducir el número.
    
echo "<center><b>Bienvenido a este sencillo juego</b><br> El objetivo es adivinar un número dado al azar en un rango del 0 al 100 en menos de ".$intentos_maximos." intentos<br>Para ello se te darán una serie de pistas<br><b>S U E R T E ! ! </b>"//babosadas, lo sé...
// Ni modos.. a imprimir el form...
?>
<form name="adivina" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <p>T&uacute; n&uacute;mero: 
     <input type="text" name="adivina">
</p>
   <p>
     <input type="submit" value="SUERTE!!!">
</p>
</form>
</center>
<?php    
} else {
// Estamos en juego... empezamos a sumar intentos y checar oportunidades...
    
setcookie('intentos'$_COOKIE['intentos']+1time()+600); // Tomo el valor que tenia y la incremento en una unidad
// Inicio la busqueda de si se encontró el número deseado.
// Si se encontró.. finalizamos...    
    
if ($_POST['adivina'] == $_COOKIE['numero']) {
        echo 
"<br><b>FELICIDADES!!!</b><br>Haz adivinado el número... :-D . Ojalá y te haya gustado este pequeño juego<br><br>Para volver a jugar solo da click <a href=\"".$_SERVER['PHP_SELF']."\">aquí</a></center>"// Más babosadas... repito, lo sé.
    
} else {
// Si aún no es igual... checamos que no se hayan acabado las oportunidades
        
if ($_COOKIE['intentos'] >= $intentos_maximos) {
// Si revazó el número de oportunidades, salimos...
            
echo "<br><b>Ups! No lograste adivinar el número secreto (".$_COOKIE['numero'].").</b><br>No te des por vencido, vuelve a intentarlo!!!. Solo da click <a href=\"".$_SERVER['PHP_SELF']."\">aquí</a></center>";
        } else {
            
$restan $intentos_maximos $_COOKIE['intentos'];
            echo 
"</center><br>Tu número: ".$_POST['adivina']."<br><i><b>El número buscado es ";
            if (
$_POST['adivina'] < $_COOKIE['numero']) {
            echo 
"MAYOR";
            } elseif (
$_POST['adivina'] > $_COOKIE['numero']) {
                echo 
"MENOR";
            }
            echo 
"</i></b><br>Te quedan ".$restan." intentos.";
// Inicia el form
?>
<center>
<form name="adivina" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <p>T&uacute; n&uacute;mero: 
     <input type="text" name="adivina">
</p>
   <p>
     <input type="submit" value="ADIVINA!!!">
</p>
</form>
</center>
<?php
// cerramos...
        
}
    }
}
?>
</body>
</html>
jejejeje.. soy el único que se obsesiona así...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 20/12/2004, 17:10
Avatar de PHPmaruja  
Fecha de Ingreso: diciembre-2004
Ubicación: Barcelona /España
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo G R A C I A S

Hola

G R A C I A S tanto a cluster como a jam1138 (tendré que retocar el programa.... soy una principiante recuerdas..).
Ha quedado SUPER...

Tengo alguna pregunta más... ... pero ya escribiré
Espero poder ayudaros yo algun día (aunque sea con una receta de pastel de manzana jejeje)

Un saludo.

Gemma
  #9 (permalink)  
Antiguo 21/12/2004, 00:06
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por PHPmaruja
Espero poder ayudaros yo algun día (aunque sea con una receta de pastel de manzana jejeje)
... citando a Homero Simpson : "mmmmm... manzana ".
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 13:54.