Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2010, 07:59
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
problemas con SUBSTRING

Hola amigos les comento que tengo un problema con el SUBSTRING de la consulta, y es que por alguna razon no me quiere tomar la variable $ccusuario
la cual cuenta la cantidad de caracteres de lo que ingreso.

el tema es que si mi usuario es [email protected] yo puedo ingresar kaninox como [email protected] y ambos deberian ser validos, pero resulta que aqui puedo poner ka ó k ó kan etc... y su contraseña valida obviamente y me valida igual, por lo que veo que no me esta tomando esta variable alguna idea?
si pongo la variable en comillas dobles o sin ellas me da el error si la pongo en comillas simples no me deja con nada :/

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";   //conexion.
  3. //Funcion para limpiar cadenas de caracteres especiales
  4. function limpiaCadena ($cadena)
  5. {
  6. $cadena = stripslashes($cadena);
  7. return mysql_real_escape_string($cadena);
  8. }
  9. //comprobamos si viene un email completo o nombre usuario y validamos ambas entradas
  10. $posicion_final = stripos("$_POST[user]", "@");
  11. if ($posicion_final != "") {$valida_usuario=substr($_POST[user],0,$posicion_final);}else{$valida_usuario = "$_POST[user]";}
  12. $user_in = limpiaCadena(htmlentities($valida_usuario));
  13. $con_nex = limpiaCadena($_POST[contrasena]);
  14. $contra_encript = md5($con_nex); // contraseña
  15. //contamos los caracteres del nombre usuario y validamos
  16. $ccusuario = strlen($_POST[user]);
  17. // ¿El usuario existe?
  18. $busca_usuario=mysql_query("SELECT * FROM mitabla"
  19. ." WHERE SUBSTRING(email, 1, $ccusuario)= BINARY '$user_in' "
  20. ." AND contrasenia = '$contra_encript' "
  21. ." AND bandera_activo = '1'");
  22. if(mysql_num_rows($busca_usuario)==1) // Los datos son validos
  23. {
  24. ......

se me olvidaba agregar que se que es ese el problema por que si le pongo el dato a mano digamos kaninox tiene 7 caracteres me funciona correctamente, hay algo que hace que no me tome la variable o se la salte :/

#
." WHERE SUBSTRING(email, 1, 7)= BINARY '$user_in' "
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 13/04/2010 a las 08:06