3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Avisos

Retroceder   Foros del Web > Programación para sitios web > PHP
Respuesta
 
Herramientas Desplegado
Antiguo 10-abr-2008, 09:11   #1 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
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
rogertm.com - blog
  Responder Citando
Antiguo 10-abr-2008, 09:21   #2 (permalink)
darkasecas (Reg: marzo-2005)
 
1.367 Mensajes
Ubicación: SantaCata, NL, Mexico
darkasecas está desconectado
Re: duda TONTA con calculadora

eval :)
...
  Responder Citando
Antiguo 10-abr-2008, 09:33   #3 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
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
rogertm.com - blog
  Responder Citando
Antiguo 11-abr-2008, 08:37   #4 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
Re: duda TONTA con calculadora

hola, pues nop, con eval no me funciona, sigue igual
__________________
Friki y Blogger por Cuenta Propia
rogertm.com - blog
  Responder Citando
Antiguo 11-abr-2008, 09:07   #5 (permalink)
darkasecas (Reg: marzo-2005)
 
1.367 Mensajes
Ubicación: SantaCata, NL, Mexico
darkasecas está desconectado
Re: duda TONTA con calculadora

Mm a mi me funciono una prueba que hice, pon el codigo que utilizas para ver que esta mal >_>
  Responder Citando
Antiguo 11-abr-2008, 09:17   #6 (permalink)
(Desactivado)
 
530 Mensajes
Enviar un mensaje por MSN a usermax usermax está desconectado
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
  Responder Citando
Antiguo 11-abr-2008, 09:20   #7 (permalink)
Colaborador
pateketrueke (Reg: abril-2008)
 
10.243 Mensajes
Ubicación: Mexihco-Tenochtitlan
Enviar un mensaje por MSN a pateketrueke Enviar un mensaje por Skype™ a pateketrueke pateketrueke está desconectado
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...
  Responder Citando
Antiguo 11-abr-2008, 09:34   #8 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
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
rogertm.com - blog
  Responder Citando
Antiguo 15-abr-2008, 09:19   #9 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
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
rogertm.com - blog
  Responder Citando
Antiguo 15-abr-2008, 09:29   #10 (permalink)
Colaborador
pateketrueke (Reg: abril-2008)
 
10.243 Mensajes
Ubicación: Mexihco-Tenochtitlan
Enviar un mensaje por MSN a pateketrueke Enviar un mensaje por Skype™ a pateketrueke pateketrueke está desconectado
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...
  Responder Citando
Respuesta
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 08:36.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106