Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przekierowanie po udanym logowaniu
Forum PHP.pl > Forum > Przedszkole
thurinon
Witam ponownie.... Mam takie logowanie na strone:
  1. <?php
  2.  
  3. function checkPass($user, $pass)
  4. {
  5. $login = $_POST['login'];
  6. if(!$fd = @fopen("users/$login.txt", "r")) return 1;
  7. $result = 2;
  8. while (!feof($fd)){
  9. $line = trim(fgets($fd));
  10. $arr = explode(":", $line);
  11. if(count($arr)<2)
  12. continue;
  13.  
  14. if($arr[0] != $user)
  15. continue;
  16.  
  17. if($arr[1] == $pass){
  18. $result = 0;
  19. break;
  20. }
  21.  
  22. else
  23. break;
  24. }
  25. fclose($fd);
  26. return $result;
  27. }
  28.  
  29. if(isSet($_SESSION['zalogowany'])){
  30. header("Location:index.php");
  31. }
  32.  
  33. else if(!isSet($_POST["haslo"]) || !isSet($_POST["login"])){
  34. $_SESSION['komunikat'] = "Wprowadz nazwe uzytkownika i haslo:";
  35. include('form.php');
  36. }
  37.  
  38. else{
  39. $val = checkPass($_POST["login"], $_POST["haslo"]);
  40. if($val == 0){
  41. $_SESSION['zalogowany'] = $_POST['login'];
  42. header("Location:index.php");
  43. }
  44.  
  45. else if($val == 1){
  46. $_SESSION['komunikat'] = "Blad serwera. Zalogowanie nie bylo mozliwe!";
  47. include('form.php');
  48. }
  49.  
  50. else if($val == 2){
  51. $_SESSION['komunikat'] = "Nieprawidlowa nazwa uzytkownika lub haslo";
  52. include('form.php');
  53. }
  54.  
  55. else {
  56. $_SESSION['komunikat'] = "Blad serwera. Zalogowanie nie bylo mozliwe";
  57. include('form.php');
  58. }
  59. }
  60.  
  61. ?>
  62.  


ale zasadniczo chodzi mi o ten fragment:
  1. else{
  2. $val = checkPass($_POST["login"], $_POST["haslo"]);
  3. if($val == 0){
  4. $_SESSION['zalogowany'] = $_POST['login'];
  5. header("Location:index.php");
  6. }

Użytkownik po zalogowaniu trafia na stronę index.php, jak przeobić ten skrypt, tak aby użytkownik janek po zalogowaniu trafił na stronę janek.php a użytkownik romek trafił na romek.php

Coś na zasadzie :
  1. else{
  2. $val = checkPass($_POST["login"], $_POST["haslo"]);
  3. if($val == 0){
  4. $_SESSION['zalogowany'] = $_POST['login'];
  5. header("Location:$login.php"); // oczywiście to nie działa ;-)
  6. }


Z góry dzięki za pomoc i pozdrawiam :-)
Ociu
  1. else{
  2. $val = checkPass($_POST["login"], $_POST["haslo"]);
  3. if($val == 0){
  4. $_SESSION['zalogowany'] = $_POST['login'];
  5.  
  6. header("Location:".$_SESSION['zalogowany'].".php");
  7. }
potreb
  1. header("location: ".$_POST["login"]."php");
Blame
@/\ No dobra byliście szybciej tongue.gif
@\/ Wiem, wiem. Nie zauważyłem w pośpiechu.
Ociu
Jak to ma działać, skoro header przekierowuje go pliku ".php" ? Zmienna login jest pusta.
thurinon
No to jeszcze jedno pytanie ;-) któremu dać "pomógł" bo oba rozwiązania zadziałały, choć potreb ;-) zjadłeś kropkę przed ".php");

Dzięki wielkie :-)
PS. Swoją drogą to straszne że jedna kropka czy przecinek psują cały kod PHP ;-)
Pozdrawiam
Edit Ociu działa działa ;-)
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.