Foros del Web » Programando para Internet » PHP »

PHP OO mensajes de error validacion usuario en misma pagina

Estas en el tema de mensajes de error validacion usuario en misma pagina en el foro de PHP en Foros del Web. hola a todos BUenas madrugadas, estoy realizando un formulario en php pero los mensajes de error en el registro los envia a una pagina en ...
  #1 (permalink)  
Antiguo 07/02/2013, 00:48
 
Fecha de Ingreso: noviembre-2012
Ubicación: sn luis potosi
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
mensajes de error validacion usuario en misma pagina

hola a todos BUenas madrugadas, estoy realizando un formulario en php pero los mensajes de error en el registro los envia a una pagina en blanco. Invoco la generosidad y sapiencia de este foro, soy nuevo en el php. Alguien podria guiarme o indicarme los pasos para mostrar mensajes de error en misma pagina?? Les adjunto mi codigo:
muchas gracias de antemano. Dios les bendiga con creces su ayudaaa !



<?php
if(isset($_POST['enviar']))
{ // comprobamos envio de datos
// creamos una función validar el email
function valida_mail($correo) {
if (preg_match('/(\w+)@(\w+)\.\w\w\w?/',$correo)) return true;
else return false;
}


function comprobar_usuario($usu){
if (ereg("^[a-zA-Z0-9\-_]{8,8}$", $usu)) return true;
else return false;
}
function comprobar_pass($contras){
if (ereg("^[a-zA-Z0-9\-_]{6,6}$", $contras)) return true;
else return false;
}

// Procedemos a comprobar que los campos del form esten vacios
$sin_espacios = count_chars($_POST['nombre'], 1);
if(!empty($sin_espacios[10])) { // comprobamos que el campo usuario no tenga espacios en blanco
echo "El campo <em>usuario</em> no debe contener espacios en blanco.";}

elseif($_POST['accion'] and str_word_count($_POST['nombre']) !=3 ){
echo "<span class='validacion'></br>faltan los apellidos</span>"; }
// echo '<SCRIPT LANGUAGE="javascript"> location.href = "insert2.php"; </SCRIPT>';

elseif(empty($_POST['nombre'])) { // comprobamos campo nombre completo no esté vacío
echo "No has ingresado tu nombre completo."; }

elseif(!valida_mail($_POST['mail'])) { // validamos que el e-mail ingresado sea correcto
echo "El e-mail ingresado no es válido."; }
//}elseif(!validateUsername($_POST['usuario'])) { // validamos que el e-mail ingresado sea correcto
//echo "usuario esta cagado.";
elseif(empty($_POST['usuario'])) { // comprobamos usuario no esté vacío
echo "No has ingresado usuario.";}
elseif(!comprobar_usuario($_POST['usuario'])) { // validamos que el usuario ingresado sea correcto
echo "El usuario es incorrecto."; }


else {

// "limpiamos" los campos de códigos maliciosos
$link = mysql_connect("localhost", "nscomput_sedesol", "sedesol");
mysql_select_db("sedesol");
$nombre = mysql_real_escape_string($_POST['nombre']);
$mail = mysql_real_escape_string($_POST['mail']);
$usuario = mysql_real_escape_string($_POST['usuario']);
$pass = mysql_real_escape_string($_POST['pass']);


// comprobamos que usuariono haya sido registrado antes
$sql = mysql_query("SELECT usuario FROM usuario WHERE usuario ='".$usuario."'");
if(mysql_num_rows($sql) > 0) {
echo "El usuario ya ha sido registrado anteriormente, intenta con otro.";
}



elseif(empty($_POST['pass'])) { // comprobamos que pass no esté vacío
echo "No has ingresado contraseña."; }
elseif(!comprobar_pass($_POST['pass'])) { // validamos que el campo pass ingresado sea correcto
echo "la contraseña es incorrecta."; }

elseif(empty($_POST['pass1'])) { // comprobamos que el campo pass1 no esté vacío
echo "repite nuevamente la contraseña."; }
elseif(!comprobar_pass($_POST['pass1'])) { // validamos que elcampo pass1 ingresado sea correcto
echo "esta mal contra."; }


elseif($_POST['pass'] != $_POST['pass1']) { // comprobamos contraseñas coincidan
echo "Las contraseñas ingresadas no coinciden."; }





else {

// encriptamos la contraseña ingresada con md5
$_POST['pass'] = md5('pass1');
// ingresamos los datos a la BD

$sql = "INSERT INTO usuario (id_usuario, nombre_completo, mail, usuario, pass, status, priv) VALUES ('','".$_POST['nombre']."', '".$_POST['mail']."','".$_POST['usuario']."', '".$_POST['pass']."', 'ACTIVO', 'u')";
$result = mysql_query($sql,$link);
if ($result){
echo "Datos ingresados correctos.";
}
else {
echo "Ha ocurrido un error";
}
}
}
}

