Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesje i logowanie
Forum PHP.pl > Forum > Przedszkole
miszqa
mam pliki takie

  1. <?php
  2.  
  3. // 01.php
  4. $_SESSION['zalogowany'] = false;
  5. ?>
  6. <a href=\"dwa.php\">dwa</a>


  1. <?php
  2.  
  3. // dwa.php
  4. if( $_SESSION['zalogowany'] )
  5. {
  6. echo 'zalogowany';
  7. }
  8. else
  9. {
  10. echo 'niezalogowany';
  11. }
  12.  
  13. ?>


i
plik glowny
  1. <head>...
  2. <body>...


  1. <?php
  2.  
  3. function aaa() { ... }
  4. ...
  5. if ($action==&#092;"...\") { ... } 
  6. else if ($action==&#092;"...\") { ...}
  7. }
  8.  
  9. ?>


  1. </....>


i jeszcze w oddzielnym pliku mam logowanie oparte na bazie danych

  1. include ('config.php');
  2.  
  3. function print_form() {
  4. ?>
  5. <form action=\"\" method=\"post\">
  6. <table align=\"center\">
  7. <tr><td><h3>Prosz&ecirc; sie zalogowa&aelig;</h3></td></tr>
  8. <tr><td>Login:&nbsp;<input style=\"color:#ff0000; font-style: bold;\" type=\"text\" name=\"login\"></font><br></td></tr>
  9. <tr><td>Has&sup3;o:&nbsp;<input style=\"color:#ff0000; font-style: bold;\" type=\"password\" name=\"pass\"><br></td></tr>
  10. <tr><td><input type=\"submit\" name=\"submit\" value=\"submit\">
  11. <input type=\"reset\" value=\"reset\"></td></tr>
  12. </tr>
  13. </table>
  14. </form>
  15. <?
  16. }
  17. if(isset($submit)):
  18. if(!$db = mysql_connect($dbhost, &#092;"\")):
  19. print &#092;"<h1>Nie mozna polaczyc sie z baza danych</h1>n\";
  20. else:
  21. mysql_select_db($dbname, $db);
  22. endif;
  23. $sql = &#092;"select * from users where login='$login'\";
  24. $result = mysql_query($sql);
  25. $row_count = mysql_num_rows($result);
  26. if($row_count == 0):
  27. ?>
  28. <center><h3>Niewlasciwa nazwa uzytkownika!Spr&oacute;boj jeszcze raz</h3>
  29. </center>
  30. <?
  31. print_form();
  32. else:
  33. $row = mysql_fetch_array($result);
  34. if($pass != $row[&#092;"pass\"]):
  35. ?>
  36. <center><h3>Nieprawidlowe haslo! Sproboj jeszcze raz</h3>
  37. </center>
  38. <?
  39. print_form(); 
  40. else:
  41. echo &#092;"<HEAD><META HTTP-EQUIV=\"refresh\\" CONTENT=\"1; URL=\"aaa_ok1.php\"></HEAD>\";
  42. echo &#092;"<BODY><center><h2>Haslo zaakceptowane</h2></center>\";
  43. // }
  44. endif;
  45. endif;
  46. else:
  47. print_form();
  48. endif;


1. Jak polaczyc logowanie z plikiem glownym i oprzec to na sesjach aby za kazdym razem wykonujac dana funkcje z pliku glownego nie trzeba bylo sie logowac.

2. Czy warto oddzielac plik do logowania od rzeczywistego pliku glownego ?

3. Bede bardzo wdzieczny za pomoc za ktora dziekuje

4. Pozdrawiam
kicaj
Ad:
1). Musisz w pliku glownym i na innych (na ktorych bedziesz uzywal sesji) dac na poczatku session_start" title="Zobacz w manualu PHP" target="_manual()
2). Twoj wybor
3). Jesli pomoglem...
4). Tez tongue.gif
miszqa
a mozesz pomoc mi to poustawiac?
bo nie wiem czy bedzie to dobrze dzialac a chcialbym polaczyc to w jednosc

poza tym plik sprawdzajacy jako jednosc pokazuje blad

"The Page cannot be refreshed without resending the information.
Click retry to sent the information again, or Click to return the page that you were trying to view."

i nie wiem co z tym zrobic
sf
2. najpierw zrob swoja wersje pierwsza, a potem popatrz jak to zrobili inni... np. phorum.org (katalog admin, tam index.php i login.php), potem znajdz jeszcze klika innych przykladow i stworz swoj, pare razy poprawisz i bedzie ok tongue.gif

pozatym jak tak patrze na Twoje zrodlo to jest ono bardzo nieczytelne

np. moj login.php narazie wyglada tak (uprzedzam, ze robie tam aktualnie ciagle zmiany i nawet nie wiem czy to teraz dziala tongue.gif ale ogolnie wydaje mi sie, ze jest przejrzyscie ) :

  1. <?php
  2. /*
  3. dane: stormfly | 10 IV 2004 | login.php
  4. opis: logowanie do panelu administracyjnego, korzysta z mysql
  5. $error - w przypadku błędnego l/p można wykorzystać komunikat
  6. $session_time - ustawiamy czas trwania sesji, po przekroczeniu automatyczne wylogowanie
  7. */
  8.  
  9. if(!defined(&#092;"NEWS_ADMIN\")) return;
  10.  
  11. include 'mysql.php';
  12.  
  13. if(isset($_POST['login']) && isset($_POST['password']))
  14. {
  15. $db = new DB;
  16. $db->connect();
  17. $sql = &#092;"SELECT * FROM uzytkownicy WHERE user='${_POST['login']}'\";
  18. $result = $db->query($sql);
  19. $row = mysql_fetch_array($result,MYSQL_ASSOC);
  20. if($row['password']==md5($_POST['password']))
  21. {
  22. $session_time = 60; // czas trwania sesji w minutach
  23. $_SESSION['user'] = $_POST['login'];
  24. $_SESSION['expire'] = time() + 60 * $session_time;
  25.  
  26. $db->close();
  27. header('Location: index.php'); // idz do panelu
  28. }
  29. else
  30. {
  31. $error=&#092;"Błędny login lub hasło. Spróbuj ponownie.<br /><br />\";
  32. }
  33. $db->close();
  34. }
  35.  
  36. include &#092;"header.php\";
  37. ?>
  38.  
  39.  
  40. <div class=main>Logowanie<br><br></div>
  41.  
  42. <?php if(isset($error)) { echo &#092;"<div class=\"error\\">$error</div>\"; } ?>
  43.  
  44. <div>
  45. <form action=\"<?php echo $PHP_SELF; ?>\" method=\"post\">
  46.  <table width=\"100%\">
  47. <tr>
  48.  <td width=\"20%\" align=\"right\">Użytkownik:</td>
  49.  <td width=\"70%\"><input type=\"text\" name=\"login\"></td>
  50. </tr>
  51. <tr>
  52.  <td align=\"right\">Hasło:</td>
  53.  <td><input type=\"password\" name=\"password\"></td>
  54. </tr>
  55. <tr>
  56.  <td></td>
  57.  <td><input type=\"submit\" value=\"Zaloguj\"></td>
  58. </tr>
  59.  </table>
  60. </form>
  61. </div>
  62.  
  63. <?php
  64. include &#092;"footer.php\";
  65. ?>
miszqa
widze ze juz cos sie ruszylo ale nadal nie jest to tak jak chcialem aby to wszystko polaczyc w jednosc
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.