Foros del Web » Programando para Internet » PHP »

Duda con proyecto de PHP

Estas en el tema de Duda con proyecto de PHP en el foro de PHP en Foros del Web. Hola, llevo ya unos cuanto días con PHP (estoy empezando ) y ahora que estoy con el ejemplo de un proyecto que estoy viendo por ...
  #1 (permalink)  
Antiguo 13/08/2012, 09:56
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Duda con proyecto de PHP

Hola, llevo ya unos cuanto días con PHP (estoy empezando ) y ahora que estoy con el ejemplo de un proyecto que estoy viendo por internet, al abrirlo en el explorador resulta que no me da el resultado final. Que es lo que he hecho mal si lo he copiado del mismo ejemplo?

Este es el código:

<HTML>
<HEAD>
<TITLE>Proyecto Página Dinámica</TITLE>
</HEAD>
<BODY>
<FORM METHOD = "POST" ACTION = "proyecto_1.php">
<FONT FACE = "Verdana" COLOR = "#1200FF">
<CENTER><B><H2>Sistema de Cálculo de Impuesto de Producto</H2></B></CENTER>
</FONT>
Por favor digite el precio del producto:
<INPUT TYPE = TEXT NAME = "precio_original" MAXLENGHT = 5 SIZE = 5>
<P>
<INPUT TYPE = "Submit" VALUE = "Calcular Precio">
<?php
function calculo($precio_original){
return $precio_final = ($precio_original * 0.13) + $precio_original;
}
echo "<BR><H2><CENTER>El precio final es: ".calculo($precio_original)."</CENTER></H2>";
?>
</BODY>
</HTML>

Gracias
  #2 (permalink)  
Antiguo 13/08/2012, 10:02
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Duda con proyecto de PHP

¿Tienes montado un servidor PHP? ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 13/08/2012, 10:05
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con proyecto de PHP

Tengo puesto el Wamp5
  #4 (permalink)  
Antiguo 13/08/2012, 10:10
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Duda con proyecto de PHP

Pues, entonces, solo te "falla" una cosita...

Cambia la funcion
Código PHP:
function calculo($precio_original){
return 
$precio_final = ($precio_original 0.13) + $precio_original;

Por esto:
Código PHP:
function calculo($precio_original){
if(
$precio_original) return $precio_final = ($precio_original 0.13) + $precio_original;
else return 
"No se ha introcudico un precio_original";

Seguramente estés siguiendo un tutorial desactualizado... creo q no está recibiendo nada la función!
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 13/08/2012, 10:12
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con proyecto de PHP

Cita:
Iniciado por Eleazan Ver Mensaje
Seguramente estés siguiendo un tutorial desactualizado... creo q no está recibiendo nada la función!
Pues puede ser, es de la pagina aulafacil... Voy a probar a ver...

Gracias!!!
  #6 (permalink)  
Antiguo 13/08/2012, 10:26
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con proyecto de PHP

Acabo de probar el cambio y cuando introduzco un precio al darle al botón me sale esto :



Aparte que la frase de "No se ha introducido un precio original" me sale ya desde un principio...
  #7 (permalink)  
Antiguo 13/08/2012, 10:36
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Duda con proyecto de PHP

Vale, te explico por partes....


Antes, las variables "http" (formulario POST y GET), eran globales, asiq podías acceder directamente a ellas...

Por seguridad, ahora ya no. Para acceder a una variable POST / GET debes hacerlo a través de un array que se te proporciona para ello.

En el caso de POST, es $_POST, y en el de GET, es $_GET.

Al array se accede así, por ejemplo

Código PHP:

$valor 
$_POST['nombre_de_la_variable']; 

En tu caso, deberías hace esto:

Código PHP:
echo "<BR><H2><CENTER>El precio final es: ".calculo($_POST['precio_original'])."</CENTER></H2>"

Con esto, subsanas la parte de cuando mandas un input (precio_original) y no lo recibes! :)

------------
Y ahora, queda el problema de que sale "antes" de que introduzcas nada...

La cosa es q tienes el formulario y el php en la misma página. Cada vez que entrs en la pagina, ejecutas la función. Dicha funcion, recibe un parametro post que la primera vez NO está enviado.

Para solucionar esto, puedes usar la función isset. Con esta, puedes decidir "ejecutar la funcion pq has enviado la variable" o no hacerlo. El uso podría ser algo así:

Código PHP:
if(isset($_POST['precio_original'])) {
    echo 
"<BR><H2><CENTER>El precio final es: ".calculo($precio_original)."</CENTER></H2>";
}
else {
    echo 
'<br><h2><center>Introduce un precio</center></h2>';

Por ejemplo!

Espero haberme explicado!
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 13/08/2012, 10:49
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con proyecto de PHP

Cita:
Iniciado por Eleazan Ver Mensaje
Vale, te explico por partes....


Antes, las variables "http" (formulario POST y GET), eran globales, asiq podías acceder directamente a ellas...

Por seguridad, ahora ya no. Para acceder a una variable POST / GET debes hacerlo a través de un array que se te proporciona para ello.

En el caso de POST, es $_POST, y en el de GET, es $_GET.

Al array se accede así, por ejemplo

Código PHP:

$valor 
$_POST['nombre_de_la_variable']; 

En tu caso, deberías hace esto:

Código PHP:
echo "<BR><H2><CENTER>El precio final es: ".calculo($_POST['precio_original'])."</CENTER></H2>"

Con esto, subsanas la parte de cuando mandas un input (precio_original) y no lo recibes! :)
Ya me funciona, gracias!!! Pero no entiendo la segunda parte, sorry
  #9 (permalink)  
Antiguo 13/08/2012, 10:56
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Duda con proyecto de PHP

Cita:
Iniciado por Bathory666 Ver Mensaje
Ya me funciona, gracias!!! Pero no entiendo la segunda parte, sorry
Es sencillo...


esto es lo q hace tu código:

· Muestra parte pagina html
· Calcula un precio segun una variable
· Termina la pagina

El problema es que esa variable, la primera vez, NO existe (puesto q no la has mandado!). Para ello, hay dos soluciones posibles

1) Darle un valor predeterminado
2) Calcular el precio SOLO si se ha mandado la variable.

Yo me he decantado por la segunda opción, pues es la q creo q más te servirá al principio.

Gracias a isset podemos saber si una variable existe, o no.

Por eso puse esto:
Código PHP:

if( isset( $_POST['precio_original'] ) ) {
    
//Si existe la variable, se ejecuta este trozo
    
echo "loqsea".calculamos_precio($_POST['precio_original'])."jaja";
}
else {
    
//Si no existe la variable, como actuamos?
    
echo Introduce un numero

Es algo básico (condicionales). Así, tu código pasa a hacer esto:

· Muestra parte pagina html
· Si existe la variable, calcula un precio, sino, te pide q introduzcas un numero
· Termina la pagina

No sé si así lo entiendes mejor
__________________
>> Eleazan's Source
>> @Eleazan
  #10 (permalink)  
Antiguo 13/08/2012, 11:02
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con proyecto de PHP

Sí, gracias!!!

Etiquetas: html, proyecto
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 23:53.