Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autoryzacja php+MySQL
Forum PHP.pl > Forum > Przedszkole
spootnik
Witam, dzięki pomocy na forum skonstrułowałem juz na moim serwisie zarządzanie menu. Następnym krokiem jaki chciałbym wykonać a zabardzo nie wiem jak sie za to zabrać jest system autoryzacji. prtzeglądając forum znalazłem troche gotowych skryptów do wykorzystania z systemem logowania itd, jednak chciałbym napisać to samemu żeby to zrozumieć. do dyspozycji mam serwer z php i obsługą bazy danych mysql więc postanowiłem pokusić się o system autoryzacji na stronie. Teraz pytanie, jak je zrobić ? mam utworzoną bazę danych w php MyAdmin stworzyłem tabele ale trzeba tam mnóstwo rzeczy wpisać odnoście pół w tabeli mimo tego ze są tylko dwa pola :] baza userków to będzie tylko nazwa usera i jego hasło można to w php zrobić żeby mi taką tabele utworzyło jak powienienem zacząć tworzenie swojego systemu ? wszyscy chcą na forum w zasadzie gotowe skrypty a mi jednak chodzi o samą idee jak to ma wyglądać, jak sie zabrać za to, czyli ogólnie z czym to sie je. Po co mi gotowy skrypt którego nie będe rozumiał... chciałbym sie nauczyć... może macie jakieś kursy odnośnie problemu autoryzacji ? informacje jak utworzyć baze itd to znajde, tylko jak sie za to zabrać od czego zacząć
revyag
Idea smile.gif

1.html
Strona logowania:
formularz z dwoma inputami: username i userpass oraz buttonem zaloguj snitch.gif

2. mysql
Tabela:

id | username | userpass

userpass ustawiasz żeby było kodowane/hashowane czy jak tam sobie wymyślisz (md5,sha,password)

3. php

W momencie naciśnięcia buttona w formularzu logowania, robisz zapytanie do bazy, pobierasz nazwę usera, na podstawie danych z formularza, jeśli user nie ma to przekierowanie z powrotem do strony logowania.
Jako mechanizm przekazywania danych wybierasz sesje.
adeq_PL
Fajnie ze trafilem wlansie na taki post poniewaz mam problem z sesjami. Tzn mam panel logowaniaskladajacy sie z dwoch plikow logowanie.php i admin.php.

admin.php:
  1. <?php 
  2. include_once('katalog/logowanie.php');
  3.  
  4.  
  5.  if($_SESSION['logadm'] == 'ok') {
  6.  
  7.  } 
  8.  
  9.  else {
  10.  
  11.  echo '<br><br><table align=center width="350" class=top border="0" cellpadding="0" cellspacing="0">
  12.  <tr>
  13.  <td valign="top">
  14.  <img align="top" src="pliki/dot.gif" cellpadding="0" cellspacing="0" border="0"></td><td valign="center">
  15.  <p align="left" class=title><b>Witaj w panelu administracyjnym - zaloguj się <BR>aby uzyskać pełen dostęp do serwisu</b></p></td></tr></table>
  16.  <table align=center width="350" class=botton border="0" cellpadding="0" cellspacing="0">';
  17.  
  18.  
  19.  }
  20.  
  21.  echo logadm();
  22.  
  23. ?>


