Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> Logowanie, wielu userów, różne strony docelowe
-Darjus-
post 22.01.2006, 14:24:27
Post #1





Goście







Witam

Mam problem jeśli chodzi o skrypty logowania. Wiem, że jest ich sporo na różnych stronkach, lecz jak dotąd nie trafiłem na ten którego szukam.

BTW: dopiero zaczyna z php i nie jestem w stanie sobie go samemu napisać sadsmiley02.gif

A więc tak:

Ogólnie chodzi o dość prosty do konfiguracji skrypt logowania dla wielu użytkowników, z możliwością zdefiniowania dla każdego user'a oddzielnej strony docelowej i oczywiście odzielnego hasła tongue.gif .
Umiem wstawić, żeby przy ładowaniu każdej stronki pytał się o hasło i login, ale chodzi mi o coś troszke innego.
Jedna stronka - coś w rodzaju formularza - podajemy dane (login, haslo itp) i przenosi user'a na stronę przypisaną jego nickowi.
Niestety bazy danych MySQL itp odpadają ... tylko na plikach textowych.
Hmmm .... i to w sumie tyle biggrin.gif

Pewnie dla kogoś kto się na tym zna wyda się banalne, ale ja mam z tym "mały" problem.

Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
Speedy
post 23.01.2006, 02:24:44
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Tworzysz sobie plik z informacjami typu:

login||haslo||strona_docelowa

i po zalogowaniu przekierowywujesz użytkownika w przypisane mu miejsce.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
-Darjus-
post 23.01.2006, 13:59:32
Post #3





Goście







Speedy z tym plikiem z informacjami robiłem podobnie, problem się zaczął jak miałem napisać całą resztę w php. Jak już pisałem wcześniej, dopiero zaczynam php - i są to naprawdę początki winksmiley.jpg - z programowaniem wcześniej też nie miałem za wiele wspólnego, jedyne co to z HTML'em ale to trudno nazwać programowaniem.

Dlatego też sądziłem, że może ktoś ma linka do podobnego skryptu php (który mógłbym wstawić, lub się na nim wzorować), lub ewentualnie - jeśli to nie byłby problem - wyjaśnić dokładnie jak ten skrypt napisać .... tak żeby zrozumiał to taki laik z programowania jak ja biggrin.gif
Go to the top of the page
+Quote Post
-rad3k-
post 4.02.2006, 17:06:41
Post #4





Goście







ja się dopisuje do tematu. Zrobiłem tam. Ktoś wpisuje adres strony. No wiec otwiera się plik index.php. Użytkownik widzi:

podaj login: |________|
podaj hasło: |________|
WYŚLIJ

jako action podaje adres strony głównej na której początku mam taki o to skrypt:

<?php
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;

  1. <?php
  2. if (($_SESSION['username'] == 'xxx') and ($_SESSION['userpass'] == 'xxx')) {
  3. $_SESSION['authuser'] = 1;
  4. } else {
  5. echo "Spróbuj jeszcze raz";
  6. exit();
  7. }
  8. ?>
  9.  
  10. <html>
  11. <head> ..... i tu się zaczyna właściwa treśc strony.


No i teraz problem jest taki, że chciałbym sobie wprowadzic do pliku np. data.txt własnie coś takie jak już ktoś wcześniej sugerował czyli
Kod
|login1|hasło1|logn2|hasło2|login3|hasło3| itd.


I teraz ie wiem jak to zrobic bo narazie moze zalogowac sie tylko jedna osoba o loginie xxx i haśle xxx. A chciałbym tak zrobic zeby mogła zalogowac się każda osoba wpisana do pliku data.txt.

Z php bawię sie 3 dni i bardzo prosze o pomoc - logowanie to mi jest bardzo potrzebne. I jeśli można to napiszcie co mam uzupełnic.
Go to the top of the page
+Quote Post
crash
post 4.02.2006, 17:19:33
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


