Авторизация для доступа к БД через Web

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-19 15:40:11

echo $query - а смысл такого добавления???
ЗЫ - и главное... БД у меня - PostgreSQL, а не Мускуль... все таки функции разные.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-19 17:27:47

Код: Выделить всё

" . $_SERVER['PHP_AUTH_USER'] . "
Лис, где ты нашел этот пример с ТОЧКАМИ после двойных кавычек??? Без точек - не работает запрос и возврат значения для переменной... мля.. нигде нету инфы про тонкости ПэХэПэ... :-(

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-19 21:17:31

а какогонить pgsql_fetch_row у вас тама нету?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-20 16:18:12

а какогонить pgsql_fetch_row у вас тама нету?
Канечно есть... :-) ... Собственно вчера вечером я об этом и сам подумал. С ним работает
запрос нормально... Вот остаточный пример моего кода...

Код: Выделить всё

$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";
Таким "Макаром" - все работает правильно... и как я про него сразу не подумал...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-20 17:08:47

хе.. видимо как раз разница в БД...
а у меня на фронте php затишье - надоело код стругать. так, в сайте баги устраняю по мере необходимости, да кусками переписываю - у меня старый код (старше года) кривой местами - как умел так и лепил :) хотя функциональность новая всё равно появлется - добавл функцию отдельную для запросов, в неё встрои счётчик запросов, потом ещё таймер прилеплю - чтоб видно было на что больше времени ужодит на php или на MySQL...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-22 9:53:01

Возникает следующий вопрос... необходимо сделать простую поисковую форму - т.е. ПэХэПэ-скрипт должен генерировать html-страницу, на которой будет небольшое меню: строка ввода данных и кнопка для проведения процедуры выборки этих данных из БД. С ходу не вышло разобраться со следующим моментом - как передать в sql-запрос переменные, которые принимают на себя значение тех данных, которые пользователь ввел в поисковую форму???... Может вопрос и звучит несколько туманно, но я полагаю, что общая идея должна быть ясна... Надеюсь на дельный совет, камрады... :-)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-22 9:57:01

почитай про POST и GET
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-22 10:22:49

почитай про POST и GET
Конечно читал... однако пока - тупичок имеем... Хотя вот как я вижу решение этого вопроса - есть глобальные переменные типа - $_POST['name_product'] - это мне понятно. Но каким образом их "прикрутить" к html-ю? К примеру, кусок кода :

Код: Выделить всё

<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 ="find_client.php">
        <td colspan =2 align='center'>
        <input type = submit value ="Поиск клиента компании">
        </form>
        </tr>
После выполнения кода, браузер отобразит два окна для ввода информации и кнопку, которая будет активировать функцию поиска. Каким образом объявить глобальные переменные PHP в html-е??? И как увязать нажатие кнопки с выполнением sql-запроса к БД???

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-22 10:27:50

совет - найди самый простой скрипт на php - например отправка почты - такая формочка в ней письмо наборал, жмякнул субмит - тебе поздравления, письмо ушло.
там всё есть, и обычно кода немного - строк полсотни-сотня...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-22 10:41:51

Ок... так и сделаю...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-22 14:46:57

Однако, камрады, прошу помощи... перелопатил справочную литературу и статьи по моей теме - пока не вытянул для себя необходимой сути... Мне необходимо выполнить простой запрос в БД и извлечь результат запроса. Привожу кусок кода PHP (вы уж простите меня.... однако сам не могу догнать...) с коментами и ошибку - может чья-то светлая голова даст наводку, куда копать...

Код: Выделить всё

<?
//инклюдим файл globals.php, содержащий параметры подключени (пасс,юзер,база,хост)
        include ("globals.php");
//дальше идет кусок html-кода 
?>
<html>
<head>
<title>головная страница</title>
</head>
<body>
<table border align='center'>
<tr>
        <td align='center'><br>Информационно-справочная система<
        <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>
/*смущает меня идущая ниже строка - верно выбрана переменная для action?*/
        <form method = "post" action ="<?php echo $_SERVER['PHP_SELF']?>">
        <td colspan =2 align='center'>
        <input type = submit value ="Поиск клиента компании">
        </form>
