Verificare maiuscole e minuscole

Ho realizzato una web application con autenticazione e ho notato che quando inserisco una password tutta in minuscolo (es.: pippo) mentre sul db ha l'iniziale in maiuscolo (es.: Pippo), l'autenticazione avviene ugualmente, io invece vorrei che si bloccase in quanto le password sono diverse, in pratica vorrei rendere il testo inserito case-sensitive, possibile?

inviato 10 anni fa
Nando
X 0 X

quando fai l'if di controllo per vedere se la pass inserita nel form identica a quella del db metti tre uguali

if($_POST['pass']===$pass){

echo "ok";

}else{

echo "Errore la pass inserita nn combacia con quella del db";

}

prova e dimmi se va bene

risposto 10 anni fa
SuperSavio
X 0 X

Funziona sia con 3 che con 2 uguali. Scusa ma in cosa consiste la differenza tra due o pi uguali?

Grazie,

ciao.

risposto 10 anni fa
Nando
X 0 X

== confronta due valori if($pippo == 123)

=== confronta due valori dello stesso tipo (numero-numero/stringa-stringa) if($pippo === 123)

risposto 10 anni fa
SuperSavio
X 0 X

Molto interessante, questo nella guida che sto seguendo per imparare php non c'era scritto. Ti ringrazione per l'informazione.

Grazie,

ciao. ;)

risposto 10 anni fa
Nando
X 0 X

ho fatto un giro in rete perch nn me ne intendo di case sensitive per da quanto ho capito una modifica al db che devi fare nella tabella dove c' il campo della pass setta quel campo in Latin1_general_cs il cs finale sta a significare che case sensitive e poi fai un controllo normale con due ==

_ci case insesitive

_cs case sensitive

l'ho testato in locale funziona alla grande....grazie hai trovato una funzione che posso aggiungere al mio sito ;) :bye:

risposto 10 anni fa
SuperSavio
modificato 10 anni fa
X 0 X

Il problema del confronto tra stringhe va risolto opportunamente a seconda che il confronto sia fatto nella query, quindi affidato a MySQL, oppure nello script PHP.

In uno script PHP il normale confronto tra script case sensitive. Per una conferma basta provare questo script:

<?php
$string = 'test';

if($string == 'Test') {
echo 'uguali';
}
else {
echo 'diverse';
}
?>

In una query MySQL la cosa pi complicata. In generale il confronto dipende dalla "collation" associata al campo che si sta confrontando. Se il nome della collation termina con "_ci" allora il confronto "case insensitive". E' comunque possibile modificare la collation limittamente ad una query specificandone il nome:

[tt]SELECT * FROM utenti WHERE nome = 'test' COLLATE latin1_general_cs[/tt]

Un altro modo per forzare un confronto case sensitive consiste nel fare un confronto "binario" tra le stringhe:

[tt]SELECT * FROM utenti WHERE BINARY nome = 'test'[/tt]

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho cambiato il Collation da latin1_swedish_ci in latin1_swedish_cs come mi avete detto e funziona.

Grazie,

:bye:

risposto 10 anni fa
Nando
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda
 

[pagina costruita in 0.008s]