Estoy intentando hacer un registro de usuario con PHP y parte del código consiste en validar que se rellenan en el formulario todos los campos obligatorios. Aunque los relleno, no soy capaz de ver porque me dice que faltan campos obligatorios por rellenar, así que os pega el trozo de código por si alguno veis donde puede estar el error.
Muchas gracias!
Código PHP:
<pre style="font-family:Arial, Helvetica, sans-serif;font-size:14px;color:#000; margin-left:40px;">Rellene los siguientes datos de registro:<br/>
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('***','***','***')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('***')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<form action="registrar.php" method="post" style="margin-top:-20px;">
<table cellpadding="1px" cellspacing="2px">
<tr>
<td width="350px"><label for="username"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Usuario*:</strong></font></label></td>
<td ><input type="text" id="username" name="username" value="" size="20" /></td>
</tr>
<tr>
<td width="350px"><label for="password"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Contraseña*:</strong></font></label></td>
<td ><input type="password" id="password" name="password" value="" size="20" /></td>
</tr>
<tr>
<td width="350px"><label for="password2"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Repetir contraseña*:</strong></font></label></td>
<td ><input type="password" id="password2" name="password" value="" size="20"/></td>
</tr>
<tr>
<td align="left" width="350px"><label for="nombre"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Persona de contacto*:</strong></font></label></td>
<td ><input type="text" id="nombre" name="nombre" value="" size="60"/></td>
</tr>
<tr>
<td width="350px"><label for="tlf"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Teléfono*:</strong></font></label></td>
<td ><input type="text" id="tlf" name="tlf" value="" size="15"/></td>
</tr>
<tr>
<td width="350px"><label for="email"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>E-mail*:</strong></font></label></td>
<td ><input type="text" id="email" name="email" value="" size="40" /></td>
</tr>
<tr>
<td width="350px"><label for="empresa"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Empresa:</strong></font></label></td>
<td ><input type="text" id="empresa" name="empresa" value="" size="15"/></td>
</tr>
<tr>
<td width="350px"><label for="direccion"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Dirección:</strong></font></label></td>
<td ><input type="text" id="direccion" name="direccion" value="" size="60"/></td>
</tr>
<tr>
<td colspan="2"><font size="1" face="Arial, Helvetica, sans-serif" color="#000000">*Campos obligatorios.</font></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td></td>
<td align="left"><input type="submit" name="enviar" id="enviar" value="Registrar" /><input type="reset" name="borrar" id="borrar" value="Restablecer" /></td>
</tr>
</table>
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$nombre =$_POST["nombre"];
$tlf = $_POST["tlf"];
$email = $_POST["email"];
$empresa = $_POST["empresa"];
$direccion = $_POST["direccion"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NULL|$nombre==NULL|$tlf==NULL|$email==NULL) {
echo "Algún campo obligatorio 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 están ya en uso";
formRegistro();
}else{
$query = 'INSERT INTO usuarios (usuario, password, nombre, email, tlf, empresa, direccion, fecha)
VALUES (\''.$username.'\',\''.$password.'\',\''.$nombre.'\',\''.$email.'\',\''.$tlf.'\',\''.$empresa.'\',\''.$direccion.'\',\''.date("Y-m-d").'\')';
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">
<table cellpadding="1px" cellspacing="2px">
<tr>
<td width="50px"><label for="usuario"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Usuario:</strong></font></label></td>
<td ><input type="text" id="usuario" name="usuario" size="20" maxlength="20"/></td>
</tr>
<tr>
<td width="50px"><label for="pass"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Contraseña:</strong></font></label></td>
<td ><input type="password" id="password" name="password" size="20" maxlength="20"/></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td></td>
<td align="left"><input type="submit" name="enviar" id="enviar" value="Ingresar" /></td>
</tr>
</table>
</form>
<?php
}
}
}
}else{
formRegistro();
}
?> </pre>