Foros del Web » Programando para Internet » PHP »

Numero de Caracteres como minimo

Estas en el tema de Numero de Caracteres como minimo en el foro de PHP en Foros del Web. Hola que tal buen día el problema es el siguiente quiero hacer un condicional para que mi formulario si no cumple con los campos no ...
  #1 (permalink)  
Antiguo 12/12/2010, 18:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Numero de Caracteres como minimo

Hola que tal buen día el problema es el siguiente quiero hacer un condicional
para que mi formulario si no cumple con los campos no se envié ala base de datos


aqui esta bien este si no llena el campo username no pasa y sale este mensaje

if($username==NULL)
echo '<script language="javascript">
alert("Ingrese una Usuario");
window.location.href="registrar.php";
</script>';
formRegistro();

aqui el problema es que quiero validar el numero de campos por que en mis campos si tu pones usuario 1 contraseña 1 se registra




Ahora puse este codigo para que el minimo de caracteres sea de 4 pero no pasa nada siguen registrandose usuarios con 1 caracter que sucede


function validateUsername($username){
//NO cumple longitud minima
if(strlen($username) < 4)
return false;
//SI longitud pero NO solo caracteres A-z
else if(!preg_match("/^[a-zA-Z]+$/", $name))
return false;
// SI longitud, SI caracteres A-z
else
return true;
}
  #2 (permalink)  
Antiguo 12/12/2010, 18:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Numero de Caracteres como minimo

pues nose que te este pasando pero yo lo probe y no me dio ningun error
Código PHP:
Ver original
  1. <?php
  2. function validateUsername($username){
  3.     if(strlen($username) < 4){     
  4.         return false;
  5.     }  
  6.     elseif(!preg_match("/^[a-zA-Z]+$/", $username)){
  7.         return false;
  8.     }  
  9.     else{      
  10.         return true;
  11.     }  
  12. }
  13. $var = validateUsername('car');
  14. if($var){
  15.     echo "si";
  16. }
  17. else{
  18.     echo "no";
  19. }
  20. ?>
revisa bien si estas pasando bien el paramtro por cierto el nombre de la variable es $username no $name saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 12/12/2010, 18:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

De echo no se que pase :S Ya modifique $username y no $name el problema es este que me da de alta en la base de datos usuarios con 1 caracter

ejemplo

usuario 1
contraseña 1
password 1
email 1




y quiero que minimo el usuario tenga 4 caracteres pues un usuario no puede poner solo usuario 1
4 caracteres es mas valido por que hay nombres como luis ....
  #4 (permalink)  
Antiguo 12/12/2010, 19:01
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Numero de Caracteres como minimo

entonces deberias de colocar < 3 no a 4 ya que luis entraria en el primer condicional, y la funcion te lo deberia de realizar correctamente que error te da??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 12/12/2010, 19:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

asi es Carlos fijate

en el formulario de registro pongo

usuario 44
nombre 44
contraseña 44
mail 44 y me lo registra

creo que el error esta aqui

<input type="submit" value="Ingresar" /></td>
<input type="submit" value="Registrar" style="float: right" /> </p>

Ya me hize bolas carlos te agradesco la orientacion si tienes una opinion te agradeceria si no entiendo pero te agradesco que alla leido mi pregunta
  #6 (permalink)  
Antiguo 12/12/2010, 19:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Numero de Caracteres como minimo

pues eso no me muestra mucho jaja, muestrame como recibes los campos y llamas a la funcion con cada uno de ellos xq ahi es donde esta el detalle
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 12/12/2010, 19:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

Este es mi código checa


<?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"];


// Hay campos en blanco

if($username==NULL)
echo '<script language="javascript">
alert("Ingrese una Usuario");
window.location.href="registrar.php";
</script>';
formRegistro();


if($password==NULL)
echo '<script language="javascript">
alert("Ingrese una contraseña");
window.location.href="registrar.php";
</script>';
formRegistro();



if($email==NULL) {
echo '<script language="javascript">
alert("Ingrese su e-mail");
window.location.href="registrar.php";
</script>';
formRegistro();
}else{




// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo '<script language="javascript">
alert("La contraseña no coincide");
window.location.href="registrar.php";
</script>';
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)
echo '<script language="javascript">
alert("El correo '.$email.' a sido registrado antes");
window.location.href="registrar.php";
</script>';
formRegistro();


