SoloCodigo
Programación Web y Scripting => PHP => Mensaje iniciado por: Belu en Jueves 19 de Febrero de 2009, 14:53
-
Hola a todos, recien estoy empezando con php y necesito ayuda, hice un formulario en php y quisiera hacerle una validacion a todos los campos y no se como, le dejo mi codigo, desde ya muchas gracias por su ayuda
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','Belu')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('rincondulce_db_es')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<HTML>
<HEAD>
<TITLE>Rincon Dulce</TITLE>
<BODY>
<table border="0" width="100%" cellpadding="0" cellspacing="0" background="barrablanca.jpg" bgcolor="#FFFBFF">
<tr>
<td width="6"> </td>
<td width="144" align="left" valign="middle">
<nobr><a href="ver_carrito.php"><img src="carrito1.gif" align="absmiddle" border="0"></a></nobr>
</td>
<td height="25">
</table>
<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr valign="middle">
<td height="32" bgcolor="#F7C373" width="100"><nobr><a href="registrar.php"><img src="reg.jpg" border="0" align="top" width="121" height="32"></a><img src="terminaciobarra2.jpg"></nobr></td>
<td height="32" class="menu" valign="middle" bgcolor="#EF9610" background="barranaranja22.jpg">
<form action="validar_usuario.php" method="post">
<font color="white">
<nobr>
<b>Login</b>
<font color="white"><b>Usuario</b></font> <input type="text" name="usuario" size="20" maxlength="20" />
<font color="white"><b>Contraseña</b></font> <input type="password" name="password" size="10" maxlength="10" />
<input type="submit" value="Ingresar" src="botonir4.jpg" type="image" class="noborder">
</font>
</form>
<tr>
<td bgcolor="#F7B218" colspan="4" height="3" class="minimo"> </td>
</tr>
</table><br class="pixel6"><br class="pixel6">
<table cellspacing="0" cellpadding="0" border="0" width="100%" valign="top">
<tr valign="top">
<td width="1%">
<center><img src="logoweb1.jpg"></center><br>
<style>
.TDMenu{
height: 25px;
BORDER-LEFT: #B3B0B0 1px solid;
BORDER-RIGHT: #B3B0B0 1px solid;
BORDER-BOTTOM: #B3B0B0 1px solid;
COLOR: #525152;
FONT-FAMILY: tahoma, Arial, Helvetica;
FONT-SIZE: 11px;
LINE-HEIGHT: 13px;
TEXT-DECORATION: none;
font-weight:bold;
cursor: hand;
margin-left: 5px;
}
.TDMenu A{
COLOR: #525152;
FONT-FAMILY: tahoma, Arial, Helvetica;
FONT-SIZE: 11px;
LINE-HEIGHT: 13px;
TEXT-DECORATION: none;
font-weight:bold;
margin-left: 5px;
}
</style>
<table cellspacing="0" cellpadding="0" border="0" width="137" bgcolor="#ffffff" style="MARGIN:0px;" align="left">
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#F5F5F5"><a href="index.php"><font color="#A55129">Inicio</font></a></td></tr>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Desayunos">Desayunos</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Brindis">Brindis</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Chocolates">Chocolates</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Fechases">Fechas especiales</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Picadas">Picadas</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Peluches">Peluches</a></td>
</tr>
</tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=Adicionales">Adicionales.</a></td>
</tr>
<tr>
<td class="TDMenu" onclick="mClk(this)" bgcolor="#FFFFFF"><a href="productos.php?ide=envios_pagos">Envíos y pagos.</a></td>
</tr>
</table>
<center><H2><b><u>Datos de registro</b></H2></center></u>
<Form Action="registrar.php" method="post">
<center><p><b>Usuario: <input type="text" name="username" size="20" maxlength="20" /></center>
<center><p><b>Contraseña: <input type="password" name="password" size="20" maxlength="10" /></center>
<center><p><b>Confirmar contraseña: <input type="password" name="password2" size="20" maxlength="10" /></center>
<center><p><b> E-Mail: <input type="text" name="email" size="20" maxlength="40" />
<center><H2><b><u>Datos personales</b></H2></center></u>
<center><p><b>Nombre: <input type="text" name="nombre" size="20" maxlength="30" /></center>
<center><p><b>Apellido: <input type="text" name="apellido" size="20" maxlength="50" /></center>
<center><p><b>Direccion: <input type="text" name="direccion" size="20" maxlength="100" /></center>
<center><p><b>Ciudad: <input type="text" name="ciudad" size="20" maxlength="30" /></center>
<center><p><b>Provincia: <input type="text" name="provincia" size="20" maxlength="30" /></center>
<center><p><b>Pais: <input type="text" name="pais" size="20" maxlength="30" /></center>
<center><p><b>Telefono: <input type="text" name="telefono" size="20" maxlength="20" />
<center><p><b>Celular: <input type="text" name="celular" size="20" maxlength="20" />
<center><input type="submit" value="Registrar"><br></center>
</form>
</body>
</html>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$email = $_POST["email"];
$nombre= $_POST["nombre"];
$apellido= $_POST["apellido"];
$direccion= $_POST["direccion"];
$ciudad= $_POST["ciudad"];
$provincia= $_POST["provincia"];
$pais= $_POST["pais"];
$telefono= $_POST["telefono"];
$celular= $_POST["celular"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
echo "un campo está vacio.";
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo "Las contraseñas no coinciden";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo "El nombre de usuario o la cuenta de correo estan ya en uso";
formRegistro();
}else{
$query = 'INSERT INTO usuarios (usuario, password, email, fecha, nombre, apellido, direccion, ciudad, provincia, pais, telefono, celular)
VALUES (''.$username.'',''.$password.'',''.$email.'',''.date("Y-m-d").'', ''.$nombre.'', ''.$apellido.'', ''.$direccion.'', ''.$ciudad.'', ''.$provincia.'', ''.$pais.'', ''.$telefono.'', ''.$celular.'')';
mysql_query($query) or die(mysql_error());
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora puede entrar ingresando su usuario y su password <br />';
?>
<FORM ACTION="validar_usuario.php" METHOD="post">
<div align="right">
<a href="index.php"><img src="volver2.gif" alt="Volver a la página anterior" align="middle" border="0" height="29" width="103"></a>
</div>
</FORM>
<?php
}
}
}
}else{
formRegistro();
}
?>
-
Te recomiendo que uses un solo formulario para validar y enviar la información; por lo que pude ver, usas 3 (<form action="validar_usuario.php">...... <form action="registrar.php">........... <form action="validar_usuario.php">.......... este último no entiendo que función tiene). También, puedes utilizar 2 scripts distintos (uno que despliegue el formulario y otro que haga la validación) para que no te compliques tanto; si lo que pretendes es mantener el formulario después de que se haga el registro, en el script de validación puedes hacer un redirect hacia el script que despliega el formulario. Ahora, al código:
- Cuando vayas a verificar si un campo está vacío, utiliza la función is_null() o empty(), en la página de php (http://www.php.net) encuentras la documentación de ambas funciones
- La comparación de cadenas la puedes hacer con strcmp(), de nuevo php.net te ayuda a saber cómo funciona.
Por último, la próxima vez utiliza las etiquetas CODE para postear código, ya que es bien difícil leer lo que pusiste.
:suerte:
-
Muchisimas gracias shadow_rev, fue de gran ayuda... :good: