michalk Opublikowano 20 Października 2007 Udostępnij Opublikowano 20 Października 2007 Witam! Chciałbym zabezpieczyć swoje pliki nakładając na nie hasło. Szukałem już w internecie na ten temat trochę informacji i zgodnie z tym co znalazłem zmodernizowałem pliki. Wyglądają one teraz tak: Skrypt logowania - nazwij go np. logowanie.php. ------------------------------------- CODE <?php session_start(); //rozpoczęcie sesji include "haslo.php"; //skrypt :) $pass = $_POST[pass]; if ($pass) { if ($pass==$haslo) { $_SESSION[haslo] = $haslo; header ("Location: plik.php"); //podajesz adres, na który po zalogowaniu skrypt przekierowuje } else { echo 'Podałeś niepoprawne hasło. :('; } } else { echo ' <form method=post> Podaj hasło: <INPUT TYPE="PASSWORD" NAME="pass" VALUE="'.$pass.'"> <INPUT TYPE="SUBMIT" VALUE="Zaloguj"> </FORM> '; } $action = $_GET[action]; if ($action=="logout") { session_destroy(); header("Location: adres.php"); //podajesz adres, na który po wylogowaniu skrypt przekierowuje } ?> Plik haslo.php (zawiera hasło dostępu): ------------------------------------- CODE <?php $haslo = "123456"; //hasło dostępu ?> Przykładowy plik z zabezpieczoną treścią: CODE <?php //pliki session_start(); include "haslo.php"; if ($_SESSION[haslo]) { if (!($_SESSION[haslo] == $haslo)) { header ("Location: logowanie.php"); } } else { header ("Location: logowanie.php"); } //odtąd wstawiasz treść strony. ?> treść stronytreść stronytreść stronytreść stronytreść stronytreść stronytreść stronytreść stronytreść stronytreść strony Wszystko fajnie. Wchodzę na strone x przekierowuje mnie na strone logowania, loguje sie i wracam do strony x. Kiedy chce przejsc do strony y znowu prosi mnie o podanie hasla i tym samym nie moge sie zalogowac w ogole do podstron. Proszę o pomoc Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
yavaho Opublikowano 20 Października 2007 Udostępnij Opublikowano 20 Października 2007 A utrzymujesz sesje na każdej stronie? session_start(); [edit] hasła i loginu nie powinno się przetrzymywać w jawnej formie hasło przetrzymujesz w postaci zahaszowanej i potem przy sprawdzeniu porównujesz dwa hasze. https://pl.php.net/manual/pl/function.md5.php . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 20 Października 2007 Autor Udostępnij Opublikowano 20 Października 2007 no wlasnie, nie wiem dokladnie jak to zrobic z sesjami. Tj. jak ja utrzymać. Mogę liczyć na pomoc Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
yavaho Opublikowano 20 Października 2007 Udostępnij Opublikowano 20 Października 2007 Na każdej stronie serwisu musi się znajdować ta funkcja session_start(); i to w dodatku na samym poczatku kodu ktory jest wysyłany do przegladarki. Jeżeli nie masz możliwości umieszczenia jej na początku, to można wtedy użyć funkcji buforowania wyjścia: ob_start(); . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 21 Października 2007 Autor Udostępnij Opublikowano 21 Października 2007 Jeśli session_start(); jest za to odpowiedzialne to mam to na każdej stronie i wygląda na to, że on mi jej nie przedłuża;/. Wchodze na strone: www.xxx.pl/xx/index.php ->przekierowuje mnie na www.xxx.pl/xx/admin.php -> loguje się i jestem na www.xxx.pl/xx/index.php -> Chce przejsc do kolejnej strony w PA i wchodze na www.xxx.pl/xx/yy/index.php i znowu do poczatku mnie wysyla. Moze to przez zmiane katalogu mam taki problem? Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
yavaho Opublikowano 21 Października 2007 Udostępnij Opublikowano 21 Października 2007 Sprawdz czy wszedzie masz tak (wszystkie zmienne tablicowe) $_POST['pass'] $_SESSION['haslo'] Bo w tym przykładzie wszystkie masz tak $_POST[pass] $_SESSION[haslo] I jeżeli session_start(); znajduje się wszedzie na początku kodu np w pliku index.php to usuń zdublowane wpisy tej funkcji w kodzie np w pliku: logowanie Przed funkcją session_start(); nie może zostać wysłane do przeglądarki żaden tekst ani kod, itp. Może masz pliki w UTF-8 i występuje problem z tzw. BOM ? . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 21 Października 2007 Autor Udostępnij Opublikowano 21 Października 2007 Hmm. No i wszystko poprawione tak jak pisałeś i nic to nie dało:( Jest może jakiś inny sposób w jaki można to zrobić? Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 21 Października 2007 Autor Udostępnij Opublikowano 21 Października 2007 Witam! Niestety musze napisac jedno pod drugim bo mam problemy z edycja. Tak teraz czytalem troche o zabezpieczaniu strony i czy nie brakuje tutaj funkcji moze register_sesion(); ? albo czegos podobnego Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
shad Opublikowano 21 Października 2007 Udostępnij Opublikowano 21 Października 2007 Ludzie bardziej skomplikować się nie da ?, ludzie a gdzie poziomy dostępu użytkownika i inne rzeczy. kawałek formularza logowania <?php $login='xxxxxxxx'; $pass='xxxxxxx'; session_start(); if ($_POST['login']==$login AND $_POST['haslo']==$haslo){ $_SESSION['login']=true; header('location: gdzie_ma_skoczy_po_logine.php'); exit(); }; ?> Tutuaj formularz logowania Tutaj zabezpieczony fragment skryptu <?php session_start(); if ($_SESSION['login']!=true){ header('location: formularz do logowania.php'); exit(); }; dalsza cześć ?> Wylogowywanie <?php session_start(); $_SESSION['login']=false; header('location: formularz do logowania.php'); ?> Aplikacje internetowe, systemy wspomagające SEO, programy pod Windows i Linux, info na https://shad.net.pl - dopisz się do Katalogu Firm Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 21 Października 2007 Autor Udostępnij Opublikowano 21 Października 2007 Zrobilem tak jak piszesz i podpialem do tego formularz ale cos jest nie tak. Od razu przekierowuje do pliku nastepnego(bez potrzeby wpisania niczego). Moze jeszcze napisac do tego odpowiedni formularz bo mysle ze tutaj jest problem teraz Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
yavaho Opublikowano 21 Października 2007 Udostępnij Opublikowano 21 Października 2007 Wydaje mi się że sesja wogule nie zostaje przekazywana do następnej strony. Sprawdzałeś sobie czy sesja wogule istnieje. Czy do zmiennej sesyjnej 'haslo' zostało cokolwiek przypisane? Podejrzewam że wklejasz jakeiś kody nie mając pojęcia jak mają działać. Wklej to na początku pliku index.php i pochodź po stronie. Na drugiej z kolei stronie powinna się wyświetlić godzina przypisana do jednej zmiennej sesyjnej. session_start(); if(isset($_SESSION)) foreach($_SESSION as $a => $b) echo '<br />$_SESSION['.$a.'] = '.$b; else echo '<br />brak zmiennych sesyjnych'; if(!isset($_SESSION['test'])) $_SESSION['test']=date('G:i', time()); . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
michalk Opublikowano 21 Października 2007 Autor Udostępnij Opublikowano 21 Października 2007 do sesji przypisane jest haslo i godzina, ale do kolejnych stron nie chce przejsc Baza firm | Pranie dywanów | Meble Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaviorek Opublikowano 21 Października 2007 Udostępnij Opublikowano 21 Października 2007 na algorytmy.pl masz kilka gotowych 'kopiuj-wklej' rozwiązań: algorytmy.pl/?id=1000 algorytmy.pl/?id=77 algorytmy.pl/?id=2010 i jeszcze kilka podobnych... i też garść innych przykładów jak: Jak między stronami przesłać zmienne korzystając z sesji? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.