$login = trim($_GET['login']);
$login = strip_tags($login);
$login = mysqli_real_escape_string($mysqli, $login);
Почему вы думаете, что нужно менять логин пользователя, если она захотел именно такой? хочет быть
<script>
- пусть будет. Не ограничивайте.
нужно различать sql-инъекцию и xss-атаку
т.е. если мы пишем в базу, то
$login = mysqli_real_escape_string($mysqli, $login);
query( insert into ... );
Далее выводим на страницу
$login = query( select from ... );
echo htmlspeialchars($login);
И все счастливы.
Если у вас будет время, напишите, пожалуйста, как бы Вы написали данный код. Мне просто интересно, посмотреть на правильно реализованный код.
Код писать лень, хотя я там выше в принципе его уже написал =) только вместо mysqli_real_escape_string в реальном коде я бы использовал подготовленные выражения (и PDO вместо mysqli, хотя тут наверное, дело вкуса).