Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie użytkownika niezaleznie od domeny
patryk9200
post 30.03.2010, 19:28:22
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Cześć,

Potrzebuję na potrzeby strony stworzyć panel logowania za pomocą którego gdy się zaloguję to do wielu usług jednocześnie, chodzi coś jak zrobione to jest w Windows Live ID. Raz się loguję, a rozpoznaje mnie na wszystkich serwisach.
Próbowałem sam coś takiego zrobić ale mam taki problem, że gdy zaloguję się na stronę np. mojastrona.pl to automatycznie loguje mnie również na np. mojastrona.pl/innastrona/, natomiast gdy wejdę na adres mojastrona.pl/innastrona/ i się zaloguje to nie rozpozna mnie już na mojastrona.pl.
Ma ktoś pomysł albo może mi podpowiedzieć jak to rozwiazać? wolałbym nie robić tego na zasadzie przekierowania ponieważ wtedy koliduje mi to z inną funkcją którą zbudowałem na potrzeby strony.

.
Powód edycji: [batman]: nobody expects spanish inquisition
Go to the top of the page
+Quote Post
Michaxxx
post 30.03.2010, 19:30:23
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

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


urzytkownika
Ee... Nie wystarczy sesja?
Go to the top of the page
+Quote Post
Wykrywacz
post 30.03.2010, 21:01:29
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Zrób tak na każdej "stronie" weryfikuj sobie użytkownika, sprawdzając czy wartości w $_SESSION są pełne.
Najprostszy przykład
  1. <?php
  2. if (isset($_SESSION['usr']) and isset($_SESSION['pas']){
  3. // I tu sobie zgodnie ze szczwanym planem sprawdzasz czy faktycznie user o takim haśle istnieje.
  4. }else {
  5. //Jeżeli nie to wywalasz mu panel do logowania, w którym po prawidłowym zalogowaniu wrzucasz jego usr i pas do $_SESSION
  6. }
  7. ?>

W ten sposób raz się logujesz, a potem hasasz radośnie po całej reszcie tam i nazad.
Go to the top of the page
+Quote Post
patryk9200
post 30.03.2010, 21:10:03
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


sesja owszem, z tym, że działa ona tylko do domeny głównej i podkatalogów, natomiast ja potrzebuję, żeby działało to tak, że zaloguję sie w jakimś wirtualnym katalogu i rozpozna mnie też na domenie głównej


Cytat(Wykrywacz @ 30.03.2010, 22:01:29 ) *
Zrób tak na każdej "stronie" weryfikuj sobie użytkownika, sprawdzając czy wartości w $_SESSION są pełne.
Najprostszy przykład
  1. <?php
  2. if (isset($_SESSION['usr']) and isset($_SESSION['pas']){
  3. // I tu sobie zgodnie ze szczwanym planem sprawdzasz czy faktycznie user o takim haśle istnieje.
  4. }else {
  5. //Jeżeli nie to wywalasz mu panel do logowania, w którym po prawidłowym zalogowaniu wrzucasz jego usr i pas do $_SESSION
  6. }
  7. ?>

W ten sposób raz się logujesz, a potem hasasz radośnie po całej reszcie tam i nazad.

teoretycznie mogę tak zrobić, ale nie jest to najbezpieczniejsze rozwiazanie
Go to the top of the page
+Quote Post
Wykrywacz
post 30.03.2010, 21:13:45
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Nie czaje albo jestem za głupi dla tego pytania, albo to pytanie dla mnie.

Budujesz sobie katalogi

główny
-- podkatalog zjedz moje szelki
-- podkatalog jaja strusia
----- pod katalog pod katalogu wapienne schadzka

Każdy z nich ma swój index.php i domeny kolejno do nich prowadzące to
główny -> glowny.pl
zjedz moje szelki -> zjedzmojeszelki.pl
...
..
itd.

O takiej sytuacji mówisz? Bo nie czaje gdzie kolwiek wrzucisz w $_SESSION i będziesz ją potem sobie odświerzał i sprawdzał czy w $_SESSION o tych i tych parametrach są dane.. no puki przeglądary nie zamknięsz wszędzie będzie cie witać jak swojego....
Go to the top of the page
+Quote Post
WebSee
post 30.03.2010, 21:22:05
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 3
Dołączył: 6.12.2009

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


Wystarczy, że zapiszesz w sesji także nazwę strony lub adres, na którą się logujesz.

<?php
session_start();
if (isset($_SESSION['usr']) and isset($_SESSION['pas'] and $_SESSION['pagename'] == 'nazwastrony/adres'){
// I tu sobie zgodnie ze szczwanym planem sprawdzasz czy faktycznie user o takim haśle istnieje.
}else {
//Jeżeli nie to wywalasz mu panel do logowania, w którym po prawidłowym zalogowaniu wrzucasz jego usr i pas do $_SESSION
}
?>

I przy logowaniu zawsze do zmiennej $_SESSION['pagename'] wysyłasz nazwę strony/adres

Pozdrawiam
Go to the top of the page
+Quote Post
zend
post 30.03.2010, 21:29:14
Post #7





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Jeżeli dobrze zrozumiałem to musisz mieć kilka tablic wielowymiarowych w sesji
  1. //tak inicjujesz
  2. $_SESSION['strona1'] = array('login' => 'xxx' , 'pass' => 'xxx');
  3. $_SESSION['moja_strona'] = array('login' => 'xxx' , 'pass' => 'xxx');
  4.  
  5. //tak sprawdzasz
  6. if(isset($_SESSION['moja_strona']['login']) && $_SESSION['moja_strona']['login'] == 'poprawny login'))
  7. {
  8.  
  9. }
Go to the top of the page
+Quote Post
Wykrywacz
post 30.03.2010, 21:31:45
Post #8





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Ale po co mu ten pagename? przecież weryfikacji i tak nie będzie opierał na samym sprawdzeniu issetem czy jamiś tam ==

Patryk strzelasz se tablice z użytkownikami gdzie trzymasz parametry do weryfikacji i na każdej stronie po tym gdzie jedziesz najpierw issetem sprawdzasz czy jest wogóle po co zawracać sobie głowe nie mówiąc o bazie. W każdym razie jak isset jest wporzo to walisz mu jakims sprawdzaczem typu

  1. $super_select = mysql_query("select count(*) from super_tablica_z_userami where user = addslashes($_SESSION['iser']) and pass= md5($_SESSION['pass']);
  2. potem jakieś sprawdzonko czy taki user jest typu
  3. if (mysql_num_rows($super_select) > 0){
  4. return 'jest wporzo';
  5. }else{
  6. return 'nie ma surfowania bez logowania';
  7. }


I tak na każdej nowo otwieranej stronie i styknie bez jakiś tam pagenameów,

Ten post edytował Wykrywacz 30.03.2010, 21:32:30
Go to the top of the page
+Quote Post
zend
post 30.03.2010, 21:48:18
Post #9





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


"mojastrona.pl to automatycznie loguje mnie również na np. mojastrona.pl/innastrona/, natomiast gdy wejdę na adres mojastrona.pl/innastrona/ i się zaloguje to nie rozpozna mnie już na mojastrona.pl" zakładam, że dane dostępowe są inne stąd te problemy
Go to the top of the page
+Quote Post
Wykrywacz
post 30.03.2010, 22:58:51
Post #10





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Prawdę mówiąc ciekaw jestem jak widzielibyście bezpieczeństwo takiego skryptu bez jakiej kolwiek wspólnej autoryzacji, jeżeli jest to ileś serwisów z osobnymi bazami userów. Bo o ile jeszcze jestem wstanie wyobrazić sobie przy większej ilości skalę tworzenia powiązań to cały czas powracam mi jedno zasadnicze pytanie "Po jaką cholerę", skoro najlepszy efekt wymaga stworzenia 1 tabeli?
Go to the top of the page
+Quote Post

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: 14.06.2025 - 10:45