else {
?>

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registro de usuarios</title>

<script>
function sf(ID){
document.getElementById(ID).focus();
}
</script>
</head>


<body onload="sf('text');">

<br>



<TABLE BORDER=1 align =center bordercolor=A9A9A9>
<tr>
<TD COLSPAN=2 align=left>

<form id="form1" name="form1" method="post" action="insert.php">
<img src="imagenes/mexico3.png" >
&nbsp; &nbsp; &nbsp;
</TD>
</TR>



<TR>

<TD><b>Nombre Completo:</b> </TD>
<TD>
<INPUT type="text" Maxlength="45" Size="47" name="nombre" id="text" tabindex="1">
</TD>
<!-- <td> <?php echo @$nombre; ?> </td> -->
</TR>


<TR>
<TD align =right ><b>e-m@il:</b></TD>
<TD>
<INPUT type="text" placeholder="[email protected]" Maxlength="45" Size="47" name="mail" tabindex="2">
</TD>
<!-- <td> <td><?php echo @$mail; ?></td> </td> -->
</TR>


<TR>
<TD align =right><b>Usuario:</b></TD>
<TD>
<INPUT type="text" Maxlength="8" Size="8" name="usuario" tabindex="3"><span style="color: red;" > <font size=1>8 caracteres </font> </span>
</TD>
<!-- <td> <td><?php echo @$usuario; ?></td> </td> -->
</TR>


<TR>
<TD align =right><b>password:</b></TD>
<TD>
<INPUT type="password" name="pass" Maxlength="6" Size="1" tabindex="4"> <span style="color: red;"> <font size=1> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;6 caracteres </font></span>
</TD>
</TR>


<TR>
<TD align =right><b>repite Password:</b></TD>
<TD>
<INPUT type="password" Maxlength="6" Size="1" name="pass1" tabindex="5"><span style="color: red;"> <font size=1> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;6 caracteres </font></span>
</TD>
<input type="hidden" name="accion" value="enviar">
</TR>




<TR>
<TD COLSPAN=2 align="center">
<br>


<br>
<input type="Submit" name="enviar" value="Enviar" tabindex="7">
<br>

</TD>
</TR>

</body>

</form>
</TABLE>




<?php
}
?>

Última edición por paquini; 07/02/2013 a las 00:50 Razón: falto informacion
  #2 (permalink)  
Antiguo 07/02/2013, 11:38
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: mensajes de error validacion usuario en misma pagina

1 - consulte las políticas del foro, use la herramienta Highlight para mostrar código, edite el post

2 - lo usual es pasar un parámetro por GET o Sesión inidicando que hubo error, en la cual en la pagina de login consultes para mostrar el típico "Error de usuario y/o contraseña"

3 - nunca informes al usuario final el verdadero error en el login, por ejemplo si el usuario existe y marcó mal la contraseña, al darle el mensaje "contraseña fallida" estás indicando que el usuario si existe, lo cual le da ventaja a un potencial atacante, lo ideal es dejarlo con la intriga y mostrar siempre "usuario y/o contraseña inválido", además de bloquearlo por si lo intenta más de 3 o más veces
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/02/2013, 21:15
 
Fecha de Ingreso: noviembre-2012
Ubicación: sn luis potosi
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: mensajes de error validacion usuario en misma pagina

mjuchas gracias por tu respuesta lo tomare en cuenta. Estas indicaciones son ncessarias. Me dispongo a resolveras y solventarlas en el codigo. Muchas graciasss
saludos maycolalvarez

Etiquetas: formulario, html, mensajes, mysql, registro, select, sql, usuario, usuarios, validacion
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 18:16.