Ho una textarea che accetta solo numeri e lettere ed elimina tutto il resto in questo modo

$aa = $_POST['testo'];
$aa = preg_replace("/[^a-z0-9]/", "", $aa);


se stampo a video il contenuto di $aa in effetti lo fa.



Se inserisco nella textarea uno di questi due codici primo non so come mai vengono letti ed eseguiti in secondo possono far danni non riesco a capire perché passano visto che l'espressione regolare dovrebbe ripulirli


</textarea><script>alert("XSS vulnerability")</script><textarea


</textarea> <script type="text/javascript"> alert("this safe..."); /* load malicious c0dez! */ </script> <textarea>