Люди добрые помогите новичку!!! Имеется БД MSSQL 2000. Пытаюсь создать авторизацию! таблица с логинами и паролем находится в БД MSSQL 2000. Беру код с mysql и подредактировал! но когда запускаю авторизация не происходит! и запрашивает по новому ввести Помогите! пожалуйста! <?php include("bd.php"); if (!isset($_SERVER['PHP_AUTH_USER'])) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } else { if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mssql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mssql_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'"; $lst = @mssql_query($query); if (!$lst) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } if (mssql_num_rows($lst) == 0) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } $pass = @mssql_fetch_array($lst); if ($_SERVER['PHP_AUTH_PW']!= $pass['pass']) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } } ?>
Попробуйте поменять этот блок кода: PHP: if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mssql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mssql_escape_string($_SERVER['PHP_AUTH_PW']); } на этот: PHP: $_SERVER['PHP_AUTH_USER'] = str_replace("'", "''", $_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = str_replace("'", "''", $_SERVER['PHP_AUTH_PW']);
Включите вывод ошибок, чтоб всё было наглядно. А там и выяснится в чём загвоздка. А то что я дал - другой вид экранирования, т.к. ф-ции mssql_escapse_string не существует и экранирование производится апострофом.
А не подскажете как включить вывод ошибок!? простите за глупые вопросы может быть! не давно только начал разбираться с PHP
Включил! Теперь пишет!!!! Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\sql\form.php:4) in z:\home\localhost\www\sql\lock.php on line 6 Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\sql\form.php:4) in z:\home\localhost\www\sql\lock.php on line 7
От блин извеняюсь! вот полній код: <?php include ("lock.php") ?>; 4 строка!!!!! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Форма</title> <head> </form> <body> <form action="mssql_insert.php" method="post" name="form1" target="_blank"> <p>Введите имя: <br><input name="name" type="text" size="20"></p> <p>Введите фамилию: <br><input name="lastname" type="text" size="20"></p> <p><input name="submit" type="submit" value="ОТПРАВИТЬ!"> </p> </body> </html> [/b]