За последние 24 часа нас посетил 17491 программист и 1711 роботов. Сейчас ищут 1599 программистов ...

Проблема при создание админки

Тема в разделе "MSSQL", создана пользователем zver, 31 авг 2010.

  1. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    Люди добрые помогите новичку!!! Имеется БД 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();
    }


    }




    ?>
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Попробуйте поменять этот блок кода:
    PHP:
    1. $_SERVER['PHP_AUTH_USER'] = mssql_escape_string($_SERVER['PHP_AUTH_USER']);
    2. $_SERVER['PHP_AUTH_PW'] = mssql_escape_string($_SERVER['PHP_AUTH_PW']);
    3. }
    на этот:
    PHP:
    1.  
    2. $_SERVER['PHP_AUTH_USER'] = str_replace("'", "''", $_SERVER['PHP_AUTH_USER']);
    3. $_SERVER['PHP_AUTH_PW'] = str_replace("'", "''", $_SERVER['PHP_AUTH_PW']);
    4.  
     
  3. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    К сожалению не помогло!(((( Снова запрашивает! Это что то с экранированием!?
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Включите вывод ошибок, чтоб всё было наглядно. А там и выяснится в чём загвоздка. А то что я дал - другой вид экранирования, т.к. ф-ции mssql_escapse_string не существует и экранирование производится апострофом.
     
  5. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    А не подскажете как включить вывод ошибок!? простите за глупые вопросы может быть! не давно только начал разбираться с PHP
     
  6. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    Включил! Теперь пишет!!!!

    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
     
  7. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    И что же написано в этом файле на этих строках?
     
  8. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    Header ("HTTP/1.0 401 Unauthorized");
     
  9. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Я про:

    z:\home\localhost\www\sql\form.php
    4 строка
     
  10. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    От блин извеняюсь!

    вот полній код:


    <?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]
     
  11. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    попробуйте добавить в самом начале этого файла <?php ob_start(); ?>
     
  12. zver

    zver Активный пользователь

    С нами с:
    31 авг 2010
    Сообщения:
    16
    Симпатии:
    0
    Не виходит(((