baza.txt:
Kod
crash|haslo
test|test
admin|superhaslo


  1. <?php
  2. function getUsers( $file )
  3. {
  4.  $data = @file( $file );
  5.  $ret = array();
  6.  
  7.  foreach( $data as $line )
  8.  {
  9. list( $login, $passwd ) = explode( '|', trim( $line ) );
  10.  
  11. if( !empty( $login ) and !empty( $passwd ) )
  12. {
  13.  $ret[ $login ] = $passwd;
  14. }
  15.  }
  16.  
  17.  return $ret;
  18. }
  19.  
  20. print_r( getUsers( './baza.txt' ) );
  21. ?>


Wynik:
Kod
Array
(
    [crash] => haslo
    [test] => test
    [admin] => superhaslo
)


Wszystko czego potrzeba...


--------------------
Go to the top of the page
+Quote Post
-rad3k-
post 4.02.2006, 19:15:28
Post #6





Goście







? ? ? chyba ze mnie niezły tępak. No cóż. Jeszcze raz napisza co i jak mam zrobione i jesli możecie to skopiujcie to moje, zedytujcie i wklejcie.

1. index.php --> tu użytkownik podaje swoje hasło i login. Następnie klika wyślij dane zostają przesłane do pliku index2.php

index2.php
  1. <?php
  2. $_SESSION['username'] = $_POST['user'];
  3. $_SESSION['userpass'] = $_POST['pass'];
  4. $_SESSION['authuser'] = 0;
  5.  
  6.  
  7. if (($_SESSION['username'] == 'rado') and ($_SESSION['userpass'] == 'rado')) {
  8. $_SESSION['authuser'] = 1;
  9. } else {
  10. echo "Spróbuj jeszcze raz";
  11. exit();
  12. }
  13. ?>
  14.  
  15. <html>
  16. <head> . . . no i tutaj znajduje się treśc strony tzn. Menu i inne ..... 


w tym samym katalogu mam plik dane.txt
o treści

Kod
xx1|xxa
xx2|xxb
xx3|xxc


czyli login|hasło

Tak jak prosiłem. Skopiujcie, zedytujcie i wklejcie plik index2.php.

Czyli jeszzcze raz. Chodzi o to, że ktoś otwiera strone i pokazuje mu się okienko logowania - wypełnia, a dane zostają przesłane do pliku index2.php który sprawdza w pliku dane.txt czy hasło i logn jest poprawne. Jeśli tak to pokazuje treśc tego pliku czyli to co pomiędzy <body></body>.
Go to the top of the page
+Quote Post
tiraeth
post 4.02.2006, 21:13:26
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Baza użytkowników (users.dat):
Kod
crash||haslo||strona_docelowa.php
user||pass||homepage.php
lolek||lolus||lolek_page.php


Plik z logowaniem (index.php):
  1. <?php
  2.  
  3. if($_POST['user'] == "" || $_POST['pass'] == "")
  4. {
  5. ?>
  6. <form name="logowanie" action="index.php" method="POST">
  7. Login: <input type="text" name="user" /><br />
  8. Hasło: <input type="password" name="pass" /><br />
  9. <input type="submit" name="submit" value="Zaloguj" />
  10. </form>
  11. <?php
  12. }
  13. else
  14. {
  15.  $file = file("users.dat");
  16.  foreach($file as $userdata)
  17.  {
  18. list($login, $haslo, $redirect) = explode("||", $userdata);
  19. if($login == $_POST['user'] && $haslo == $_POST['pass'])
  20. {
  21.  $_SESSION['username'] = $_POST['user'];
  22.  $_SESSION['user_logged'] = time();
  23.  $_SESSION['redirect'] = "/" . $redirect;
  24.  
  25.  header("Location: " . $redirect);
  26. }
  27.  }
  28.  header("Location: index.php");
  29. }
  30. ?>


Na początku plików dla każdego użytkownika:
  1. <?php
  2.  
  3. if($_SERVER['PHP_SELF'] != $_SESSION['redirect'] || !isSet($_SESSION['user_logged']))
  4. {
  5.  unset($_SESSION['user_logged']);
  6.  unset($_SESSION['username']);
  7.  unset($_SESSION['redirect']);
  8.  header("Location: index.php");
  9. }
  10. ?>
