Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Logowanie
Forum PHP.pl > Forum > Przedszkole
Korson
Wiem że to już było... przeczytałem wszystko co znalazłem na forum ale jakoś tego nie załapałem :/ ma zrobiony formularz i sprawdzanie hasła i loginu... tylko co należy zrobić gdzy cała czyność przejdzie ok :?:

Chodzi mi o to w którym momęcie mam uruchomić sesje i jak to zrobić :?:

z góry dzięki za pomoc smile.gif
strife
Na początku strony dajesz session_start" title="Zobacz w manualu php" target="_manual, a potem już prosto sprawdzasz czy dane zostały poprawie wpisane instrukcją warunkową i dodajesz odpowiednią sesję, która będzie odpowiadała zalogowaniu na stronie.
  1. <?php
  2. $_SESSION['auth'] = '1';
  3. ?>

Następnie sprawdzasz czy dana zmienna sesyjna istnieje ( isset" title="Zobacz w manualu php" target="_manual ), i wtedy odpowiednio ograniczasz dostęp do strony etc. Taki mały zarys może wyglądać tak ( bez formularza ):

Login.php
  1. <?php
  2. if ( $_POST['login'] == 'przykladowy_login' && $_POST['password'] == 'przykladowe_haslo' )
  3. {
  4. $_SESSION['auth'] = '1';
  5. }
  6. else
  7. {
  8. echo 'Podales zle haslo badz login!';
  9. }
  10. // ponizej formularz
  11. ?>

Pamiętaj, aby na każdej innej stronie przed sprawdzaniem czy dana zmienna sesyjna istnieje dodać session_start" title="Zobacz w manualu php" target="_manual ( jeżeli automatyczne startowanie sesji jest wyłączone ).

Przykładowa tajna strona.
Secret.php
  1. <?php
  2. if ( isset ( $_SESSION['auth'] ) )
  3. {
  4. echo 'masz dostep';
  5. }
  6. else
  7. {
  8. echo 'dostep zabroniony';
  9. }
  10. ?>

Do tej strony mają dostęp osoby, które wcześniej się zalogują na Login.php. Mam nadzieję, że trochę Ci rozjaśniłem.
Korson
Dzięki bardzo :-) nareszcie zaczaiłem jedz działają te sesje :-) co ja bym poczoł bez tego forum

Jeszcze raz dzięki... bardzo mi pomogłeś ":-*"
Gość_poczatkujacy_*
ja zas dalej nie moge sobie poradzic...

Oto kod pliku z logowaniem:
  1. <form method="post" action="index1.php">
  2. Login : <input type="text" name="login"><br />
  3. Hasło : <input type="password" name="password"><br />
  4. <input type="submit" value="zaloguj sie">
  5. </form>

  1. <?php
  2.  
  3. if ( ! empty( $_POST['login'] ) && ! empty( $_POST['password'] ) )
  4. {
  5. if ( $_POST['login'] == 'admin' && $_POST['password'] == 'admin' )
  6. {
  7. $_SESSION['auth'] = '1';
  8. }
  9. else
  10. {
  11. echo 'Podales zly login badz haslo!';
  12. }
  13. }
  14. else
  15. {
  16. echo 'Wprowadz dane';
  17. }
  18. ?>


A oto zastrzezony

  1. <?php
  2. if (isset( $_SESSION['auth']))
  3. {
  4. echo 'Zalogowany';
  5. }
  6. else
  7. {
  8. echo 'dostep zabroniony';
  9. }
  10. ?>


Ciagle wyskakuje, ze dostep zabroniony...

Juz nprawde nie wiem w czym rzecz. Mam nadzieje, ze ktos bedzie w stanie znalezc jakis blad
strife
Z pliku Login.php w prezentowanej przezemnie wersji wykasowałeś session_start" title="Zobacz w manualu php" target="_manual. Sprawdź czy miałem rację winksmiley.jpg

Jak będziesz miał jeszcze problemy to zobacz tematy w mojej sygnaturze.
boddah85
faktycznie, zabraklo mi tam tej funckji, ale i tak po tej modyfikacji skrypt nie chcial pojsc. Zmienilem go jednak troche i wszystko gralo, a przynajmnjiej tak mi sie wydawalo.

