Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: oddzielne hasło dla każdej rangi
Forum PHP.pl > Forum > PHP
kubal
Witam winksmiley.jpg
Mam problem ze zrobieniem takiego panelu logowania że dla każdej rangi która jest załogą(Site Coder, Administrator, Moderator) będzie oddzielne hasło do logowania się do panelu... ale przed tem oczywiscie muszę się zalogować za pomocą swojego hasła i loginu ;] Kod jakiś tam napisałem ale nie działa prawidłowo... co prawda wyświetla się od moderatora w zwyższ ale jak jestem np. moderatorem i podam hasło Site codera to mnie normalnie zaloguje itp. :-/ Może coś na to poradzicie.? Tak to się prezentuje na dzień dzisiejszy:

Bardzo proszę o pomoc w naprawie tego... winksmiley.jpg
SirZooro
Po pierwsze wyrzuć ukryte pola z nazwą użytkownika i hasłem - są one widoczne w kodzie strony, a to nie jest bezpieczne. Co zaś się tyczy logowania, to masz w linii z if'em sprawdzającym hasła dwa problemy:
- operator && ma wyższy priorytet niż ||, więc wyrażenie będzie działać inaczej niż sobie założyłeś;
- aby rozróżnić użytkowników na podstawie wpisywanych haseł, musisz sprawdzenie rozbić na trzy if'y, po jednym dla każdego hasła.
kubal
to jak mniej-więcej miałoby to wyglądać? bo próbuje i nic... :/
SirZooro
Coś słabo kombinujesz smile.gif
  1. <?php
  2. if (isset($_POST['code']))
  3. {
  4. if ($_POST['code'] == $coder_code)
  5. echo 'Ala';
  6. elseif ($_POST['code'] == $admin_code)
  7. echo 'ma';
  8. elseif($_POST['code'] == $mod_code)
  9. echo 'kota';
  10. }
  11. ?>
kubal
tak próbowałem ale nie działa sad.gif
udało mi się to w końcu zrobić smile.gif miało to wyglądać tak:
Kod
if (isset($_POST['code']) && ($_POST['code'] == $sysop_code && $row['class'] == UC_SYSOP || $_POST['code'] == $admin_code && $row['class'] == UC_ADMINISTRATOR || $_POST['code'] == $mod_code  && $row['class'] == UC_MODERATOR))

ale dzięki za próbę pomocy winksmiley.jpg

Cytat
Po pierwsze wyrzuć ukryte pola z nazwą użytkownika i hasłem - są one widoczne w kodzie strony, a to nie jest bezpieczne.


czyli ze jak to mam zrobić? coś na podstawie sesji?
jak by to miało wyglądać?
SirZooro
To super że sobie w końcu poradziłeś smile.gif

Odnośnie ostatniego pytania - po sprawdzeniu nazwy użytkownika i hasła zapisujesz w sesji jego identyfikator. Potem możesz na tej podstawie sprawdzić czy użytkownik jest już zalogowany, zamiast przesyłać login i hasło w ukrytych polach formularza.
kubal
wybacz ale nie rozumiem sad.gif z sesjami nigdy nie miałem nic do czynienia sad.gif
SirZooro
No wybacz, ale Google nie gryzie blink.gif
kubal
czytałem ale nic mi to nie dało sad.gif próbowałem tak:

session_start(); na początku pliku
i potem
Kod
if(!isset($session_id))
   $session_id = $username;

i
Kod
<input type="hidden" name="session_id" value="$session_id">

ale chyba źle :/

Proszę o pomoc sad.gif
ShadowD
Mog... ;p

