Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Que está fallando?

Estas en el tema de ¿Que está fallando? en el foro de PHP en Foros del Web. Buenas a todos los foreros, Estoy empezando con PHP y lo primero que he querido hacer es un pequeño formulario muy, muy senzillo. Quisiera saber ...
  #1 (permalink)  
Antiguo 16/01/2013, 04:09
Avatar de cossmos_muixi  
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta ¿Que está fallando?



Buenas a todos los foreros,

Estoy empezando con PHP y lo primero que he querido hacer es un pequeño formulario muy, muy senzillo.
Quisiera saber si alguien puede decirme que falla, porque no me presenta lo que le pido:
Básicamente lo que quiero hacer con esto es que me dé el número de libros pedidos, el sub total sin impuestos y luego el total con impuestos.

/*He puesto comentarios para que podais ver lo que he ido viendo/haciendo*/



Código HTML:
<body>
<form method=post action="formulario.php">
<table width="200" border="1" cellspacing="2">
  <tr>
    <td width="122" align="center" valign="middle">PRODUCTOS</td>
    <td width="62" align="center" valign="middle">Cantidad</td>
  </tr>
</table>

<table width="200" border="1" cellspacing="2">
  <tr>
    <td width="122" align="center" valign="middle">
    	Producto A 20€
    </td>
    <td width="62" align="center" valign="middle">
    	<input name="productoa" type="text" size=5 maxlength=5  />
    </td>
  </tr>
  <tr>
    <td align="center" valign="middle">
    	Producto B 15€
    </td>
    <td align="center" valign="middle">
    	<input name="productob" type="text" size=5 maxlength=5  />
    </td>
  </tr>
  <tr>
    <td align="center" valign="middle">
    	Producto C 10€
    </td>
    <td align="center" valign="middle">
    	<input name="productoc" type="text" size=5 maxlength=5  />
    </td>
  </tr>
</table>
<table width="200" border="1" cellspacing="2">
  <tr>
    <td  align="center" valign="middle"><input type="submit" value="Enviar pedido" /></td>
  </tr>
</table>

  
</form>
</body> 
[URL="http://compraslider.com/cursophp/formulario.html"]Ir al formulario HTML:[/URL]

[URL="http://compraslider.com/cursophp/formulario.html"][IMG]http://compraslider.com/cursophp/img/Formulario-HTML.PNG[/IMG][/URL]

-------------------------------------------------------------
.PHP adjunto en el HTML
Código PHP:
<?php
/* También he probado abrir el código con el método corto (<? ... ?>) y nada */

    
echo "<p>Pedido presentado el ";
    
    
//Fecha
    
echo date("j F, "); echo "a las: "; echo date("H:i");
    echo 
"<br>";
    echo 
"<p>Su pedido es el siguiente:";
    echo 
"<br><br>";
    
    
//código corto ( NO FUNCIONA)
    
echo $productoa." A<br>";
    echo 
$productob." B<br>";
    echo 
$productoc." C<br><br>";
    
    
/*
    //Código largo ( SI FUNCIONA)
    echo $HTTP_POST_VARS ["productoa"]." Unidad/es del Producto A<br>";
    echo $HTTP_POST_VARS ["productob"]." Unidad/es del Producto B<br>";
    echo $HTTP_POST_VARS ["productoc"]." Unidad/es del Producto C<br>";
    */
    
    
$totalproductos0;
    
$totalprecio0.00;
    
    
//Precios de los libros en €
    
define("PRECIOA"20);
    
define("PRECIOB"15);
    
define("PRECIOC"10);
    
    
    
$totalproductos=$productoa+$productob+$productoc;
    
// no me suma nada, se queda a 0
    
    
$totalprecio$productoa PRECIOA
                
$productob PRECIOB
                
$productoc PRECIOC;
                               
/* 
                              ¿Para que coja los " define " en teoria
                              no se tiene que poner ningun ($),
                              simplemente en mayúsculas no?
                               */
                    
    
    //Subtotal pedido
    
echo "<br>\n";
    echo 
"Artículos pedidos: ".$totalproductos."<br>";
    echo 
"Subtotal: €";
    echo 
number_format($totalprecio2);
    echo 
"<br>";
    
$taxrate=0.10//taxas al 10%
    
$totalprecio=$totalprecio*(1+$taxrate);
    
$totalprecio=number_format($totalprecio2);
    echo 
"Total incluyendo precios:  €".$totalprecio."<br>";    
    
?>
Muchísimas gracias!
  #2 (permalink)  
Antiguo 16/01/2013, 04:44
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: ¿Que está fallando?

Como bien dicesese código no te fuciona, esas variables que intentas mostrar no existen.
Tus datos se envían a travé del formulario, en este caso por el método POST. Por ese motivo al hacer :
echo $HTTP_POST_VARS ["productoa"];
si muestra contenido, $HTTP_POST_VARS es una variable superglobal que contiene los datos que envíes a través de POST en forma de array.

Hay un problema y es que $HTTP_POST_VARS está obsoleto, es su lugar debes utilizar: $_POST.

Así que en resumen, tienes dos opciones:
Código PHP:
    //Opción A
    
echo $_POST["productoa"]." Unidad/es del Producto A<br>";
    echo 
$_POST["productob"]." Unidad/es del Producto B<br>";
    echo 
$_POST["productoc"]." Unidad/es del Producto C<br>"

    
//Opción B
    
$productoa $_POST["productoa"];
    
$productob $_POST["productob"];
    
$productoc $_POST["productoc"];
    echo 
$productoa." A<br>";
    echo 
$productob." B<br>";
    echo 
$productoc." C<br><br>"
  #3 (permalink)  
Antiguo 17/01/2013, 05:17
Avatar de cossmos_muixi  
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo Respuesta: ¿Que está fallando?

Cita:
Iniciado por zalito12 Ver Mensaje
Como bien dicesese código no te fuciona, esas variables que intentas mostrar no existen.
Tus datos se envían a travé del formulario, en este caso por el método POST. Por ese motivo al hacer :
echo $HTTP_POST_VARS ["productoa"];
si muestra contenido, $HTTP_POST_VARS es una variable superglobal que contiene los datos que envíes a través de POST en forma de array.

Hay un problema y es que $HTTP_POST_VARS está obsoleto, es su lugar debes utilizar: $_POST.

Así que en resumen, tienes dos opciones:
Código PHP:
    //Opción A
    
echo $_POST["productoa"]." Unidad/es del Producto A<br>";
    echo 
$_POST["productob"]." Unidad/es del Producto B<br>";
    echo 
$_POST["productoc"]." Unidad/es del Producto C<br>"

    
//Opción B
    
$productoa $_POST["productoa"];
    
$productob $_POST["productob"];
    
$productoc $_POST["productoc"];
    echo 
$productoa." A<br>";
    echo 
$productob." B<br>";
    echo 
$productoc." C<br><br>"
Funciona a la perfección! Muchísimas gracias!

Etiquetas: escritura, formulario
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 04:53.