Ho un problema con un confronto tra stringhe:
Ho realizzato una piccola web-app che pesca delle domande da un database e le relative risposte.
L'utente clicca sulla risposta che sceglie e questa viene passata via POST.
La web-app poi confronta (prima con un === ma ora con strcmp) la stringa arrivata via POST con quella contenuta nel database ed incrementa il contatore del puntoggio.
Solo che... alcune volte sbaglia!
Non riesco a capire come mai! Prima ho pensato ai caratteri speciali o gli apostrofi, ma la cosa sembra non essere legata a loro!
(dico sembra perchè molte risposte contenenti apostrofi sono marcate corrette!)
Ci sono particolari attenzioni da prendere per confrontare una stringa letta dal database con una passata via POST??
In alternativa qualche consiglio?
Ecco il codice del punto in cui viene valutata la correttezza della risposta:
Codice PHP:
$ut_risposta =html_entity_decode($_POST['risposta'],ENT_QUOTES); // recupero il valore della risposta data
$risposta= mysql_query("SELECT risposta FROM Domande WHERE id = ".$id,$dbconnect); //recupero il valore della risposta
$pescarisposta = mysql_fetch_array($risposta);
$real_risposta= html_entity_decode($pescarisposta[0],ENT_QUOTES);
if (strcmp($ut_risposta,$real_risposta)==0){ // se la risposta è corretta...
$_SESSION['punteggio']++; // aumento il punteggio
}