Pojawil sie bowiem kolejny problem - gdy dodaje(edytuje) cos do bazy, to na stronie nie widac zaaktualizowanych wynikow! Czasami pomaga odswiezanie, czasami wylogowanie, ale niekiedy na stronie mimo to ciagle widnieja stare wyniki(to nie problem z baza dancyh, bo sprawdzalem..., zreszta wyrzucilem na rpobe sesje i wtedy zadnego problemu nie bylo).

Bede wdzieczny za pomoc
Lonas
Wklej kod

Edit : jeżeli są to 2 pliki - np formularz.htm i akcja.php

to update bazy będziesz widział po odświeżeniu .. czyli wypełnisz formularz - dane zostają odświeżone w bazie - wracasz na pokaż_dane - i po odświeżeneniu powinny być nowe ..


chyba że zrobisz to w javascript że po update strona automatycznie się odświeży
boddah85
Oto kod, ktory sluzy wyswietlaniu danych...

  1. <?php
  2. session_cache_limiter("private_no_expire");
  3. ?>
  4. <?php
  5.  
  6. if ( isset ( $_SESSION['auth'] ) )
  7. {
  8.  $login = $_SESSION['login'];}  
  9. else
  10. {
  11. echo 'Przepraszamy, ale nie jestes uprawniony do przegladania tej strony';
  12. }
  13. ?>
  14. <?php
  15. include("gora.inc");
  16. ?>
  17. <tr>
  18. <td valign="top" width="35%">
  19. <?php
  20. include("menu.inc");
  21. ?>
  22. </td>
  23. <td align="justify" width="65%" valign="top" >
  24.  
  25. <?php
  26.  
  27. #***************************************
  28. if ($_GET['go'] == 'allcars')
  29. {
  30. print('<img src="green1.gif" border="1"> <b>Zestawienie samochodów</b><br />');
  31. include("mysql.inc");
  32. $i=0;
  33. $querry0 = mysql_query ("SELECT * FROM auta");
  34. print ("<table bgcolor="#DEDBCE" border="0" cellpadding="5" width="100%" class="tabela" ><tr><td width="5%" align="left"><b>Lp</b></td><td align="center" width="15%"><b>Nr rej</b></td><td align="center" width="16%"><b><a href="dzial.php?go=bad">Bad.tech.</a></b></td><td align="center" width="16%"><b><a href="dzial.php?go=oc">OC</a></b></td><td align="center" width="23%"><b>Kurs</b></td><td align="center" width="25%"><b>Kierowca</b></td></tr></table>");
  35. print ("<table border="0" cellpadding="5" width="100%" class="tabela">");
  36. while ($row = mysql_fetch_array($querry0))
  37. {
  38. $i=$i+1;
  39. $id = $row['id'];
  40. $rej = $row['rej'];
  41. $bad = $row['bad'];
  42. $oc = $row['oc'];
  43. $gdzie = $row['gdzie'];
  44. $kierowca = $row['kierowca'];
  45. print ("<tr onMouseOver=bgColor='#EFEFEF' onMouseOut=bgColor=''><td width="5%" bgcolor="#D3D3D3" align="left">$i</td><td align="center" width="15%">$rej</td><td align="center" width="16%">$bad</td><td align="center" width="16%">$oc</td><td align="center" width="23%">$gdzie</td><td align="center" width="25%">$kierowca</td></tr>");
  46. }
  47. print ("</table>");
  48. }
  49. #**************************************
  50. else
  51. {
  52. print('Nie ma takiej podstrony!');
  53. }
  54.  
  55. ?>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td colspan="2">
  60. <hr />
  61. </td>
  62. </tr>
  63. </table>
  64. <?php
  65. include("stopka.inc");
  66. ?>


A drugi plik to formularz...

Odswiezanie moze i cos daje w przypadku dodania nowego rekordu, ale jesli juz edytuje, to nic...
strife
Pokaż kod który wykorzystujesz do edycji, może masz w nim jakieś błędy smile.gif Pamiętaj, też że jak chcesz aby dane po edycji były natychmiast widoczne np. w tym samym formularzu to musisz odświeżyć stronę poprzez header" title="Zobacz w manualu php" target="_manual.

Przykład
  1. <?php
  2. // ...
  3. header("Location: " . $_SERVER['HTTP_REFERER'] );
  4. // ...
  5. ?>


Pozdrawiam!
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.