</tr>
</tr>
</table>
<?
        //соединяемся с БД. Если нет соединения - сообщение об ошибке
        $connect=pg_connect("host=$host user=$user dbname=$dbname password=$password"
        or die ("<br>Нет соединения с базой данных: " . pg_last_error());
        //Выполняем запрос в БД на наличие записи в таблице "клиенты"
        $query="SELECT * FROM client where id='$id_client' or name='$name_client'";
        $result=pg_query($connect, $query);
        if (!$result){
                echo '<br>Запрос не выполнен.Ошибка: ' . pg_last_error();
                exit;
        }else{
        echo "<br>Ваш запрос выполнен.";
        }
        //Выдаем результат запроса на страницу - Вот это меня смущает тоже...
        $row=pg_fetch_row($result);
        if ($row > 0){
        echo "Имя компании-клиента: {$name_client}";
        echo "<br />\n";
        }
?>
</html>
А теперь ошибка которая у меня вываливается при запуске скрипта -

Код: Выделить всё

Warning: pg_query(): Query failed: ERROR: invalid input syntax for integer: "" in /usr/local/www/forum/find_client.php on line 37

Запрос не выполнен.Ошибка: ERROR: invalid input syntax for integer: ""
Строка №37 это -

Код: Выделить всё

$result=pg_query($connect, $query);
- но что это за предупреждение при запуске скрипта? Неверно размещенный синтаксис для целого???
Спасибо за поддержку... :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-22 14:49:55

х.з. :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
trubb
лейтенант
Сообщения: 865
Зарегистрирован: 2005-03-16 17:42:26
Откуда: сами мы не местные, приехали на лечение

Непрочитанное сообщение trubb » 2006-05-22 15:00:58

не знаю я пых-пых, но судя по всему поле id_client у тебя имеет тип данных числовой
а вводишь ты его текстом - в обычке должно быть где-то преобразование
иГрАюВсТрАйКбОл!

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-22 18:46:26

Привел код к следующему виду (очень сложно ориентироваться в статьях, учебниках и манах по PHP - слишком быстро все меняется, читаешь один первоисточник - пишут, нужно делать так. Читаешь другой - делать иначе, чем в первом..)

Код: Выделить всё

<?
   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>
<?
   if (isset($_POST['name'])||isset($_POST['id'])){
   //соединяемся с БД. Если нет соединения - сообщение об ошибке
   $connect=pg_connect("host=$host user=$user dbname=$dbname password=$password")
   or die ("<br>Нет соединения с базой данных: " . pg_last_error());
   //Выполняем запрос в БД на наличие записи клиента
   $query="SELECT * FROM client where id='".$_POST['id']."'
        or name='".$_POST['name']."'";
   $result=pg_exec($connect, $query);
//Далее была попытка запустить "дебагер" для sql-запроса. Попытка оказалось тщетной
//хотя все делал по-учебнику... :-(
   /*$result=pg_trace("/tmp/log_pg_query.log", w, $query);*/
   if (!$result){
      echo '<br>Запрос не выполнен.Ошибка: ' . pg_last_error();
      exit;
   }else{
   echo '<br>Ваш запрос выполнен.';
   }
   //Выдаем результат запроса
   $row=pg_numrow($result);
   for ($i=0; $i<$row; $i++){
   $array=pg_fetch_object($result, $i);
   echo "<br />\n";
   }
   }
?>
</body>
</html>
После перехода браузера на этот скрипт, сообщений об ошибках и предупреждений - нет. Интересно теперь вот что - выполняется запрос к БД или нет??? Ведь ответа от запроса - результата - я так же не наблюдаю.. Какие будут соображения камрады?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-22 21:20:56

Код: Выделить всё

echo "<br />\n"; 
а чё это ты такое интересное выдаёшь? переводы строки?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-24 9:06:02

"Немножко" победил я запросы... :-) ... фуууу мля.... если кто будет работать с PostgreSQL в связке с PHP - единственный вариант первоисточника - "Разработка Web-приложений на PHP и PostgreSQL" т Гешвинде и Шенинга... более никакой иной литературы относительно данной темы - просто нет. А лажа как всегда с типом переменных - пока еще не могу обработать запрос на извлечение данных из поля с типом "text", но числовые поля (serial, int , ETC) - запрос обрабатывает.... продолжаю работать далее...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-24 9:14:10

мда...
чем MySQL не устроил? :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-24 10:18:13

чем MySQL не устроил?
А кто говорил: "коммунисты не ищут легких путей"... :-)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-05-24 10:19:05

Я :)
Просто интересно - это обоснованный выбор? И если да - то чем...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2006-05-24 10:31:52

Мой выбор обоснованный.... прежде всего - PostgreSQL - это ОБЪЕКТНО-РЕЛЯЦИОННАЯ БАЗА ДАННЫХ.... в ней давно были реализованны кое-какие вещи, которые внесли только в 5-ю ветку "мускуля"... Да и вообще - это отдельная тема:"СЛОН против Мускуля"... От себя лично могу вот еще что сказать - когда я вообще заинтересовался БД (из разряда ОпенСорс), то когда поставил Слона, был приятно удивлен автодоплнением в консольном клиенте "слона", а потом ставил мускуль - хм... в его консольном клиенте не было автодополнения sql-команд... Но это было уже давно :-) и не является основной причиной выбора... Да и если слышал, 1-Ску тоже собираются переносить на БД "опен-сорс" - и выбор именно Постгрес...