Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2005, 00:13
Avatar de Carlos1975
Carlos1975
 
Fecha de Ingreso: mayo-2005
Mensajes: 29
Antigüedad: 19 años
Puntos: 0
Validacion formulario conjunta validacion en BD php

Muy buenas a todos
Viendo casos de este foro hay casos que se parecen pero creo que este es algo diferente.

Tengo un formulario:
<FORM ACTION="registrar.php" METHOD="post">
<table width="775" border="0" cellspacing="0">
<tr>
<td height="20" colspan="5" bgcolor="#FFA346" class="titulos" align="center">Inserte sus datos de registro</td>
</tr>
<tr>
<td height="15" colspan="5"></td>
</tr>
<tr>
<td width="83"></td>
<td width="241" class="titulo1"><div align="right">Nombre o Nick :</div></td>
<td width="47" height="20"></td>
<td width="390"><input name="nick" type="text" class="campos" size="30"></td>
<td width="4"></td>
</tr>
<tr>
<td></td>
<td></td>
<td height="15"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="titulo1"><div align="right">Provincia o País:</div></td>
<td height="20"></td>
<td><input name="provincia" type="text" class="campos" size="30"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td height="15"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="titulo1"><div align="right">Url :</div></td>
<td height="20"></td>
<td><input name="url" type="text" class="campos" size="30" value="http://"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td height="15"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="titulo1"><div align="right"><strong>Email :</strong></div></td>
<td height="20"></td>
<td><input name="email" type="text" class="campos" size="30"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td height="15"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="titulo1"><div align="right">Password :</div></td>
<td></td>
<td><input name="pass1" type="password" class="campos" size="30" maxlength="8"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td height="15"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="titulo1"><div align="right"><strong>Repita password :</strong></div></td>
<td></td>
<td><input name="password" type="password" class="campos" size="30" maxlength="8"></td>
<td></td>
</tr>
<tr>
<td height="15" colspan="5"></td>
</tr>
<tr>
<td colspan="3"><div align="right"><input name="enviar" type="submit" class="formula" onClick="Validar(this.form)" value=" Enviar "></div></td>
<td colspan="2"><div align="left"><input name="restablecer" type="reset" class="formula" value=" Restablecer "></div></td>
</tr>
<tr valign="bottom">
<td height="20" colspan="5" align="center"><hr noshade width='700' size='1' color='#FF6600'></td>
</tr>
<tr>
<td align="center" colspan="5" height="10" valign="top" class="fuentepequeña">Gracias por colaborar con nosotros, registrarse no implica compromiso alguno solo es para llevar un control sobre vuestros mensajes.</td>
</tr>
</table>
</form>

Como veis normalito y tengo una funcion javascript Validar();

<script LANGUAGE="JavaScript">
function Validar(form) {
if (form.nick.value == "")
{ alert("Por favor ingrese su nombre"); form.nick.focus(); return; }

if (form.email.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); form.email.focus(); return; }

if (form.provincia.value == "")
{ alert("Por favor diga en que provincia o pais reside"); form.provincia.focus(); return; }

if (form.password.value != form.pass1.value)
{ alert("Los campos password no coinciden"); form.password.focus(); return; }

form.submit(); location.replace(registrar.php);
}

</script>

hasta aqui todo funciona bien pero el problema que cuando envio, en el primer campo que se deja vacio el usuario me sale el alert correspondiente pero me manda directamente a registrar.php y es que en este archivo hay una comprobacion de campos en la Base de datos para saber si este usuario ya existe o no para que escoga otro nick.
Como O porque mejor dicho no termina de realizar la funcion Validar() y me pasa directamente al siguiente archivo?
He probado con onSubmit="return Validar(this.form)" colocado en el <form action al principio de formulario.
Aqui va el php.

<?php

$link = mysql_connect("localhost", "nobody");
mysql_select_db("mardedios", $link);

function quitar($mensaje) {
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "") {
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result)) {
echo "<table align='center' class='tablanormal'>";
echo "<tr><td align='center' class='fuenteroja'>Error, nick escogido por otro usuario</td></table>";
}

else {
$sql = "INSERT INTO usuarios (nick, password, provincia, url, email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["provincia"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["url"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo "<table align='center' class='tablanormal'>";
echo "<tr><td align='center' class='fuenteroja'>Registro exitoso! si esta pagina no se redirecciona pulse <a href='ingreso.php'><span class='fuenteroja'>aquí</span></td></table>";
}

mysql_free_result($result);
}
else {
echo "<table align='center' class='tablanormal'>";
echo "<tr><td align='center' class='fuenteroja'>Por favor ingresa los campos nick, provincia, email y passwords.</td></table>";
}
mysql_close();

include("formregistro.php");

?>