Inicio > PHP > edysoftware > validar campos numericos en formulario php

validar campos numericos en formulario php

Experto:
Usuario:
Fecha: 04/08/2005
Valoración: (4,00 sobre 5) Categoría: PHP
03/08/2005
bellotafanny, usuario preguntando en PHP
Usuario
Hola, estoy empezando a aprender esto de php, estoy haciendo una calculadora de viaje, necesito hacer que php verifique que dos campos hayan sido escritos con numeros y si no regresar a la misma pagina mostrando un texto oculto., este sería el codigo del formulario en la pagina precio.php:

<p>Todos los campos son requeridos (entre 0 si es necesario).</p>
<?
//valor oculto
if ($_GET['error'] == "notnumeric")
{
echo "<p>*** Error! Uno o mas campos estan en blanco o no contienen numeros.</p>";
}
?>

<form name="frm_precio" id="frm_precio" method="post" action="precio_procesar.php">
<table width="60%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Numero de adultos</td>
<td><input name="numAdults" type="text" id="numAdults" /></td>
</tr>
<tr>
<td>Numero de niños</td>
<td><input name="numChildren" type="text" id="numChildren" /></td>
</tr>
<tr>
<td>Tour name</td>
<td><select name="tourName" id="tourName">
<option value="500">Argentina</option>
<option value="700">Canada</option>
<option value="900">Egypto</option>
</select></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Enviar" /></td>
</tr>
</table>
</form>

y este seria el de la pagina precio_procesar.php.

<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>

<?php
if ( is_numeric($_POST['numAdults'])==false or is_numeric($_POST['numChildren'])==false) {
header("Location: tourprice.php?error=notnumeric");
exit;
}
?>

<?php
$numAdult = $_POST['numAdults'];
$numChild = $_POST['numChildren'];
$basePrice = $_POST['tourName'];
$tourPrice = ($numAdult * $basePrice) + ($numChild * $basePrice);
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

en la parte del body esta escrito esto:
<p>el costo estimado del tour es: <strong>$ <?php echo number_format ($tourPrice,2,'.',','); ?></strong>.</p>

que estoy haciendo mal?, por favor espero que me puedas ayudar, he buscado en manuales y cambio la palabra "or" por &&, pero no me lo valida, sino que calcula sin importar si se escribio numeros o no.

gracias de antemano
03/08/2005
bellotafanny, experto respondiendo en PHP
Experto
hola:
mira lo primero es ver si recibes bien los valores. por lo que me dices creo (o supongo que si los recibe bien), si no estas seguro usa un echo para ver que valor tienen las variables numAdults y numchildren.
despues te recomiendo que quites el== false y lo pongas asi:
if ( !is_numeric($_POST['numAdults']) and !is_numeric($_POST['numChildren'])) {
y quitar la primera linea de:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
pq en caso de que no sean numerico al ejecutar el header te va amarcar error, pq para usar el header, no se debe de mandar nada antes.
espero q te sirva
salu2
04/08/2005
bellotafanny, usuario preguntando en PHP
Usuario
Excelente, Gracias por tu respuesta, ahora estoy en ella, y tenias razon, quite la primera linea de <?php echo y ahora ya funciona, lo añadi de mas no?
ok, bye.
Enlaces patrocinados