Jak masz napisane sesionstart() na wszystkich stronach na których używasz sesji to wystarczy napisać:
$session_id='jakieś tam id';
po przejściu na następną stronę piszesz:
echo $session_id;
i wyświetla Ci się:
jakieś tam id
Tylko na obu stronach musisz mieć sesionstart() i nie musisz nic z formularzami robić formularze są tylko do zmiennych a w zasadzie do tablic $_GET, $_POST, pliki i tyle...
kubal
próbuje już nie wiadomo jak długo i ciągle nie działa sad.gif
proszę o pomoc...
qrees
Cytat(ShadowD @ 8.08.2008, 21:22:00 ) *
Mog... ;p

Jak masz napisane sesionstart() na wszystkich stronach na których używasz sesji to wystarczy napisać:
$session_id='jakieś tam id';
po przejściu na następną stronę piszesz:
echo $session_id;
i wyświetla Ci się:
jakieś tam id
Tylko na obu stronach musisz mieć sesionstart() i nie musisz nic z formularzami robić formularze są tylko do zmiennych a w zasadzie do tablic $_GET, $_POST, pliki i tyle...

Jakim cudem session_id miałoby być widoczne na następnej stronie? przecież się tam nie teleportuje...
Tutaj jest przykład użycia sesji: http://pl2.php.net/manual/en/function.session-start.php , naprawdę tak trudno zajrzeć na jedną stronę?
jezoo
Najprosciej jak mozna sesji do logowania uzyc to chyba tak, przyklad:

index.php
  1. <?php
  2. // Rozpocznij sesje
  3.  
  4. // Sprawdz czy istnieja sesje jezeli tak to przejdz dalej
  5. if(isset($_SESSION['uid']) && isset($_SESSION['kod'])) {
  6. // Sprawdz czy uid i haslo sa poprawne jezeli tak wyswietl strone
  7. if($_SESSION['uid'] == $uid && $_SESSION['kod']==$passwd)
  8. echo 'Witaj w tajnym dziale ;)';
  9. else
  10. // W przeciwnym wypadku wyswietl blad
  11. echo "To se ne da!";
  12. }else
  13. // Tutaj formularz do logowania lub
  14. // header('Location: plik.php);
  15. ?>


a jezeli chodzi o zapis do sesji to w pliku z autentykacja zapisz tak:
spr.php
  1. <?php
  2.  
  3. $_SESSION['uid'] = $_POST['uid'];
  4. $_SESSION['kod'] = $_POST['kod'];
  5.  
  6. header('Location: index.php');
  7. ?>
kubal
ok dzięki winksmiley.jpg

a teraz mam już ostatnie pytanko ;] chciałbym hasła umieścić w innym pliku i zakodować je w md5
jak to zrobić.?
.radex
najpierw stwórz sobie taki generator, który zahaszuje hasła do md5

  1. <?php
  2. echo md5('tutaj_haselko');
  3. ?>


jak już masz hash hasła, to wstawiasz go do pliku

  1. <?php
  2. $haselko = 'ab2348yjasdd23';
  3. ?>


i ten plik wczytujesz za pomocą include/require

  1. <?php
  2. include 'plik_z_haselkami.php';
  3. ?>
kubal
ale to nie wszystko trzeba coś jeszcze zmienić w tym if-ie
Kod
if (isset($_POST['code']) && ($_POST['code'] == $sysop_code && $row['class'] == UC_SYSOP || $_POST['code'] == $admin_code && $row['class'] == UC_ADMINISTRATOR || $_POST['code'] == $mod_code  && $row['class'] == UC_MODERATOR))

tylko co...?!
.radex
  1. <?php
  2. if (isset($_POST['code']) && (md5($_POST['code']) == $sysop_code && $row['class'] == UC_SYSOP || md5($_POST['code']) == $admin_code && $row['class'] == UC_ADMINISTRATOR || md5($_POST['code']) == $mod_code && $row['class'] == UC_MODERATOR))
  3. ?>


Reszty chyba nie muszę tłumaczyć.
kubal
to wielkie dzięki za pomoc winksmiley.jpg
teraz wszystko jest tak jak chciałem winksmiley.jpg
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.