Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]logowanie, cos z sesja?, po kazdym odswiezeniu trzeba sie logowac
-cythrus-
post
Post #1





Goście







witam,
generalnie... po dlugich a ciezkich zmaganiach udało mi się zorganizować coś takiego:

  1. <?php // access.php
  2. /* dodanie "<? include 'access.php'; ?>" do nagłówka pliku zabezpiecza strone */
  3.  
  4. include '../lib/common.php'; //zawiera error()
  5. include '../lib/db.php'; // dbConnect(nazwa_bazy)
  6.  
  7.  
  8.  //sprawdza czy login i haslo są dostępne z formularza lub sesji i tworzy $login i 
    $pass
  9. if(isset($_POST['login'])) {
  10. $login = $_POST['login'];
  11. } elseif (isset($_SESSION['login'])) {
  12. $login = $_SESSION['login'];
  13. }
  14. if(isset($_POST['pass'])) {
  15. $pass = $_POST['pass'];
  16. } elseif (isset($_SESSION['pass'])) {
  17. $pass = $_SESSION['pass'];
  18. }
  19.  
  20.  
  21.  //jesli zmienna $login nie istnieje, wyświetla formularz logowania
  22. if(!isset($login)) {
  23. ?>
  24.  
  25. <HTML> <!-- formularz logowania -->
  26. <HEAD>
  27. <TITLE>Logowanie</TITLE>
  28. <STYLE type="text/css">
  29. <!--
  30. BODY, TABLE, FORM { font-size: 8pt; font-family: Arial, Verdana; text-decoration: none }
  31. SELECT, INPUT { font-size: 8pt; font-family: Arial, Courier; text-decoration: none }
  32. -->
  33. </STYLE>
  34. </HEAD>
  35. <BODY>
  36. <B>Musisz się zalogować</B><BR>
  37. <FORM method="post" action="<?=$_SERVER['PHP_SELF']?>">
  38. <TABLE border="0" cellpadding="0" cellspacing="5">
  39. <TR>
  40. <TD alignn="right">Login:</TD>
  41. <TD>
  42. <INPUT name="login" typen="text" maxlenght="16" size="25">
  43. </TD>
  44. </TR>
  45. <TR>
  46. <TD align="right">Hasło:</TD>
  47. <TD>
  48. <INPUT name="pass" type="password" maxlength="100" size="25">
  49. </TD>
  50. </TR>
  51. <TD align="cener" colspan="2">
  52. <INPUT type="submit" value="Zaloguj">
  53. </TD>
  54. </TR>
  55. </TABLE>
  56. </FORM>
  57. </BODY>
  58. </HTML>
  59.  
  60. <?php // i kończy skrypt
  61. }
  62.  
  63.  // jeśli istnieje, to: łączy się z bazą
  64. dbConnect("sklep");
  65.  
  66.  // sprawdza czy login i hasło są poprawne
  67. $sql = "SELECT * FROM admins WHERE login = '$login' AND pass = PASSWORD('$pass')";
  68. $result = mysql_query($sql);
  69. if(!$result) {
  70. error('Błąd komunikacji z listą administratorów');
  71. }
  72.  
  73.  // jeśli nie są, usuwa $_SESSION['login'] i $_SESSION['pass'] i wyświetla 'Brak dostępu'
  74. if(mysql_num_rows($result)==0) {
  75. unset($_SESSION['login']);
  76. unset($_SESSION['pass']);
  77. ?>
  78.  
  79. <HTML> <!-- Brak dostępu -->
  80. <HEAD> 
  81. <TITLE>Brak dostępu</TITLE>
  82. <STYLE type="text/css">
  83. <!--
  84. BODY { font-size: 8pt; font-family: Arial, Verdana; text-decoration: none }
  85. -->
  86. </STYLE>
  87. </HEAD> 
  88. <BODY> 
  89. <B>Brak dostępu</B>
  90. <P>Sprawdź czy poprawnie wpisałeś Login i Hasło</P> 
  91. <A href="javascript:history.go(-1)">powrót</A>
  92. </BODY> 
  93. </HTML>
  94.  
  95. <?php // następnie kończy skrypt
  96. exit; 
  97. }
  98.  
  99.  // natomiast jeśli są poprawne, pobiera pełną nazwę użytkownika
  100. $kto = mysql_result($result,0,'login');
  101. ?>


i prosta stronka

  1. <? include './access.php'; ?>
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Strona zabezpieczona</TITLE>
  5. </HEAD>
  6. <BODY>
  7. <P>Witaj, <?=$kto?>! Ta informacja jest poufna...</P>
  8. </BODY>
  9. </HTML>


i chce, zeby sie login i haslo zapisaly w sesji i zebym nie musial sie logowac przy kazdym odswiezeniu... nie mam pojecia dlaczego jest zle :/

przeciez po wywolaniu access.php skrypt tworzy $login i $pass i juz potem nic nie zmienia... czy zmienia, tylko ja nie widzę co...? heup :/ męczę się juz kilka tygodni, a to zwykłe logowanie przecież! wstyd sad.gif strach pomyslec co bedzie potem...

Ten post edytował cythrus 27.04.2006, 01:31:51
Go to the top of the page
+Quote Post

Posty w temacie
- cythrus   [php]logowanie, cos z sesja?   6.04.2006, 07:43:10
- - gladiror   sprobuj moze: [PHP] pobierz, plaintext <?php...   6.04.2006, 10:22:17
- - cythrus   kurde :/ wtedy $kto ma wartość "" c...   6.04.2006, 15:39:51
- - OnE.Killer   session_start(); musisz dawac na poczatku strony (...   6.04.2006, 16:04:06
- - cythrus   ...poprawiłem nawiasy i juz nie ma bledu... ale da...   8.04.2006, 03:13:27


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: 21.08.2025 - 06:10