Go to the top of the page
+Quote Post
-rad3k-
post 4.02.2006, 22:08:37
Post #8





Goście







dzięki - zaraz sprawdze jak to działa - wprawdzie nie chodziło mi o to żeby dla każdego użytkownika inną stronę ale myśle że jakoś to sobie dostosuje.

Jakby ktoś zechciał przerobic ten mój to byłbym bardzo wdzięczny:D
Go to the top of the page
+Quote Post
rad3k
post 4.02.2006, 22:36:26
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.02.2006

Ostrzeżenie: (0%)
-----


zrobiłem dokłądnie jak kazałeś tzn.

index.php
users.dat
glowna.php

wszytskie w jednym katalogu

nic nie zmieniałem w treści tylko skopiowałem. Jedynie plik users.dat zmieniłem na taką postac:

Kod
xx||xx||glowna.php
yy||yy||glowna.php
zz||zz||glowna.php


jak wpisuje hasło i login to mi wyskakuje mi znowu okienko logowania

Najbardzie by mi zależało na skrypcie, który sprawdzi plik users.txt i wyciągnie z niego login hasło i zapisze je jako $login $hasło

Ten post edytował rad3k 5.02.2006, 00:06:48
Go to the top of the page
+Quote Post
-Soja-
post 5.02.2006, 13:32:55
Post #10





Goście







Fakt - po wpisaniu loginu i hasła - wyskakuje ponownie strona z logowaniem.
Byłbym też bardzo wdzięczny jakby ktoś to wyjaśnił
Też parę dni się męczę z jakimś kodem ale jakoś nie idzie.
Próbowałem gotowych skryptów i NO WAY .
Widocznie jestem bardzo tempy tongue.gif i mogę tylko prosić o gotowy KOD.

jeśli tego nie uda się objaśnić - może ktoś podejmie się napisania:
dla mnie:
Jest strona główna index.php na niej powinny być okienka na login i pass.
Są tylko 2 userzy , po wpisnaiu jednego zestawu ( login i pass ) Przenosi nas na jedną strone , a po wpisaniu drugich - na drugą.
Chciałbym aby te dane ( login i pass ) nie były ukryte w źródle strony - bo wtedy każdy może je sobie wyciągnąć.

WIem że takich tematów było conajmniej 10 przejżałem większość jednak nic nie potrafię ustawić.
Pomocy
Go to the top of the page
+Quote Post
-Darjus-
post 5.02.2006, 13:58:22
Post #11





Goście







tiraeth dzięki biggrin.gif właśnie o coś takiego mi chodziło. Skrypt byłby idealny (przynajmniej jak dla mnie) gdyby nie jedno ale ....

po wypełnieniu formularza zawsze przenosi z powrotem do index.php, a nie do zdefiniowanej stronki sadsmiley02.gif

Wiem, że to może banalane pytanko, ale jak to naprawić żeby działało tak jak powinno questionmark.gifquestionmark.gif?
Go to the top of the page
+Quote Post
Speedy
post 5.02.2006, 14:50:33
Post #12





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


może spróbuj usunąć z pliku
Kod
header("Location: index.php");


na początku jest ustalone, że ma się ładować zdefiniowana strona, a potem index.php - być może w tym tkwi problem (nie wiem - nie sprawdzałem).


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
-Darjus-
post 5.02.2006, 15:02:12
Post #13





Goście







Wielkie dzięki Speedy exclamation.gif!! biggrin.gif biggrin.gif

Teraz wszystko działa tak jak powinno guitar.gif

Jeszcze raz dzięki za rozwiązanie mojego problemu

Pozdrawiam
Go to the top of the page
+Quote Post
rad3k
post 5.02.2006, 16:14:18
Post #14





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.02.2006

Ostrzeżenie: (0%)
-----


