Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nazwa zalogowanego uzytkownika
Forum PHP.pl > Forum > PHP
uczaj21
Witam serdecznie mam skrypt do logowania i wszystko dziala tylko chcialbym dodac funkcje ktora pokazywala by juz po zalogowaniu nazwe zalogowanego i obrazek z nim zwiazany np jego foto ktore ja sam przydziele w pliku jpg uzytkownika np zalogowany :Kowalski.o to kod
  1. <?php
  2. /********************************************************************************
  3. ********/
  4. /********************************************************************************
  5. ********/
  6. /* Skrypt logowania v1.1 *****************************************************************/
  7. /* Autor: Paweł Kozubowski, Www: www.kozubowski.com, Gg: 3892931, Skype: kozvb552 ********/
  8. /* E-mail: pawel@kozubowski.com **********************************************************/
  9. /********************************************************************************
  10. ********/
  11. /* INSTRUKCJA UŻYTKOWANIA:                                                               */
  12. /* Formularz logowania musi mieć dwa pola: pole INPUT z nazwą użytkownika musi mieć      */
  13. /* nazwę "username" (name="username"),                                                   */
  14. /* oraz pole INPUT z hasłem musi mieć nazwę "password" (name="password").                */
  15. /* Formularz logowania kierujesz na plik "login_script.php" (action="login_script.php"). */
  16. /* W pliku "login_script.php" (ten plik) edytujesz wedle swoich potrzeb:                 */
  17. /* Nazwę pliku na który użytkownik zostanie przekierowany po zalogowaniu się,            */
  18. /* oraz nazwy i hasła użytkowników. Co dokładnie zmienić jest opisane poniżej.           */
  19. /* Do każdego z plików które chcesz chronić hasłem na samej górze wpisujesz:             */
  20. /* <?php require("login_script.php"); ?>                                                 */
  21. /* Każdy plik chroniony musi mieć rozszerzenie ".php".                                   */
  22. /* To wszystko, skrypt powinien być już poprawnie zainstalowany! :)                      */
  23. /* W razie jakichkolwiek pytań skontaktuj się bezpośrednio ze mną.                       */
  24. /* INFORMACJE DODATKOWE:                                                                 */
  25. /* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout"     */
  26. /* (czyli "login_script.php?logout")                                                     */
  27. /* - Plik z tym skryptem ma nazwę "login_script.php" i jeśli zmieniasz jego nazwę zmień  */
  28. /* również wartość odpowiednio opisanej zmiennej poniżej, inaczej skrypt nie będzie      */
  29. /* działał prawidłowo                                                                    */
  30. /* - Jeśli używasz dwóch wersji (kopii) tego skryptu na jednej stronie (domenie)         */
  31. /* zmień wartość odpowiednio opisanej zmiennej poniżej, inaczej może wystąpić konflikt   */
  32. /* pomiędzy tymi dwoma wersjami skryptu                                                  */
  33. /********************************************************************************
  34. ********/
  35. /* Skrypt na licencji GPL (General Public License) ***************************************/
  36. /* Nie usuwaj tej informacji *************************************************************/
  37. /* Jeśli wykonujesz w nim jakiekolwiek zmiany, poinformuj mnie o tym *********************/
  38. /********************************************************************************
  39. ********/
  40. /********************************************************************************
  41. ********/
  42.  
  43. $redirect =
  44. /* Podaj plik na jaki użytkownik ma zostać przekierowany po wpisaniu prawidłowych danych logowania */
  45. "secured.php"
  46. ;
  47.  
  48. $users = array(
  49. /* Lista użytkowników i ich haseł */
  50. /* Wpisuj w postaci:
  51. "UŻYTKOWNIK"=>"HASŁO",
  52. "UŻYTKOWNIK_2"=>"HASŁO_2",
  53. "UŻYTKOWNIK_3"=>"HASŁO_3" <- UWAGA: Ostatni wpis bez przecinka na końcu!
  54. */
  55. "ucza"=>"vobis",
  56. "nowel"=>"nowel195",
  57. "demo3"=>"demo3pass"
  58. );
  59.  
  60. /* Zmień tą wartość tylko jeśli jest to druga kopia tego skryptu logowania w drugim pliku i służy ona do logowania w inne miejsce niż poprzedni */
  61. $script_session = "login_script_session";
  62.  
  63. /* Nazwa TEGO pliku, wraz z rozszerzeniem ".php", zmień tylko jeśli byłeś zmuszony zmienić nazwę tego pliku */
  64. $script_filename = "login_script.php";
  65.  
  66. /********************************************************************/
  67. /**** ZMIAN PONIŻEJ TEJ LINI DOKONUJ TYLKO JEŚLI WIESZ CO ROBISZ ****/
  68. /********************************************************************/
  69.  
  70. /* Funkcje */
  71. function go($url)
  72. {/*b01*/
  73.    header("Location:".$url);
  74.    exit;
  75. }/*b01*/
  76.  
  77. function safe($variable)
  78. {/*b05*/
  79.    $variable = stripslashes($variable);
  80.    $variable = str_replace(">","&gt;",$variable);
  81.    $variable = str_replace("<","&lt;",$variable);
  82.    return $variable;
  83. }/*b05*/
  84.  
  85. $footer = "<br /><br /><hr>Logowanie v1.1, Paweł Kozubowski / <a href=\"http://www.kozubowski.com\" title=\"Kozubowski.com - Creative Designs & Ideas - More than Webcoding & Webdesign\">Kozubowski.com</a><br />";
  86.  
  87. /* Wylogowanie użytkownika jeśli w adresie widnieje ?logout */
  88. if(isset($_GET['logout'])){session_destroy();print("<h1>Zostałeś wylogowany</h1>".$footer);exit;}
  89.  
  90. /* Sprawdzenie konfiguracji */
  91. if($redirect==''){print("<h1>BَD SKRYPTU</h1>Nie został podany plik do przekierowania".$footer);}
  92. if(preg_match("/^http:///i",$redirect)){print("<h1>BَD SKRYPTU</h1>Nie podawaj \"http://\" w adresie chronionego pliku".$footer);}
  93. if($users==''){print("<h1>BَD SKRYPTU</h1>Brak zdefiniowanych użytkowników".$footer);}
  94.  
  95. /* Czynności do wykonania gdy user wszedł tutaj z formularza logowania */
  96. if(isset($_POST['username']) && isset($_POST['password']))
  97. {/*b02*/
  98.  
  99.    /* Zabezpiecznenie wartości POST przed atakiem XSS */
  100.    $_POST['username'] = safe($_POST['username']);
  101.    $_POST['password'] = safe($_POST['password']);
  102.    
  103.    /* Sprawdzenie poprawności przesłanych danych logowania */
  104.    if($_POST['username']=='' || $_POST['password']==''){print("<h1>Podaj nazwę użytkownika oraz hasło </h1> <a href='login.php'>Sproboj jeszcze raz</a>".$footer);exit;}
  105.    if(!(array_key_exists($_POST['username'],$users))){print("<h1>Podana nazwa użytkownika nie istnieje</h1>".$footer);exit;}
  106.    if($users[$_POST['username']]!=$_POST['password']){print("<h1>Nieprawidłowe hasło</h1>".$footer);exit;}
  107.    
  108.    /* Utworzenie sesji zawierającej poprawne dane logowania */
  109.    $_SESSION[$script_session] = $_POST['username']."|".$_POST['password'];
  110.    
  111.    /* Przekierowanie do chronionego pliku */
  112.    go($redirect);
  113.    exit;
  114.  
  115. }/*b02*/
  116.  
  117. /* Czynności do wykonania gdy user require'ował ten plik w innym lub wbił adres tego pliku a adresie url przeglądarki */
  118. else
  119. {/*b03*/
  120.  
  121.    /* Jeśli user wbił adres tego pliku w przeglądarce, najpierw przekierowujemy go do pliku chronionego */
  122.    if(preg_match("/".$script_filename."/i",$_SERVER['SCRIPT_NAME']))
  123.    {/*b06*/
  124.        go($redirect);
  125.        exit;
  126.    }/*b06*/
  127.  
  128.    /* Sprawdzenie istnienia sesji */
  129.    if(!(isset($_SESSION[$script_session])) || $_SESSION[$script_session]=="" ){print("<h1>DOSTĘP ZABRONIONY</h1>Aby uzyskać dostęp do tego pliku, musisz najpierw zalogować się podając prawidłową nazwę użytkownika i hasło".$footer);exit;}
  130.    
  131.    /* Sprawdzenie poprawności danych zawartych w sesji */
  132.    $session_data = explode("|",$_SESSION[$script_session]);
  133.    
  134.    /* oraz zabezpieczenie danych sesji przed atakiem XSS */
  135.    $session_data[0] = safe($session_data[0]);
  136.    $session_data[1] = safe($session_data[1]);
  137.    
  138.    if($session_data[0]=='' || $session_data[1]==''){print("<h1>DOSTĘP ZABRONIONY</h1>Nieprawidłowe dane w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;}
  139.    if(!(array_key_exists($session_data[0],$users))){print("<h1>DOSTĘP ZABRONIONY</h1>Nieistniejąca nazwa użytkownika w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;}
  140.    if($users[$_POST['username']]!=$_POST['password']){print("<h1>DOSTĘP ZABRONIONY</h1>Nieprawidłowe hasło w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;}
  141.  
  142. }/*b03*/
  143.  
  144. ?>


w tym skrypcie zawarte jest tez opcja wylogowania w dokumentacji pisze /* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout" */
/* (czyli "login_script.php?logout") */
/* - Plik z tym skryptem ma nazwę "login_script.php" i je¶li zmieniasz jego nazwę zmień *
a wiec ja pisze linka na wylogowanie w postaci <a href='login_script.php?logout'>Wyloguj </a>
lecz kiedy go naciskam przechodze na pusta strone a powinno pisac zostales wylogowany oczywiscie nie niszczy sesii
Riklaunim
Chcesz programować w PHP - to napisz system logowania samemu. Nie jest to wcale trudne, wystarczy popróbować. Kopiowanie i "zróbcie za mnie" niczego cię nie nauczy.
jarek04
Dane zalogowanego usera są przechowywane w $_SESSION['login_script_session']
Do loginu dostaniesz się przez

  1. <?php
  2. $session_data = explode('|',  $_SESSION['login_script_session']);
  3. $user = $session_data[0];
  4. $pass = $session_data[1];
  5. echo "User name ".$user;
  6. echo "User password ".$pass;
  7. ?>
uczaj21
dzieki a jak wyglada sprawa z avatorkiem na jak uzytkownik zaloguje sie na konkretne konto to wyswietli sie jego fotka.Przydziele kazdemu kontowi fotke
erix
A nie możesz użytkownikowi dać jakiegoś unikalnego ID i np. nim nazwać plik?
uczaj21
jestem poczatkujacy wiec nie wiem o co chodzi.A nie mozna zrobic tak zeby zrobic warunek ze kazdy uzytkownik ma wyswietlany dany plik jpg czyli np kowalski wyswietlac plik.jpg malinowski plik2.jpg cos w tym rodzaju

a jak z tym wylogowywaniem pisze <a href="login_script.php?logout">wyloguj</a> i wskakuje mi na biala strone i nie kasuje sesii powinien pokazac sie napis zostales wylogowany i powinny sie zniszczec sessie
erix
Cytat
wskakuje mi na biala strone i nie kasuje sesii powinien pokazac sie napis zostales wylogowany i powinny sie zniszczec sessie

Nie masz gdzieś błędów w składni?

Cytat
jestem poczatkujacy wiec nie wiem o co chodzi.

Ale to nie zwalnia z czytania ze zrozumieniem. tongue.gif Przeczytaj uważnie, co napisałem w poprzednim poście. user (malina) -> id (np. 1) -> avatar (1.jpg).

Więcej nie powiem, rusz mózgownicą.
uczaj21
nie ma bledow skladniowych questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
mrc
Panie uczaj21 skopiowałem sobie twój skrypt, walnąłem sobie coś takiego w przegladarke:
Kod
http://localhost/logout.php?logout

Pokazuje mi sie:


Zostałeś wylogowany


Logowanie v1.1, Paweł Kozubowski / Kozubowski.com

więc nie wiem, o co Ci chodzi... smile.gif
uczaj21
skopiowales skrypt ok ale ja nie mam pliku php o nazwie logout.php .Sam go stworzyles dokladnie w dokumentacji pisze ze /* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout" */
/* (czyli "login_script.php?logout").questionmark.gifquestionmark.gifquestionmark.gif

Witam mam kolejny problem a brzmi on tak zrobilem strone na ramkach i w kazdej ramce mam inna strone a chcialem je rowniez chronic wiec na poczastku wpisuje
  1. <?php require("login_script.php"); ?>

ale gdy wlanczam glowna strone i loguje sie do niej to w ramkach wyskakuja bledy

Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\b.php:3) in c:\apache\htdocs\login_script.php on line 36

a wkomentarzu skryptu pisze

/* Do ka_dego z plików które chcesz chroni_ has_em na samej górze wpisujesz: */
/* <?php require("login_script.php"); ?> */
/* Ka_dy plik chroniony musi mie_ rozszerzenie ".php".
i wlasnie do kazdego pliku dodalem ta komende
  1. <?php require("login_script.php"); ?>

Prosze o pomoc



ok juz sobie poradzilem z tym problemem

Zawsze coś jeszcze nie rozwiązałem problemu związanego z tym wylogowaniem doradzcie mi
piotrooo89
Cytat(uczaj21 @ 9.12.2008, 14:22:56 ) *
Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\b.php:3) in c:\apache\htdocs\login_script.php on line 36


było mnóstwo razy poszukaj na forum lub poczytaj
uczaj21
ale w tym skrypcie jest juz funkcja wylogowania
/* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout" */
/* (czyli "login_script.php?logout") */
a ja robie linka np <a href=login_script.php?logout>wyloguj</a> i takie cos nie dziala pokazuje sie tylko biala strona a powinien wyswetlic sie komunikat Zostales wylogowany.questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
Riklaunim
patrząc na sam link to powinien wyglądać tak: <a href="login_script.php?logout">
uczaj21
Nawet jak tak wpisuje <a href="login_script.php?logout"> to nic nie dzial.MRC powiedzial ze mu dzialalo ale w jaki sposob on to zrobil czekam wciaz na momoc

prosze o pomoc widac ze nikt nie moze doradzic z tym wylogowaniem
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.