Foros del Web » Programando para Internet » PHP »

Actividad de mates: sumar, envio de variables

Estas en el tema de Actividad de mates: sumar, envio de variables en el foro de PHP en Foros del Web. Hola, acabo de empezar a programar en php, y para practicar los conceptos aprendidos, estoy haciendo una actividad de matematicas, con rand genero 2 numeros ...
  #1 (permalink)  
Antiguo 06/09/2008, 09:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Actividad de mates: sumar, envio de variables

Hola, acabo de empezar a programar en php, y para practicar los conceptos aprendidos, estoy haciendo una actividad de matematicas, con rand genero 2 numeros aleatorios y los guardo en la variable num1 y en la variable num2. Después genero una variable que me sume estos dos para verificar posteriormente lo introducido por un usuario.

Pongo el script para que lo entendais mejor:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title>sin título</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="generator" content="Geany 0.13" />
</head>

<body>
    <h1>Mates</h1>
    <h2>Sumes</h2>
    <?php
    
if(!isset($_POST[respalu]))
    {
        echo 
"isset";
        
$num1=rand(0,100);
        
$num2=rand(0,10);
        
$opr=$num1 $num2;
        echo 
"suma: $num1 + $num2";
        echo 
"$opr"
    
?>
    <form action="matesuma.php" method="post">
    <input type="text" name="respalu">
    <input type="submit" value="verifica">
    </form>
    <?php
}
else {
    echo 
"$opr";
    if(
$_POST[respalu]==$opr) {
        echo 
"correcte";
    }
    else{
        echo 
"incorrecte";
        echo 
"resposta correcte: $opr";}
    }
    echo 
"$opr"
    
?>
</body>
</html>
El problema viene que al enviar la pagina, con el input submit. Cuando voy a coger la variable definida como $opr, no la encuentra, ya que al volver a ejecutarse el script, no se genera, se podria enviar tambien a traves de post?

Gracias, DPini
  #2 (permalink)  
Antiguo 06/09/2008, 10:01
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
estas retomando el valor de esta forma
Cita:
$valor=$_POST['respalu'];
??

Si envias el form, solo podras retomar las que tengas en el form, si deseas ese valor colocalo en un input hidden en el form y lo podras retomar en la siguienta pagina!
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por GatorV; 06/09/2008 a las 10:20
  #3 (permalink)  
Antiguo 06/09/2008, 10:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Actividad de mates: sumar, envio de variables

Si, el valor del formulario lo puedo coger, lo que no puedo coger es la variable de php $opr, si te das cuenta, la defino, pero después no se envia con el formulario, esa variable la quiero para comprobar si lo que alguien ha puesto en el input text es correcto

me podrias poner un ejemplo?, nunca he usado inputs hidden, como puedo poner solo la variable de php? no quiero que ese alguien mirando el codigo fuente pueda saber el resultado.
  #4 (permalink)  
Antiguo 06/09/2008, 10:06
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Actividad de mates: sumar, envio de variables

pon esta variable en un input hidden, asi quedara oculto y podras enviar el valor!

las variables q defines en un php no se envian por el post de un form, solo las que estan definidas en el value de un campo.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 06/09/2008, 10:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Actividad de mates: sumar, envio de variables

Asi no me funciona:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title>sin título</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="generator" content="Geany 0.13" />
</head>

<body>
    <h1>Mates</h1>
    <h2>Sumes</h2>
    <?php
    
if(!isset($_POST[respalu]))
    {
        
$num1=rand(0,100);
        
$num2=rand(0,10);
        
$opr=$num1 $num2;
        echo 
"suma: $num1 + $num2";
        echo 
"<br />$opr" //para no ir teniendo que sumar mientras pruebo
    
?>
    <form action="matesuma.php" method="post">
    <input type="text" name="respalu">
    <input type="hidden" name="opr" value="$opr">
    <input type="submit" value="verifica">
    </form>
    <?php
}
else {
    echo 
"$opr";
    if(
$_POST[respalu]==$opr) {
        echo 
"correcte";
    }
    else{
        echo 
"incorrecte";
        echo 
"resposta correcte: $opr";}
    }
    echo 
"$opr"
    
?>
</body>
</html>
  #6 (permalink)  
Antiguo 06/09/2008, 10:36
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Actividad de mates: sumar, envio de variables

Cita:
<input type="hidden" name="opr" value="<?php echo $opr; ?>">
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 06/09/2008, 11:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Actividad de mates: sumar, envio de variables

Gracias ya esta resuelto :)

Ahora entiendo el monton de hiddens que hay en algunas paginas PHP :P

Sabeis de algun cheatsheet en español?
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 19:27.