1. WHERE 1=1 è sql, non è né asp né php
2. potevi anche costruire WHERE colori NOT IN ('rosso','bianco,'verdone'), magari usando la funzione implode() di PHP
1. WHERE 1=1 è sql, non è né asp né php
2. potevi anche costruire WHERE colori NOT IN ('rosso','bianco,'verdone'), magari usando la funzione implode() di PHP
1) si, lo so, la mia era solo una premessa generica
2) bene, la WHERE ... NOT IN ... non la conoscevo e si presta perfettamente allo scopo
grazie mille ( a tutti ovviamente)
Ci avevo pensato anch'io al not in, non te l'ho suggerito perché con le stringhe risulta un po' scomoda e poco intelligibile in quanto richiede un apice prima e dopo il join().
Per il resto, faresti bene ad usare una funzione per l'escape delle variabili che usi nelle query, almeno un addslashes().
Le variabili le pulisco prima:
Poi appena termino uno script che mi sta tenendo dei giorni incollato al pc passerò da mysqli a pdo appunto per aumentare la sicurezza delle query.codice:if (isset($_POST['titolo'])) { $titolo = htmlspecialchars($_POST['titolo']); }
htmlspecialchars non è consigliabile come funzione per l’escape.
Innanzitutto perché non ha niente a che fare con mysql ed in secondo luogo perché presenta alcuni svantaggi operativi.
Grazie mille, sto attingendo quì e lì ma trovo spesso materiale vecchio come in questo caso: https://www.mrwebmaster.it/php/come-...nosi_7953.html
Quindi, oltre ad addslashes cosa consigliate?
L’articolo lo dice espressamente di non usare la funzione per passare i valori al db
Per mysqli esiste la funzione specifica mysqli_real_escape_string()N.B.: Prima di passare i dati al nostro database, inoltre, è necessario ricordarsi di effettuare altre (e diverse) operazioni di pulizia riguardanti, ad esempio, gli apici.
Usando PDO e facendo il bind delle variabili, l’escape viene applicato in maniera “silente”.