Se sai di utilizzare una stringa alfanumerica allora può venire in mente di evitare (l'inutile) escape della stringa, in quanto sai già a priori che non ci sono caratteri su cui fare l'escape. Ma è un errore. Dovresti farlo comunque. Pena aver tutto il codice accoppiato, in cui singole responsabilità sono intrecciate con altre, e ti ritrovi con una matassa ri-inutilizzabile. E questo è sinonimo di bad design. Se un giorno cambiassi il processo di validazione del dato ti ritroveresti con un problema senza rendertene conto.un controllo simile a quell'esempio (o comunque una passata di mysqli_real_escape_string) deve essere fatto anche se subito dopo c'è una espressione regolare che controlla se il valore sia esattamente (a-zA-Z-1-9\')
Quando hai le magic attive la prima cosa da fare è riportare l'input allo stato originale. Quindi: stripslashes. Dopodiché lo tratti come ti pare, nel contesto in cui le utilizzi. Se il contesto è html, allora htmlentities sia.Inoltre, secondo te ha senso fare una cosa tipo che se le magic sono attive: