Имеется функция отчистки переменной, в которой удаляются прjбелы по бокам а так же заменяются все спецсимволы для защиты от sql-атаки. Имеется форма входа на сайта с полями логин и пароль и скрытым полем которое присваивает значения переменной logout=1. Когда посылается запрос, скрипт проверяет наличие переменной logout. Если она есть, то запускается функция отчистки переменной и функция записи в БД.
Вопрос: функцию отчистки переменные нужно ставить ДО проверки существования переменной (if($_POST['logout'])) или ПОСЛЕ нее (как в приведенном ниже скрипте)?
<?php
if($_POST['logout'])
{
// подключаем скрипт отчистки переменных
include 'clean_field.php';
$login=clean_field($_POST['login']);
$pass=clean_field($_POST['pass']);
// подключаем скрипт записи и проверки БД
include 'insert_bd.php';
insert_bd($login, $pass);
}
// html форма входа
?>
<table>
<form action="index.php" method="post">
<input type="hidden" name="logout" value="1">
<tr><td>Логин:</td><td><input type="text" name="login" value="<?php echo $_POST['login']; ?>"></td></tr>
<tr><td>Пароль: </td><td><input type="password" name="pass" value="<?php echo $_POST['pass']; ?>"></td></tr>
<tr><td><br><input type="submit" value="Вход"></td><td> </form></td></tr>
</table>
И еще вопросы: оцените правильность с точки зрения стиля оформления скриптов. Все тут правильно?
Безопасно ли функцию записи и проверки в БД делать в отдельном файле (insert_bd.php)?
Спустя 11 минут, 48 секунд (24.04.2010 - 12:54) John_761 написал(а):
А чем не устраивает функция mysql_real_escape_string ?
"SELECT * FROM table WHERE login = '".mysql_real_escape_string($login)."'";
Спустя 14 минут, 15 секунд (24.04.2010 - 13:08) ak167 написал(а):
John_761, эта функция пробелы по бокам не удаляет!
Спустя 19 минут, 58 секунд (24.04.2010 - 13:28) John_761 написал(а):
Для удаления пробелов есть функция trim()
Спустя 8 минут, 5 секунд (24.04.2010 - 13:36) ak167 написал(а):
John_761, да это я все знаю. Меня интересует куда это ставить до if($_POST['logout']) или после?
И можно ли функцию коннекта и записи в БД выносить в отдельный файл? Как это выгладит с точки зрения безопасности?
И можно ли функцию коннекта и записи в БД выносить в отдельный файл? Как это выгладит с точки зрения безопасности?