logowanie.php:
  1. <?php
  2.  
  3. if(!isset($_SESSION['logadm'])) { 
  4. $_SESSION['logadm'] = ''; 
  5. } 
  6.  
  7. include('conf_adm.php');
  8. include('kalendarz.php');
  9.  
  10. if(isset($_POST['login']) AND isset($_POST['pass'])) {
  11.  
  12. $name = strtolower($_POST['login']); 
  13. $pass = md5($_POST['pass']); 
  14.  
  15.  $dane = mysql_query("SELECT 'login' AND 'password' FROM `admin` WHERE `login`='".$name."' AND `password`='".$pass."';"); 
  16.  
  17. if(mysql_num_rows($dane) == 1) {
  18. $_SESSION['logadm'] = 'ok';
  19. } 
  20. else {
  21. $_SESSION['logadm'] = '<P class=blad>Błędny login lub hasło!';
  22. }
  23.  
  24. unset($_POST['logadm']);
  25. }
  26.  
  27.  
  28. if(isset($_POST['unlogadm'])) {
  29.  
  30. unset($_SESSION['logadm']);
  31.  
  32. unset($_POST['unlogadm']);
  33.  
  34. }
  35.  
  36.  
  37. function logadm() {
  38.  
  39.  
  40. if($_SESSION['logadm'] == 'ok') {
  41.  
  42. echo '
  43.  <table align=center class=main cellpadding="0" cellspacing="0"><tr><td bgcolor="#EEF8FF" align=left> 
  44.  <p class=normal><b>&nbsp;&nbsp;Witaj: '.$_POST['login'].' - </b><i>godz:'; 
  45.  echo godzina();
  46.  echo ', dnia: ';
  47.  echo data(); 
  48.  echo ', imieniny: ';
  49.  echo imieniny(); 
  50.  echo '</i></p></td>
  51.  <td bgcolor="#EEF8FF" align=right><p class=normal><i>po zakończeniu pracy <a name="unlogadm"
  52.  href='.getenv(REQUEST_URI).'>wyloguj się</a>&nbsp;</i>
  53.  </td></tr></table>
  54.  
  55.  <table align=left class=main cellpadding="0" cellspacing="0"><tr><td align=center>
  56.  <form class="gora" action="zwiedz_adm.php" method="post"> 
  57.  
  58.  <table align="left" width="138" cellpadding="0" cellspacing="0"><tr>
  59.  <td background="pliki/table-title.gif" width="138" height="20">
  60.  <P class="menu-title"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aktualności:</b>
  61.  </td></tr></table>
  62.  
  63.  <input class="gora" name="str_gl" type="submit" value="Strona Główna">
  64.  <input class="gora" name="przegl_edyt" type="submit" value="Przeglądaj / Edytuj">
  65.  <input class="gora" name="dod_wiersz" type="submit" value="Dodaj wiersz">
  66.  <input class="gora" name="us_wiersz" type="submit" value="Usuń wiersz">
  67.  <input class="gora" name="wyszuk" type="submit" value="Wyszukaj">
  68.  </td></tr></table>
  69.  
  70.  
  71.  
  72. </td></tr><tr><td>
  73.  
  74.  
  75.  <table align=left class=main cellpadding="0" cellspacing="0"><tr><td valign=top>';
  76.  
  77. include("menu_adm.php");
  78.  
  79. echo'</td><td valign=top>
  80.  
  81. <table align="left" cellpadding="4" cellspacing="0"><tr><td>';
  82.  
  83.  
  84.  if(isset($_POST['przegl_edyt'])) {
  85.  include('show_zwiedz_adm.php');
  86.  echo tresc(); }
  87.  
  88.  else if(isset($_POST['aktualnosci2'])) {
  89.  include('aktualnosci2_adm.php');
  90.  echo tresc(); }
  91.  
  92.  else{
  93.  echo'aaa';}
  94.  
  95.  
  96.  echo '</td></tr></table>
  97.  
  98. </td></tr></table>';
  99.  
  100.  
  101. } 
  102.  
  103. else {
  104.  echo '<TR ALIGN=CENTER><TD><BR><form action="'.getenv(REQUEST_URI).'" method="post">
  105.  <ul style="list-style-type: none; margin: 0; padding: 0;">';  
  106.  
  107. if(isset($_SESSION['logadm']))
  108.  
  109.  echo '<li>'.$_SESSION['logadm'].'</li>
  110. <li><P class=normal>Login: <input type="text" name="login" style="width: 130px"/></li>
  111. <li><P class=normal>Haslo: <input type="password" name="pass" style="width: 130px"/></P></li>
  112. <li><input type="submit" name="logadm" value="Logowanie" /></li></ul>
  113.  </form></TD></TR>';
  114.  
  115.  
  116.  }
  117.  
  118. }
  119.  
  120. ?>


