Способ подключения к БД Постгрес при помощи вэб-интерфейса

proxy-man

Новичок
Способ подключения к БД Постгрес при помощи вэб-интерфейса

Привет. Внимательно просмотрел темы на этом форуме, воспользовался поиском и "пошуршал" на google - ответа для себя не нашел. А вопрос мой такой - каким образом идентифицировать пользователя при помощи средств PHP и PostgreSQL? Если конкрентно, то необходимо организовать доступ к БД при помощи вэб-а, при этом аутенфикация пользователя должна проходить при помощи проверки имеющихся учетных записей, которые хранятся в БД в таблице users или passwd (название роли не играет). Каким образом это реализуется? Буду благодарен за линки.... :)
 

Alexandre

PHPПенсионер
в поиск по форуму
БД Постгрес или мускул - значение не имеет, аутенфикация - она и в африке аутенфикация
 

proxy-man

Новичок
PHP:
<? 
//происходит активация формы для ввода логина и пароля 
  if(!isset($name)&&!isset($password)) 
  { 
  header('WWW-Authenticate: Basic realm="Input login and password"'); 
  header('HTTP/1.0 401 Unauthorized'); 
  echo 'Текст, отправляемый в том случае, 
  если пользователь нажал кнопку Cancel'; 
  exit; 
  }else{ 
//подключаемся к БД используя указанные ниже параметры 
  $dbconn = pg_connect("host=localhost user=keeper dbname=test password=qwerty" 
//проверяем статус соединения - если все ок -   'Connection status ok' 
//если коннекта нет - 'Connection status bad' 
  $stat = pg_connection_status($dbconn); 
  if ($stat === PGSQL_CONNECTION_OK) { 
      echo 'Connection status ok'; 
  }else{ 
      echo 'Connection status bad'; 
  } 
//строим запрос для проверки введенного имени и пароля. Запрос проверяет наличие 
//правильной строки - если значение строки нулевое - записи для пользователя в БД - 
//отсутствует и следовательно в подключении будет отказано 
  $query = "select count(*) from passwd where 
                login='$name' and passwd='$password'"; 
//собственно выполняем сам запрос и проверяем его правильность 
  $result = pg_query($query); 
  if (!$result) 
  { 
  echo "ERROR\n"; 
  exit; 
  } 
//согласно мануала функция pg_query возвращает "pg_result_status --  Get status of query //result", а в нашем случае запрос передает в возвращаемую функцию pg_result_status 
//или ноль (если записи нет) или единицу (если есть запись в таблице) 
  $count = pg_result_status($result); 
  if ($count > 0) 
  { 
   echo 'Login complite.<br>\n'; 
  }else{ 
  echo 'WRONG'; 
  } 
} 
?>
Камрады, подкоректируйте вариант авторизации... где-то есть грабля... не работает...
БД - Постгрес...
 

Фанат

oncle terrible
Команда форума
разбей свою задачу на подзадачи.
сначала задай имя и пароль в ручную и с ними попробуй работать с бд.
потом потренируйся с одной только авторизацией отдельно, повыводи логин с паролем на экран.
код, кстати, надо брать ИЗ МАНУАЛА.

потом, когда отработаешь обе части - соединяй их.
 

Фанат

oncle terrible
Команда форума
понять так, что если ты берёшь откуда-то код, чтобы вставить в свой скрипт, то брать его надо, по возможности, из официальной документации
 

proxy-man

Новичок
$count=pg_fetch_row($result);
if ($count > 0)
{
echo "Login OK.<br>\n";
echo "Your name is {$_SERVER['PHP_AUTH_USER']}.";
}else{
echo "Login wrong.\n";

Таким макаром я проверил наличие в БД записи для пользователя... Все вышло... Спасибо
 

proxy-man

Новичок
Возник следующий вопрос - необходимо создать простой запрос в БД, который будет выполняться при помощий небольшой html-формы. Т.е. на странице будет отображаться поле для ввода запроса и кнопка 'submit', нажав которую, пользователь выполнит сам запрос к БД и получит результат на странице браузера. Что меня смущает:
1. правильно обработать (объявить и инициализировать) переменные, которые задаются в html-форме - пролистал доки по PHP и прошелся по форуму - :-( не уловил еще сути...?
2. как увязать выполнение запроса или вернее сказать - его запуск - с кнопкой 'submit', которая будет находится на html-форме?
ЗЫ - прошу понять меня верно и дать направление для последующего движения в плане изучения PHP. :)
 

Фанат

oncle terrible
Команда форума
1. правильно обработать (объявить и инициализировать) переменные, которые задаются в html-форме
http://php5.ru/study/forms
как увязать выполнение запроса или вернее сказать - его запуск - с кнопкой 'submit', которая будет находится на html-форме?
увязывать надо не с кнопкой, а с параметром action в форме.
в котором пишешь имя скрипта, который выводит
 

proxy-man

Новичок
Пусть модераторы и меня поругають... но осмелюсь еще раз выложить кусок кода (html-код) моего скрипта. Еще раз -
пожалуйста, прошу меня подправить и указать на мои ошибки. Указанные линки про формы - изучил

<?
include ("globals.php");
?>
<html>
<head>
<title>головная страница</title>
</head>
<body>
<table border align='center'>
<tr>
<td align='center'><br>Информационно-справочная система"</td>
<br>
</tr>
<table border=1 align='left'>
<tr>
<tr>
<th> Название компании </th>
<td><input type="text" name="name_client"></td>
</tr>
<th> ID-номер компании </th>
<td><input type="text" name="id_client"></td>
</tr>
<tr>
<form method = "post" action ="<?php echo $_SERVER['PHP_SELF']?>">
<td colspan =2 align='center'>
<input type = submit value ="Поиск клиента компании">
</form>
</tr>
</tr>
</table>
 

Фанат

oncle terrible
Команда форума
скажи, мил человек, ты когда таблицу пишешь - тоже так делаешь:
<tr>
<td align='center'><br>Информационно-справочная система"</td>
<br>
</tr>
<table border=1 align='left'>
<tr>
<tr>
<th> Название компании </th>
<td><input type="text" name="name_client"></td>
</tr>
<table border align='center'>
</table>
 

proxy-man

Новичок
Автор оригинала: Фанат
скажи, мил человек, ты когда таблицу пишешь - тоже так делаешь:
<tr>
<td align='center'><br>Информационно-справочная система"</td>
<br>
</tr>
<table border=1 align='left'>
<tr>
<tr>
<th> Название компании </th>
<td><input type="text" name="name_client"></td>
</tr>
<table border align='center'>
</table>
Прошу прощения - не понял сути про "когда таблицу пишешь".... если я где-то и ошибся - может и такое быть, я учусь еще... Если у меня возникают трудности, которые самостоятельно осилить не могу, я полагаю ,правильным будет проконсультироваться у более опытных людей... Или я и здесь ошибаюсь?
 

Фанат

oncle terrible
Команда форума
ты когда таблицу делаешь - тоже сначала пишешь
<tr><td align='center'></td></tr>

а потом -

<table border align='center'></table>

?
или, всё же, пишешь строки таблицы ВНУТРИ таблицы?
 

proxy-man

Новичок
Автор оригинала: Фанат

или, всё же, пишешь строки таблицы ВНУТРИ таблицы?
Пишу строки ВНУТРИ таблицы... а этот вариант не очень удачный в плане "чистоты" html-кода. Но разве это влияет на правильность выполнения запроса к БД?
 

Фанат

oncle terrible
Команда форума
ПРИЧЁМ ЗДЕСЬ ЗАПРОС???
Если ты таблицу пишешь по-человечески, то ФОРМУ почему по-марсиански?!
почему элементы формы не внутри формы?
 

proxy-man

Новичок
Автор оригинала: Фанат
ПРИЧЁМ ЗДЕСЬ ЗАПРОС???
Если ты таблицу пишешь по-человечески, то ФОРМУ почему по-марсиански?!
почему элементы формы не внутри формы?
Смиренно прошу прощения за то, что я разъярил вас, но я полагаюсь на ваше терпение, если вы конечно согласны продолжать со мной диалог. Образец данного кода взят мною из довольно распространенного учебного пособия: "Лаура Томсон и ЛюкВеллинг -
РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ НА РНР и MySQL". Еще раз прошу прощения, но меня интересует суть проблемы - т.е. если я вас верно понял, запрос к БД не будет выполнен, пока не будет исправлена ФОРМА в html-коде скрипта? Спасибо. :)
 

Фанат

oncle terrible
Команда форума
Образец данного кода взят мною из довольно распространенного учебного пособия:
пупсик.
я тебе, кажется, давал ссылку.
и ссылка эта была - отнюдь не на распространённое учебное пособие от идиотки Лпуры томпсон и дауна Люка веллинга.

Скажи, ты ходил по этой ссылке? Если ходил, то почему код не оттуда? Если не ходил, то зачем ты вообще задаёшь здесь вопросы, если не читаешь ответы на них?
 

proxy-man

Новичок
Фанат
Конечно ходил по ссылке... и еще раз иду по ней... если я верно понимаю - запрос к БД прямо связан с правильностью реализации ФОРМЫ?
 

Фанат

oncle terrible
Команда форума
откуда я знаю?
скорее всего, что в запросе у тебя написан такой же бред, что и в форме.
поэтому научись сначала работать с формами, а потом переходи к запросам.

-~{}~ 23.05.06 11:27:

почитай-ка, пожалуй, сначала вот это: PHP FAQ: Самые основы. Как работает PHP.
а то, похоже, у тебя форма составляет одно целое с запросом.
 
Сверху