if ($username_exist>0) {
echo '<script language="javascript">
alert("El usuario '.$username.' Ya esta en uso intento con otro usuario");
window.location.href="registrar.php";
</script>';
formRegistro();

}else{
$query = 'INSERT INTO usuarios (usuario, password, email,

fecha)
VALUES

(\''.$username.'\',\''.$password.'\',\''.$email.'\ ',\''.date("Y-m-d").'\')';
mysql_query($query) or die(mysql_error());

echo '<script language="javascript">
alert("El usuario '.$username.' ha sido registrado de manera

satisfactoria");
window.location.href="registrar.php";
</script>';

echo '<script language="javascript">
alert("Ahora '.$email.'Ya esta registrado quizas olvido su clave");
window.location.href="registrar.php";
</script>';
?>
<?php
}
}
}
}else{
formRegistro();
}
?>


si no tas ya le quite esta función por que no hacia nada :D


function validateUsername($username){
//NO cumple longitud minima
if(strlen($username) < 4)
return false;
//SI longitud pero NO solo caracteres A-z
else if(!preg_match("/^[a-zA-Z]+$/", $username))
return false;
// SI longitud, SI caracteres A-z
else
return true;
}

Bueno espero ahora me explique mejor:D
  #8 (permalink)  
Antiguo 12/12/2010, 19:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

Como comento me registra usuarios con 1 caracter

y pues no quiero llenar mi base de datos con puros

usuario 1
contraseña 1

o

usuario 2
contraseña 2

Quiero asi

en usuario un minimo de 4 caracteres
en contraseña minimo de 6 caracteres
en correo si se puede poner una funcion de mail para que tenga el valor [email protected]

  #9 (permalink)  
Antiguo 12/12/2010, 19:41
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Numero de Caracteres como minimo

pues yo colocaria de esta manera
Código PHP:
Ver original
  1. if (isset($_POST["username"])) {
  2.     $validar = validateUsername($_POST["username"]);
  3.     if($validar==false){
  4.        echo '<script language="javascript">
  5.       alert("formato incorrecto");
  6.       window.location.href="registrar.php";
  7. </script>';
  8.     }
  9. }
  10. else{
  11.     echo '<script language="javascript">
  12.    alert("Ingrese una Usuario");
  13.    window.location.href="registrar.php";
  14.    </script>';
  15.     formRegistro();
  16. }
pruebalo, y has lo mismo con los demas campos y nos comentas como te fue
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 12/12/2010, 20:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

Aver creo que hay una error de comunicación

si esta el campo en blanco no me lo registra


ejemplo en usuario si esta en blanco me dice -- Ingrese una Usuario


Ahora lo que quiero es que ingrese un numero minimo de caracteres es decir que en lugar de ponerme

usuario 1
usuario x

si el usuario se quiere registrar y

pone como
usuario emo

que le mande un mensaje y que le diga el minimo de caracters debe ser de 4.
y que no me envie emo como usuario registrado por que no comple con los caracteres
  #11 (permalink)  
Antiguo 12/12/2010, 20:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Numero de Caracteres como minimo

pues es justamente lo que te mande usando la funcion que tu mismo posteaste en el tema, lo demas si lo dices por el isset es xq estas validando dos veces q allan datos en tus campos cuando lo recibes en lo que te deje se me olvido colocarte un else o bueno ya te lo acomodo

Código PHP:
Ver original
  1. if (isset($_POST["username"])) {
  2.     $validar = validateUsername($_POST["username"]);
  3.     if($validar){
  4.         $usuario = $_POST["username"];
  5.     }
  6.     else{
  7.        echo '<script language="javascript">
  8.       alert("formato incorrecto");
  9.       window.location.href="registrar.php";
  10.        </script>';
  11.     }
  12. }
  13. else{
  14.     echo '<script language="javascript">
  15.    alert("Ingrese una Usuario");
  16.    window.location.href="registrar.php";
  17.    </script>';
  18.     formRegistro();
  19. }
pruebalo y me comentas has la prueba solo para el campo de usuario con tu funcion y de esta manera y me comentas si te funciono
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 12/12/2010, 21:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Numero de Caracteres como minimo

Hola carlos efectivamente validaba 2 veces los campos pero no lo resolvi como me dijiste lo resolvi quitando la funcion if($username==NULL) y la cambie por la función strlen de caracteres asi valida campos vacios y un minimo a ingresar

Etiquetas: caracteres, numero
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 20:45.