Foros del Web » Programando para Internet » PHP »

Ayuda con formulario

Estas en el tema de Ayuda con formulario en el foro de PHP en Foros del Web. Que tal, soy nuevo por ak, estoy haciendo un formulario para un hotel, solo quieren que las personas metan los datos de reservas y les ...
  #1 (permalink)  
Antiguo 24/03/2010, 09:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Ayuda con formulario

Que tal, soy nuevo por ak, estoy haciendo un formulario para un hotel, solo quieren que las personas metan los datos de reservas y les llegue a un email ellos según su disponibilidad sabrán si pueden o no reservar.

Estoy teniendo un problemilla, todo lo demás me llega bien pero al agregar los checkbox para seleccionar el tipo de habitación, la página me sale en blanco, me imagino que es algo mal puesto que me da eror por que apenas quito los checkboxes carga la página.

Aquí le dejo el código para que me colaboren por fa (va en dos partes no me deja ponerlo todo):

<?php
$error = ''; // error message
$name = ''; // sender's name
$last = ''; // sender's name
$phone = ''; // sender's name
$fax = ''; // sender's name
$email = ''; // sender's email address
$country = ''; // subject
$rooms = ''; // habitaciones
$llegada; = ''; // fecha llegada
$partida; = ''; // fecha partida
$adultos; = ''; // cantidad adultos
$ninos; = ''; // cantidad niños
$message = ''; // the message itself
$spamcheck = ''; // Spam check

if(isset($_POST['send']))
{
$name = $_POST['name'];
$last = $_POST['last'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$country = $_POST['country'];
$rooms = $_POST['rooms'];
$llegada = $_POST['llegada'];
$partida = $_POST['partida'];
$adultos = $_POST['adultos'];
$ninos = $_POST['ninos'];
$message = $_POST['message'];
$spamcheck = $_POST['spamcheck'];

if(trim($name) == '')
{
$error = '<div class="errormsg">Por favor introduzca su Nombre!</div>';
}
if(trim($last) == '')
{
$error = '<div class="errormsg">Por favor introduzca su Apellido!</div>';
}
if(trim($phone) == '')
{
$error = '<div class="errormsg">Por favor introduzca su Teléfono!</div>';
}
if(trim($fax) == '')
{
$error = '<div class="errormsg">Por favor introduzca su Fax!</div>';
}
else if(trim($email) == '')
{
$error = '<div class="errormsg">Por favor introduzca su email!</div>';
}
else if(!isEmail($email))
{
$error = '<div class="errormsg">Ha introducido un email no valido. Por favor intente nuevamente!</div>';
}
if(trim($country) == '')
{
$error = '<div class="errormsg">Por favor introduzca su país!</div>';
}

if(trim($rooms) == '')
{
$error = '<div class="errormsg">Por favor seleccione una o más habitaciones!</div>';
}

if(trim($llegada) == '')
{
$error = '<div class="errormsg">Por favor introduza la fecha de llegada!</div>';
}
if(trim($partida) == '')
{
$error = '<div class="errormsg">Por favor introduzca la fecha de partida!</div>';
}
if(trim($adultos) == '')
{
$error = '<div class="errormsg">Por favor introduzca la cantidad de adultos!</div>';
}
if(trim($ninos) == '')
{
$error = '<div class="errormsg">Por favor introduzca la cantidad de niños!</div>';
}
else if(trim($message) == '')
{
$error = '<div class="errormsg">Por favor escriba un comentario!</div>';
}
else if(trim($spamcheck) == '')
{
$error = '<div class="errormsg">Por favor escriba un número para el detector de spam!</div>';
}
else if(trim($spamcheck) != '5')
{
$error = '<div class="errormsg">Detector de spam: El número introducido no es correcto! 2 + 3 = ???</div>';
}
if($error == '')
{
if(get_magic_quotes_gpc())
{
$message = stripslashes($message);
}

// the email will be sent here
// make sure to change this to be your e-mail
$to = "[email protected]";

// the email subject
// '[Contact Form] :' will appear automatically in the subject.
// You can change it as you want

$subject = 'Reservaciones' . $subject;

// the mail message ( add any additional information if you want )
$msg = "From : $name $last \r\ne-Mail : $email \r\nPaís : $country \r\nTeléfono : $phone \r\nFax : $fax \r\nFecha de llegada : $llegada \r\nHabitación(es) : $rooms \r\nFecha de Partida : $partida \r\nCantidad de adultos : $adultos \r\nCantidad de niños : $ninos \r\n\n" . "Message : \r\n$message";

mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n");
?>

<!-- Message sent! (change the text below as you wish)-->
<div style="text-align:center;">
<h3>Felicidades!!</h3>
<p>Gracias <b><?=$name;?></b>, su mensaje ha sido enviado, <br />le estaremos contestando pronto!</p>
</div>
<!--End Message Sent-->


<?php
}
}

if(!isset($_POST['send']) || $error != '')
{
?>

<!--Error Message-->
<?=$error;?>

<form method="post" name="contFrm" id="contFrm" action="">


<label><span class="required">*</span> Nombre:</label>
<input name="name" type="text" class="boxform" id="name" size="30" value="<?=$name;?>" />

<label><span class="required">*</span> Apellido:</label>
<input name="last" type="text" class="boxform" id="last" size="30" value="<?=$last;?>" />

<label><span class="required">*</span> Tel&eacute;fono:</label>
<input name="phone" type="text" class="boxform" id="phone" size="30" value="<?=$phone;?>" />

<label><span class="required">*</span> Fax:</label>
<input name="fax" type="text" class="boxform" id="fax" size="30" value="<?=$fax;?>" />

<label><span class="required">*</span> Email: </label>
<input name="email" type="text" class="boxform" id="email" size="30" value="<?=$email;?>" />

<label><span class="required">*</span> Pa&iacute;s: </label>
<input name="country" type="text" class="boxform" id="country" size="30" value="<?=$country;?>" /><br />
  #2 (permalink)  
Antiguo 24/03/2010, 09:54
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
otra parte

esta es la otra parte

<h4>Habitaciones</h4>
<table id="selectores" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span class="required">*</span> Hab. Doble MT / TWIN:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Doble MT / TWIN" /></td>
<td><span class="required">*</span> Hab. Triple ST:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Triple ST" /></td>
</tr>
<tr>
<td><span class="required">*</span> Hab. Jr. Suite:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Jr. Suite" /></td>
<td><span class="required">*</span> Hab. Jr. Suite DLX:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Jr. Suite DLX" /></td>
</tr>
<tr>
<td><span class="required">*</span> Hab. Jr. Suite Familiar:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Jr. Suite Familiar" /></td>
<td><span class="required">*</span> Hab. Suite:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Suite" /></td>
</tr>
<tr>
<td><span class="required">*</span> Hab. Presidential Suite:</td>
<td><input type="checkbox" value="<?=$rooms;?>" name="Hab. Presidential Suite" /></td>
<td></td>
<td></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td valign="middle"><span class="required">*</span> Llegada:</td>
<td valign="middle"><input name="llegada" type="text" class="boxform" id="llegada" size="15" value="<?=$llegada;?>" /></td>
<td valign="middle"><span class="required">*</span> Partida:</td>
<td valign="middle"><input name="partida" type="text" class="boxform" id="partida" size="15" value="<?=$partida;?>" /></td>
</tr>
<tr>
<td valign="middle"><span class="required">*</span> Adultos:</td>
<td valign="middle"><input name="adultos" type="text" class="boxform" id="adultos" size="15" value="<?=$adultos;?>" /></td>
<td valign="middle"><span class="required">*</span> Niños:</td>
<td valign="middle"><input name="ninos" type="text" class="boxform" id="ninos" size="15" value="<?=$ninos;?>" /></td>
</tr>
</table>
<label><span class="required">*</span> Comentarios: </label>
<textarea name="message" cols="30" rows="8" id="message"><?=$message;?></textarea>

<label><span class="required">*</span> Anti Spam: <b>2 + 3=</b></label>
<input name="spamcheck" type="text" class="boxform" id="spamcheck" size="4" value="<?=$spamcheck;?>" /><br />
<!-- Submit Button-->
<input name="send" type="submit" class="button" id="send" value="Enviar Formulario" />

</form>

<!-- E-mail verification. Do not edit -->
<?php
}

function isEmail($email)
{
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|a s|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn |bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|c l|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk| dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|f o|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs |gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|in t|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr| kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md |mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum |mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|n p|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr |pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg| sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf |tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|u m|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za| zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
,$email));
}
?>
  #3 (permalink)  
