Buonasera a tutti voi cari lettori,
vi propongo un quesito:
sto facendo un lavoretto per l'università con php e mysql, e mi sono imbattutto in un problema dal quale non riesco a vanirne proprio fuori!!!!!
Inserisco nel database alcune stringhe che, rigorosamente faccio passare ad una funzione del genere:
codice:
function pulisciStringaSql($connessione, $pulisci){
//rimuovere eventuali spazi all'inizio ed alla fine di una stringa
$pulisci = trim($pulisci);
if (get_magic_quotes_gpc()){
$pulisci=stripslashes($pulisci);
}
$pulisci= nl2br(htmlspecialchars($pulisci));
//rimuove i tag HTML presenti in una stringa
$pulisci = strip_tags($pulisci);
$pulisci = mysqli_real_escape_string($connessione,$pulisci);
return $pulisci;
}
per "pulirla" un pochetto.
Successivamente, quando cerco nel database una stringa, faccio passare, ciò che l'utente scrive, nuovamente alla funzione soprastante:
codice:
$parole = pulisciStringaSql($con,$_GET['user_type']);
$parola_piccolo = strtolower($parole);
$array_parole_da_cercare =array();
$array_parole_da_cercare = explode(" ", "$parola_piccolo");
//controllo se vi sono dei doppioni nell'array e li elimino
$array_parole_da_cercare_2 =array();
$array_parole_da_cercare_2=array_keys(array_flip($array_parole_da_cercare));
NOTA: mi serve passarlo attraverso GET perchè mi servono i link!
------------------------------------------------------------------
E fino a qui tutto bene! Creo la stringa SQL e cerco nel DB:
codice:
$sql=mysqli_query($con,"SELECT * FROM tab_pdf_caricamenti WHERE nom_pdf LIKE '%$array_parole_da_cercare_2[$i]%' ORDER BY num_like DESC ") or die("Error: 12001-55");
//VI RISPARMIO IL RESTO DEL CODICE
Il tutto sembra funzionare, tranne in un piccolo (GRANDE) particolare!!! Ovvero:
Quando ad es. cerco l'apice (') mi trova tutte quelle parole che contengono l'apice ovviamente, quando cerco l'apice più il resto della parola (ad esempio, se nel db è contenuto l\'urlo, ed io cerco 'urlo) me li trova senza problemi... MA quando cerco la parola per intero (l'urlo con l'articolo davanti) non mi trova niente!!!! Credo che sia lo slash a far danni!!!
Un altro problema:
quando cerco il simbolo del + e il simbolo della & commerciale, non me li trova. Anche quando provo ad inserirli non li accetta!!
PS: accetto consigli su come migliorare quella funzione!! =)
Spero di essere stato chiaro e spero possiate aiutarmi!!
Grazie mille in anticipo e scusate il disturbo.