Foros del Web » Programando para Internet » PHP »

duda TONTA con calculadora

Estas en el tema de duda TONTA con calculadora en el foro de PHP en Foros del Web. Cita: Hola rogertm hemos notado que no has compartido un mensaje con nosotros en varias semanas. Te invitamos a hacer una pregunta, dar una solución ...
  #1 (permalink)  
Antiguo 10/04/2008, 09:11
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
duda TONTA con calculadora

Cita:
Hola rogertm hemos notado que no has compartido un mensaje con nosotros en varias semanas. Te invitamos a hacer una pregunta, dar una solución o entablar una conversación con el resto de miembros de Foros del Web.
gracias FDW, es que estoy recuperandome de una cirugia en mis ojos x_O...

bueno, el caso es que estaba bien aburrido en casa y me puse a hacer una calculadora, enviando los datos mediante un form via post y choque con algo que me ha frenado y estoy seguro que la solucion es bien sencilla, pero que no doy con ella, aqui les dejo el codigo:
Código PHP:
<?php
if(isset($_POST['ej']) && $_POST['ej'] == 'Ejecutar'){
    if(!empty(
$_POST[a]) && !empty($_POST[b]) && !empty($_POST[opr])){
        
// verifico si los datos enviados son numericos (numeros)
        
if(ctype_digit($_POST[a]) && ctype_digit($_POST[b])){
            
$a $_POST[a];
            
$b $_POST[b];
            
$opr $_POST[opr];
            
$result '$a'.$opr.'$b';
            echo 
$result;
            
//var_dump($a,$opr,$b);
        
}else{
             echo 
"a y b tienen que ser numeros";
        }
    }else{
        echo 
"No puede enviar campos vacios";
    }
}
?>
<form name="mat" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="a" />
    <select name="opr">
        <option value="">Operador</option>
        <option value="+">Sumar</option>
        <option value="-">Restar</option>
        <option value="*">Multiplicar</option>
        <option value="/">Dividir</option>
    </select>
    <input type="text" name="b" />
    <input type="submit" name="ej" value="Ejecutar" />
</form>
el problema en si es, que el operador, me lo esta enviando como un string, ya he intentado de mil y una forma y no se como hacer para que me imprima el resultado de la cuanta matematica que envio por el formulario, porque lo que hace es imprimir lo que le mando, por ej: 2 + 2, el lugar de darme el resultado, que es 4

que estoy haciendo mal?
que no he hecho?

gracias de antemano....

PD: si no entro al foro a revisar en unos dias, es que no he tenido oportunidad de hacerlo, espero me disculpen, es que tengo que venir al trabajo a revisar y aun me quedan unos dias de reposo, ojala y cuando regrese tenga alguna solucion.

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 10/04/2008, 09:21
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Re: duda TONTA con calculadora

eval :)
...
  #3 (permalink)  
Antiguo 10/04/2008, 09:33
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: duda TONTA con calculadora

ño...! que rapido, jeje, lo repaso en casa y en cuanto pase por aqui comento, pero creo que si, que eval es la solucion.

gracias millllll
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 11/04/2008, 08:37
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: duda TONTA con calculadora

hola, pues nop, con eval no me funciona, sigue igual
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 11/04/2008, 09:07
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Re: duda TONTA con calculadora

Mm a mi me funciono una prueba que hice, pon el codigo que utilizas para ver que esta mal >_>
  #6 (permalink)  
Antiguo 11/04/2008, 09:17
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: duda TONTA con calculadora

Hola

Aquí te hice una función para resolver tu problema:

Código PHP:
function operar($a,$b,$opr) {
 
$a = (int) $a;
$b = (int) $b;
 
switch (
$opr) {
case 
"+":
$result $a+$b;
break;
case 
"-":
$result $a-$b;
break;
case 
"/":
$result $a/$b;
break;
case 
"*":
$result $a*$b;
break;
}
return 
$result;
}
 
// Implementacion
$a $_POST['a'];
$b $_POST['b'];
$opr $_POST['opr'];
echo 
operar($a,$b,$opr); 
Me comentas...

Saludos
  #7 (permalink)  
Antiguo 11/04/2008, 09:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: duda TONTA con calculadora

pienso que el eval funciona si entregas toda la expresion

$expr = "12 * 60";
print eval($expr);

si esto no funciona...

print eval('?>' . $expr); //fix

haber si asi sale algo...
  #8 (permalink)  
Antiguo 11/04/2008, 09:34
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: duda TONTA con calculadora

hola gentes, como siempre gracias por responder tan rapido, creo que con la funcion que propone usermax funcionara, la probare en casa y en cuanto tenga un tiempo paso por aqui y les comento....
darkasecas, no me di cuenta y olvide cargar con el codigo para aca, de todas maneras luego lo paso.

saludos y gracias milllll una vez mas

PD v2.0: si no entro al foro a revisar en unos dias, es que no he tenido oportunidad de hacerlo, espero me disculpen, es que tengo que venir al trabajo a revisar y aun me quedan unos dias de reposo, ojala y cuando regrese tenga alguna solucion.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #9 (permalink)  
Antiguo 15/04/2008, 09:19
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: duda TONTA con calculadora

hola nuevamente, para comenzar darkasecas, lo que hice con eval que no me salio fue esto:
Código PHP:
<?php
/*************/
eval("\$result = \"$result\";");
echo 
$result;
/*************/
fijandome por el ejemplo que hay en el manual, de todas formas me salio todo como quiero con la funcion que propuso usermax, aqui les dejo todo el codigo
Código PHP:
<?php
if(isset($_POST['ej']) && $_POST['ej'] == 'Ejecutar') {
    if(!empty(
$_POST['a']) && !empty($_POST['b']) && !empty($_POST['opr'])) {
        if(
ctype_digit($_POST['a']) && ctype_digit($_POST['b'])) {
            
$a $_POST['a'];
            
$b $_POST['b'];
            
$opr $_POST['opr'];
            function 
operar($a$b$opr) {
                
//$a = (int)$a;
                //$b = (int)$b;
                
switch($opr) {
                    case 
"+":
                        
$result $a $b;
                        break;
                    case 
"-":
                        
$result $a $b;
                        break;
                    case 
"*":
                        
$result $a $b;
                        break;
                    case 
"/":
                        
$result $a $b;
                        break;
                }
                return 
$result;
            }
            echo 
"$a $opr $b = "operar($a$b$opr);
        } else {
            echo 
"a y b tienen que ser numeros";
        }
    } else {
        echo 
"No puede enviar campos vacios";
    }
}
?>
<!-- el formulario sigue igual -->
muchas gracias reiteradas a todos, como estoy impartiendo un curso basico de php esto me sirve para ponerle un ejercicio a los alumnos que tengo, .

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 15/04/2008, 09:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: duda TONTA con calculadora

mira... yo hize esto pekeño

fijate en las comillas dobles, ke rodean los numeros...
inclusive evalua atraves de ellas.... pero, si encomillaramos los operadores, no!

Código PHP:
  eval('$n="2"*4+("260"/17)-rand();');
  print 
$n
weno, solo decia...
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 11:23.