Antiguo 24/03/2010, 10:00
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años, 6 meses
Puntos: 19
Respuesta: Ayuda con formulario

Creo que para lo que quieres tienes que usar "radio" no "checkbox" (tu quieres que se seleccione uno sólo, no dos, ya que no quieres que alguien tenga una habitación triple y doble)

Y luego no entiendo por que les pasas value $rooms a todos los checkboxes.

También ponle error_reporting(E_ALL); al principio del código y mira a ver si te manda un error PHP.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #4 (permalink)  
Antiguo 24/03/2010, 10:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Ayuda con formulario

Pero que parte no te va?
  #5 (permalink)  
Antiguo 24/03/2010, 10:02
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Cita:
Iniciado por AnesGy Ver Mensaje
Creo que para lo que quieres tienes que usar "radio" no "checkbox" (tu quieres que se seleccione uno sólo, no dos, ya que no quieres que alguien tenga una habitación triple y doble)

Y luego no entiendo por que les pasas value $rooms a todos los checkboxes.

También ponle error_reporting(E_ALL); al principio del código y mira a ver si te manda un error PHP.
es que pensaba si vienen un grupo de personas y quieren escoger dos tipos de habitaciones, por eso usaba checkbox, que piensan.

la verdad no soy muy ducho en php, pensé que tenía que validar cada uno para que cuando me llegue el email saber cual escogieron.

error_reporting(E_ALL); al principio del código php?

[URL="http://thehotellagunabocas.com/site/espanol/rescontact.php"]http://thehotellagunabocas.com/site/espanol/rescontact.php[/URL]

este es el formulario, detecte algo, en cuanto trato de validar llegada, partida, adultos, niños, no me carga la página.

lso que tienen caritas, al agregar eso no me carga la pagina.

$error = ''; // error message
$name = ''; // sender's name
$last = ''; // sender's name
$phone = ''; // sender's name
$fax = ''; // sender's name
$email = ''; // sender's email address
$country = ''; // subject
$llegada; = ''; // fecha llegada
$partida; = ''; // fecha partida
$adultos; = ''; // cantidad adultos
$ninos; = ''; // cantidad niños
$message = ''; // the message itself
$spamcheck = ''; // Spam check

if(isset($_POST['send']))
{
$name = $_POST['name'];
$last = $_POST['last'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$country = $_POST['country'];
$llegada = $_POST['llegada'];
$partida = $_POST['partida'];
$adultos = $_POST['adultos'];
$ninos = $_POST['ninos'];
$message = $_POST['message'];
$spamcheck = $_POST['spamcheck'];

bueno, veamos como resuelvo, saludos y gracias.

Última edición por GatorV; 24/03/2010 a las 12:34

Etiquetas: 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 22:41.