Distingue de mayusculas y minusculas.

Iniciado por #Aitor, 28 Febrero 2017, 17:24 PM

0 Miembros y 1 Visitante están viendo este tema.

#Aitor

Tengo una base de datos y a la hora de registrar en ella el tipico login, distingue entre mayúsculas y minúsculas, es decir, que podría crear dos usuarios llamados "Aitor" y "aitor" sin problema.

Código (php) [Seleccionar]
<?php

if(isset($_POST['user']) && strlen($_POST['user'])>&& 
isset(
$_POST['password']) && strlen($_POST['password'])>&&
isset(
$_POST['password2']) && strlen($_POST['password2'])>&&
isset(
$_POST['email']) && strlen($_POST['email'])>0){

if(
$_POST['password'] == $_POST['password2']){ 


$user $_POST['user'];
$password $_POST['password'];
$password2 $_POST['password2'];
$email $_POST['email'];
 
if (!isset(
$_REQUEST['showemail'])){$showemail false;}else{$showemail true;}


try {
    
$con = new PDO('mysql:host=***********;dbname=**********'"****""******");
    
    
$con->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

    
$nombre_repetido $con->query('SELECT USER FROM registro');
    
$usuario_repetido false;

    foreach(
$nombre_repetido as $row){
    
if($row[0] == $user){
    
$usuario_repetido true;
break;}
    
}

if($usuario_repetido == false){
    
    
$return $con->query("INSERT INTO registro (USER,PASSWORD,EMAIL,SHOWEMAIL)
    VALUES ('
$user','$password','$email','$showemail')");

header("Location:Registrado.php"); 

}else{header("Location:Existente.php");}


}catch (PDOException $e) {

    print 
"Error!: " $e->getMessage() . "<br/>";

    die(); 
}}else{
header("Location:Diferente.php"); 
}

}else{
    
header("Location:index.php"); 
 }
?>



¿Qué falla?

EDIT:

He hecho la siguiente estupidez para saber que es lo que está fallando:

Código (php) [Seleccionar]
<?php

$user 
"casa";

$comparar "caSa";

if(
$user === $comparar)
{echo 'Misma palabra';}else{echo 'No es la misma palabra';}

?>


El resultado:

Código (php) [Seleccionar]
No es la misma palabra.

De modo qué, tenemos que la culpa la tiene el if, que no lo compara bien. (En verdad si lo compara bien, pero no como yo quiero) ¿alguna idea?

VUELVO A EDITAR:
SOLUCIÓN: Usar la función strnatcasecmp http://php.net/manual/es/function.strnatcasecmp.php tal que así

Código (php) [Seleccionar]
  if(strnatcasecmp($row[0], $user) == 0){
(...)
}

Mi algoritmo en PHP (estupideces y más).
Código (php) [Seleccionar]
while($Se_feliz){
  Piensa_un_OBJETIVO(); // Sin excusas!
  if($Tienes_un_objetivo){
    Suspira(); // Sé paciente.
    if($Consigues_el_objetivo){ echo "¡Felicidades #Aitor!";return;
      //RETURN; ¿O volvemos a empezar?
    }else{
      Inténtalo_de_nuevo();
    }
  }
}