Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> logowanie do bazy bez nazwy user'a
sbs2005
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.06.2011

Ostrzeżenie: (0%)
-----


Witam serdecznie.

Przegladalem caly dzial dotyczacy Postgresa.
Otoz borykam sie z tym od kilku dni i jestem w kropce.
Przejalem obsluge psql po adminie, ktory korzystal z cgi i c++ do obslugi bazy.
Ja natomiast chcialbym troche to zrobic po swojemu no i jest problem.
W c++ by polaczyc sie z okreslona baza wykorzystuje sie polecenie mag.connect, po tym okresla sie zmienna user i haslo. Po wpisaniu okreslonego user'a jak i hasla w formularzu logowania nastepuje polaczenie z okreslona baza. (Baza psql posiada zapisanych w "pg_user" okolo 10 uzytkownikow).
Z tego co wyczytalem w necie przy php nie ma takiej mozliwosci - musze utworzyc dodatkowa baze uzytkownikow i korzystajac z niej logowac sie do bazy przez www.
Czy moje rozumowanie jest prawidlowe, jezeli tak to troche bez sensu tworzyc dodatkowa baze uzytkownikow, jezeli sam psql przechowuje te informacje w swoich zasobach.
Pomimo, ze funkcja pg_connect pozwala stosowac zmienne odnosnie uzytkownika i hasla to jednak nie pozwala dostac sie bezposrednio do zapisanych w psql'u uzytkownikow. Prosze o rozwianie moich watpliwosci.

Pozdrawiam
Jacek

ps. klawiatura bez polskich znakow

Ten post edytował sbs2005 16.06.2011, 18:24:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sbs2005
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.06.2011

Ostrzeżenie: (0%)
-----


A wiec podaje rozwiazanie mojego problemu (IMG:style_emoticons/default/smile.gif)
Opis problemu: Logowanie do bazy bez dodatkowej tabeli USERS - w wielu periodykach/ksiazkach znajdziemy przyklady oparte o dodatkowa tabele/baze user. Baza pracuje w Intranecie, bez dostepu z zewnatrz do niej. Osoby obslugujace bazy w wieku dojrzalym i swiadomosci obslugi systemu - na zasadzie - tu prosze kliknac - jezeli cos nie dziala wzywamy informatyka bo cos sie wyswietlilo (IMG:style_emoticons/default/smile.gif)
Jezeli ktos ze chce przerobic na mysql to nalezy pozmieniac okreslone polecenia.

Najwazniejsze - jak koledzy wspominali - nalezy miec swiadomosc ze bezposredni dostep do bazy musi byc okreslony szczegolowymi uprawnieniami dla user'ow w tablicach systemowych pg_user (nie wiem jak jest w mysql). A wiec do dziela:

plik: login.php
  1. <?php
  2.  
  3. $host="localhost"; //nazwa host'a gdzie jest polozona dzialajaca baza psql
  4. $login=$_POST['login']; //zmienna login uzyskana z wprowadzanych wartosci w formularzu logowania
  5. $haslo=$_POST['haslo']; //j.w.
  6. $dbname="nazwa_bazy"; //nazwa bazy z ktora chcemy sie polaczyc
  7.  
  8. if (isset($_POST['loguj']))
  9. {
  10. $link=@pg_connect("host=$host user=$login password=$haslo dbname=$dbname");
  11. if (!$link)
  12. {
  13. $_SESSION['komunikat'] = "Wprowadź poprawną nazwę użytkownika i hasło:";
  14. header("location:error.php");
  15. exit();
  16. }
  17. else
  18. {
  19. $_SESSION['zalogowany'] = $_POST['login'];
  20. header("location:chroniona.php");
  21. exit();
  22. }
  23. }
  24. ?>


formularz logowania: index.php
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <title>Logowanie do bazy</title>
  3. </head>
  4. <?php
  5. if(isSet($_SESSION['komunikat']))
  6. echo $_SESSION['komunikat'];
  7. else
  8. echo "Wprowadź nazwę użytkownika i hasło:";
  9. ?>
  10.  
  11. <form method="POST" action="login.php" >
  12. <b>Nazwa użytkownika:</b>
  13. <br>
  14. <input type="text" name="login"><br>
  15. <b>Hasło:</b><br>
  16. <input type="password" name="haslo"><br><br>
  17. <input type="submit" value="loguj" name="loguj">
  18. </form>
  19. </body>
  20. </html>


gdy uzytkownik i haslo sie zgadzaja: chroniona.php
  1. <?php
  2. session_start();
  3. if(!isSet($_SESSION['zalogowany']))
  4. {
  5. $_SESSION['komunikat'] = "Nie jestes zalogowany!";
  6. include('index.php');
  7. exit();
  8. }
  9. ?>
  10.  
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  12. </head>
  13. Jesteś zalogowany jako: <?php echo $_SESSION['zalogowany'] ?><br>
  14. Tutaj mają dostęp tylko najlepsi!! (IMG:style_emoticons/default/biggrin.gif) <br>
  15. <a href="logout.php">Wylogowanie</a>
  16. </body>
  17. </html>


strona wylogowania i zamkniecia sesji: logout.php
  1. <?php
  2. session_start();
  3. if(!isSet($_SESSION['zalogowany']))
  4. {
  5. $komunikat = "Nie byłeś zalogowany!";
  6. }
  7. else
  8. {
  9. unset($_SESSION['zalogowany']);
  10. $komunikat = "Wylogowanie prawidłowe!";
  11. }
  12. session_destroy();
  13. ?>
  14.  
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  16. </head>
  17. <?php echo $komunikat ?>
  18. <p><a href="index.php">Powrót do strony glównej</a></p>
  19. </body>
  20. </html>


jezeli wprowadzisz zle - uzytkownika lub haslo: error.php
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <title>Zły login</title>
  3. </head>
  4. <body>
  5. <p>"Nieprawidłowa nazwa użytkownika lub hasło"</p>
  6. <p><a href="index.php">Powrót do strony głównej</a></p>
  7. </body>
  8. </html>


to na tyle - jezeli ktos ma jakies pytania to smialo pytac
pzdr
Jacek

Ten post edytował sbs2005 24.06.2011, 09:49:56
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 06:15