Dzięki! ! ! Wprawdzie nie jest to skrypt którego ja potrzebuje ale w końcu to chyba nie mój temat. Może jakoś uda mi się go dopasowac do moich potrzeb

Ten post edytował rad3k 5.02.2006, 16:42:08
Go to the top of the page
+Quote Post
-Soja-
post 5.02.2006, 16:44:24
Post #15





Goście







U mnie niestety nie działa - po wpisaniu obojętnie jakiej wartości - przenosi mnie na strone "news.php" :| nie mam pojęcią skąd questionmark.gif

wprawdzie w dalszej części strony jest zinkludowana podstrona news.php ...
:/
help
Go to the top of the page
+Quote Post
revyag
post 5.02.2006, 16:59:40
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Przeczytaj dokładnie topic, mam nadzieje że nie zrobiłeś ctrl+c,ctrl+v i lecisz na forum z tekstem że nie działa, hmm ?


--------------------
-------------

------
Go to the top of the page
+Quote Post
rad3k
post 5.02.2006, 17:07:03
Post #17





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.02.2006

Ostrzeżenie: (0%)
-----


ja się męcze z tym dwa dni. O php nie mam zabardzo pojecia, a skrypt musze zrobic wiec prosze o pomoc.

no to co zaobserwowałem. Skrypt w orgialnej wersji nie działa. Jak juz ktoś sugerował usunąłem
Kod
header("Location: index.php");
, ale problem w tym że ten header jest wpisany zarówno do index.php jak i stron docelowych każdego użytkownika? Próbowałem usuwac na rózne sposoby. I oto co zaobserwowałem - raz mi się logował na poprawne hasło ale wtedy nie było to żadne zabezpieczenie bo wystarczyło w przeglądarce potem strone docelową i ominąc logowanie. innym razem znowu nie da się pominą logowania ale jak się loguje to zawsze powraca do index.php i tak wkoło.

Ten post edytował rad3k 5.02.2006, 17:40:14
Go to the top of the page
+Quote Post
-Darjus-
post 5.02.2006, 18:20:54
Post #18





Goście







rad3k wiem o co Ci chodzi ... planowałem wykorzystać ten skrypt do prostego logowania na pewnej małej stronce - nazwijmy to "domowej". W związku z czym nie zależało mi na ochronie stron docelowych przed "podlinkowaniem". Mała grupa docelowych userów itd.

Jednak skoro już to zostało poruszone ... to czy da się zmodyfikować np. ten skrypt napisany przez tiraeth'a tak aby zawsze wymuszał logowanie do strony docelowej, - tak jak napisałeś - aby nie dało się przy wchodzeniu na nią po raz kolejny z tego samego kompa skorzystać z adresów w historii (albo podać gotowy adres) i pominąć logowanie questionmark.gifquestionmark.gif

Jakby dorzucić jeszcze tę opcję to powstałby nam tu całkiem fajny system logowania cool.gif
Go to the top of the page
+Quote Post
rad3k
post 5.02.2006, 18:24:20
Post #19





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.02.2006

Ostrzeżenie: (0%)
-----


dokładnie - ja robie stronke klasowa i chciałbym nadac 20 par login||haslo ale jednak wolałbym żeby inni nie mieli wstepu do strony biggrin.gif
Go to the top of the page
+Quote Post
Darjus
post 5.02.2006, 18:28:35
Post #20





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Czyli robimy podobne strony biggrin.gif przynajmniej jeśli chodzi o ich przeznaczenie.
U mnie dochodziło jeszcze to aby każdem userowi można przypisać inną stronkę ... i to już jest smile.gif

Jakby znalazł się ktoś, kto wymyśli jak do tego "naszego skryptu" dorzucić sprawdzanie logina i hasła przy każdym wejściu na stronkę, to byłbym wdzięczny.

Niestety sam nie umiem wykombinować jak to zrobić sadsmiley02.gif a jak już zaczynam samemu coś mieszać to wszystko się sypie biggrin.gif
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.06.2024 - 21:35