Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] logowanie
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, chciałem zrobić takie logowanie, które będzie przełączało użytkownika na odpowiednią stronę w zależności od tego jaka ma przypisaną rangę w bazie danych

Ulepszyłem o takie rozwiązanie swój skrypt logowania i teraz nie działa. Loguje się na poprawny login i hasło i nic się nie dzieje.. nigdzie mnie nie przełącza…
Czy może orientuje się Ktoś w czym tkwi błąd?

Będę wdzięczny za każdą pomoc..

  1. <?php
  2. ?>
  3.  
  4. <?php
  5. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  6. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  7.  
  8.  
  9.  if($_SESSION['zalogowany'] == 0)
  10.  {
  11. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  12. <div>
  13. Login:<br />
  14. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  15. Hasło:<br />
  16. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  17. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  18. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  19. </div>
  20. </form>';
  21.  
  22. if (isset($_POST['login']) && isset($_POST['haslo']))
  23. {
  24.  $login = trim($_POST['login']);
  25.  $haslo = trim($_POST['haslo']);
  26.  $haslo = md5($haslo);
  27.  $ranga = trim($_POST['ranga']);
  28.  
  29.  $sql = "SELECT login, haslo, ranga FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  30.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  31.  
  32.  if(mysql_num_rows($result) == 0) // sprawdzenie czy dany użytkownik istnieje w bazie
  33.  {
  34. echo' Podany login i haslo jest błędne'; // jeżeli nie istnieje taki użytkownik to wyświetla błąd
  35.  }
  36.  else
  37.  {
  38. $_session['ranga'] = $_POST['ranga'];
  39. if($_session['ranga'] == 'user'){
  40. header('location: strona1.php');  //to co powinien widzieć użytkownik
  41. }
  42.  
  43. $_session['ranga'] = $_POST['ranga'];
  44. if($_session['ranga'] == 'employee'){
  45. header('location: strona2.php');  //to co powinien widzieć pracownik
  46. }
  47.  
  48. $_session['ranga'] = $_POST['ranga'];
  49. if($_session['ranga'] == 'vip'){
  50. header('location: strona3.php');  //to co powinien widzieć vip
  51. }
  52.  }
  53.  }
  54.  }
  55.  else {
  56. echo "Zostałeś zalogowany jako ".$_SESSION['login']."<br /><a href='index.php?log=wyloguj'>wyloguj</a>";
  57. $intTimeoutSeconds = 600;
  58.  
  59. if(isset($_SESSION['intLastRefreshTime']))
  60. {
  61. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  62. {
  63.  header('location: index.php');
  64. }
  65. }
  66. $_SESSION['intLastRefreshTime'] = time();
  67.  }
  68.  
  69.  if ($_GET['log'] == "wyloguj") {
  70. header('location: index.php');
  71.  }
  72.  
  73. ?>


dotąd korzystałem z takiego skryptu, który działał //ale przełączał tylko na jedną stronę ..wszystkich użytkowników
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5.  
  6.  if($_SESSION['zalogowany'] == 0)
  7.  {
  8. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  9. <div>
  10. Login:<br />
  11. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  12. Hasło:<br />
  13. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  14. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  15. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  16. </div>
  17. </form>';
  18.  
  19. if (isset($_POST['login']) && isset($_POST['haslo']))
  20. {
  21.  $login = $_POST['login'];
  22.  $haslo = $_POST['haslo'];
  23.  $haslo = md5($haslo);
  24.  
  25.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  26.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  27.  
  28.  if(mysql_num_rows($result) == 1) {
  29.  echo "zostałeś zalogowany jako: $login";
  30.  $_SESSION['login'] = $login;
  31.  $_SESSION['zalogowany'] = 1;
  32.  $_SESSION['czas'] = time();
  33.  header ('location: strona1.php');
  34.  }else {
  35.  echo '<div style="margin-left: 300px;"><br />
  36.  <span style="color: red; font-weight: bold;">Wpisz prawidłowy login i hasło</span></div>';
  37. }
  38. }
  39.  }
  40.  else {
  41. echo "Zostałeś zalogowany jako ".$_SESSION['login']."<br /><a href='index.php?log=wyloguj'>wyloguj</a>";
  42. $intTimeoutSeconds = 600;
  43.  
  44. if(isset($_SESSION['intLastRefreshTime']))
  45. {
  46. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  47. {
  48.  header('location: index.php');
  49. }
  50. }
  51. $_SESSION['intLastRefreshTime'] = time();
  52.  }
  53.  
  54.  if ($_GET['log'] == "wyloguj") {
  55. header('location: index.php');
  56.  }
  57.  
  58. ?>
nospor
$_POST['ranga'];
blinksmiley.gif

Sie zdecyduj gdzie masz te range - w bazie czy w formularzu tongue.gif
em-ba
range wysyłam jako "hidden" z różnych formularzy rejestracyjnych... i zapisywana jest w bazie.... //są trzy rangi
Chciałbym aby w zależności od tego z jakiej rangi jest użytkownik to, żeby go przełączało na odpowiednią stronę smile.gif

Mam nadzieje, że nie zamieszałem... biggrin.gif
nospor
ale w miejscu w ktorym sie logujesz nie masz w formularzu zadnej rangi. A ty sie do niej dobierasz tak jakbys mial. Zrozum to smile.gif
em-ba
Czyli co powinienem zrobić? smile.gif
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.