Глядя на ваш код, все, что вам действительно нужно, это:
$myvar = !empty($_GET['myvar']) ? $_GET['myvar'] : '';
Помимо этого, PHP автоматически декодирует URL. Лично я предпочитаю делать htmlentities()
или htmlspecialchars()
, когда я иду к выводу данных, т.е.
<?php echo htmlentities($mydata); ?>
Единственный раз, когда вам конкретно нужно экранировать или дезинфицировать данные, это если вы создаете запрос SQL:
$data = mysql_real_escape_string($mydata);
$query = "SELECT * FROM table WHERE stuff = '$mydata'";
Это предотвратит внедрение SQL. Если вы не форматируете пользовательский ввод или не выполняете проверку, нет необходимости выполнять другие виды очистки.
Надеюсь, это поможет!