Jesli chodzi o te dwa pliki wszystko chodzi ok, ale ja chce do tego panelu podpiac jeszcze ok 25 innych plikow, ktore wchodza w sklad panelu administracyjnego i nie wiem jak mam to zrobic. mam juz caly panel administracyjny i zostalo mi tylko to logowanie.... pomozcie please :roll2:
spootnik
a mam pytanko, gdzie zamieściłęś instrukcje odnośnie tworzenia bazy itd ? trzeba ją samemu utworzyć ? przecie skrypt może ją utworzyć tabele z polami, ale teraz ten skrypt wczytany drugi raz będzie tworzył jesczze raz tą tabele ? czy poprostu sotawi ją w spokoju i przejdzie do dalszej części skryptu ?
adeq_PL
Bazy danych i tabele tworzy sie za pomoca osobnego pliku lub za pomoca phpmyadmin (ja korzystam z niego). W moim skryptach nie ma instrukcji tworzenia tabel tylko wyciagania z nich danych. Jesli uzyjesz dwa razy tego zamego skryptu do tworzenia tabel to prawdopodobnie wyrzuci komunikat (nie jestem pewny).
spootnik
A jak powinna wyglądać odpowiednio skonfigurowana tabela z polami na ID usera i hasło ? są zapewne obowiązkowe wartości pól do zdefiniowania jak i takie parametry bez których się obejdzie questionmark.gif
revyag
@spootnik:
Przykładowa tabela 3 kolumnowa:
id | username | userpass

Pole id ustawiasz jako INT, dodatkowo wybierasz aby było auto_increment i zaznaczasz je jako podstawowy.
username to varchar, tak samo jak userpass.
Bardzo łatwo robi się to w phpmyadmin.

@adeq_PL - logowanie odseparuj od reszty panelu. Skrypt waliduje dane, jeśli są poprawne to robisz przekierowanie do panelu, jeśli nie to powrót na stronę logowania, tyle.
adeq_PL
revyag baaardzo mi pomogles, wlasnie takiej odpowiedzi oczekiwalem winksmiley.jpg, ale mam jeszcze jedno pytanie czy skrypt odseparowany od panelu logowania jest bezpieczny, każdy bedzie mogl wejsc do niego wpisujac odpowiedni adres URL....
spootnik
ok, mam jest ok winksmiley.jpg a teraz do czego będzie mi służyło pole ID ? pisze jeszcze że musze utworzyć indexy po co one są ?
spootnik
napisałem coś takiego:
  1. <FORM METHOD="POST" ACTION="dodaj.php">
  2. <INPUT TYPE="text" NAME="login">&nbsp;&nbsp;
  3. <INPUT TYPE="text" NAME="haslo">&nbsp;
  4. <INPUT TYPE="submit" value="Dodaj">
  5.  
  6. </FORM>

Plik dodaj.php:
  1. <?
  2. mysql_connect (mysql.yoyo.pl, xxlogin, xxhaslo);
  3. $polacz = mysql_connect (mysql.yoyo.pl, xxlogin, xxhaslo);
  4. $dodaj = "INSERT INTO users_DB VALUES($login, $haslo)";
  5. mysql_close($polacz);
  6. ?>


Co tu jest nie tak ? żadnego błędu mi nie zwraca a do bazy i tak nic nie jest dodane :/
Michasko
~spootnik:

Popsułeś zapytanie:
  1. <?php
  2. $dodaj = "INSERT INTO users_DB VALUES($login, $haslo)";
  3. ?>


powinno raczej być smile.gif:

  1. <?php
  2. $dodaj = "INSERT INTO users_DB (nazwa_pola_1, nazwa_pola_2) VALUES($login, $haslo)";
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.