Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> md5 i sesja
mitp
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


Witam.

Moje pytanie jest następujące: Hasła w bazie są kodowane. Przy logowaniu zakodowane hasła porownuje za pomocą:

  1. <?php
  2. $password = md5($password);
  3. $zapytanie = "SELECT * FROM cos WHERE
  4.  user = '$user' and
  5.  password = '$password' ";
  6. ?>


czyli bez "$password = md5($password);" nie szło bo widział inne hasła a nie zakodowane ...

teraz pytanie - jezeli pare linijek niżej tworzę sesję to ...

1) sesja utworzy mi się z zakodowanym hasłem?

  1. <?php
  2. session_register("password");
  3. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mitp
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


Ok. to moze poprosze o pomoc jak miało by to wyglądać poprawnie. Ja mam tak:

formularza nie bede przedstawial. skrypt autoryzacja.php

  1. <?php
  2.  
  3. $user = $_POST['user'];
  4. $password = $_POST['password'];
  5.  
  6. if (($user=='') AND ($password=='')) {
  7. header("Location: blad1.php");
  8. } else {
  9. // połącz sie z MySQL
  10. $conn = mysql_connect( "localhost", "...", "..." );
  11. if(!$conn) {
  12. echo 'Brak połączenia z bazą danych.';
  13. }
  14. // wybierz właściwą bazę danych
  15. $db = mysql_select_db('aaa');
  16. if(!$db) {
  17. echo 'Błąd wyboru bazy danych.';
  18. }
  19. // znajdź pasujący wiersz
  20. $password == md5($password);
  21. $zapytanie = "SELECT * FROM bbb WHERE
  22.  user = '$user' and
  23.  password = '$password' ";
  24. $wynik = mysql_query( $zapytanie );
  25. if(!$wynik) {
  26. echo 'Nie można wykonać zapytania.';
  27. }
  28.  
  29. $wiersz = mysql_fetch_row( $wynik );
  30. $ile = $wiersz[0];
  31. if ( $ile > 0 ) {
  32.  
  33.  
  34. header("Location: cos/index.php");
  35. } else {
  36. header("Location: blad2.php");
  37. }
  38. }
  39.  
  40. ?>


pozniej na kazdej podstwonie zaczyna mi sie w ten sposob:

  1. <?php
  2.  
  3.  if (!isset($user)) {
  4.  header("Location: blad_autoryzacji.php");
  5.  } else {
  6.  
  7. echo'tresc strony';
  8. }
  9.  
  10. ?>


Jeśli chodzi o tabele mam w niej pola:
- id
- user
- password
- status
( status moze przyjac wartość 0 "standardowo dla normalnych uzytkownikow" i 1 dla "administratora" )

I tu mam pytanie. Jak rozpoznać, jakie wykonać zapytanie ażeby sprawdzić jaki status ma dany użytkownik.
Chodzi mi o to że np. jak mam strone index.php ( to tu mogą wchodzić wszyscy ( uzytkownicy którzy mają status 0), ale po wejściu np. do strony tajna.php chcę sprawdzić który użytkownik ma status 1, a który 0 w bazie.
Ten co ma status 1 będzie mógł zobaczyć zawartość strony, a ten co ma 0 pojawi mu sie komunikat iż nie ma uprawnień do przeglądania tej strony.

Tylko jak to zapisac??

pomozecie?

Ten post edytował mitp 11.09.2006, 22:20:48
Go to the top of the page
+Quote Post
My4tic
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Źle mnie zrozumiałeś w kilku sprawach więc Ci to poprawie.

  1. <?php
  2. $user = strip_tags($_POST['user']);
  3. $password = strip_tags($_POST['password']);
  4.  
  5. if ( empty($user) OR empty($password) ) {
  6. header('Location: blad1.php');
  7. } 
  8.  
  9. else {
  10. $conn = mysql_connect( 'localhost', '...', '...' );
  11. if(!$conn) {
  12.  echo 'Brak połączenia z bazą danych.';
  13.  exit;
  14. }
  15.  
  16. $db = mysql_select_db('aaa');
  17. if(!$db) {
  18.  echo 'Błąd wyboru bazy danych.';
  19.  exit;
  20. }
  21.  
  22. $password = md5($password); 
  23. $zapytanie = 'SELECT * FROM bbb WHERE user = '.$user.' AND password = '.$password;
  24. $wynik = mysql_query( $zapytanie );
  25. if(!$wynik) {
  26. echo 'Nie można wykonać zapytania.';
  27. }
  28.  
  29. $wiersz = mysql_fetch_row( $wynik );
  30. $ile = $wiersz[0];
  31. if ( $ile > 0 ) {
  32.  $_SESSION['bUserStatus'] = TRUE; // zalogowany
  33.  header('Location: cos/index.php'); // tresc dla zalogowanego
  34. } 
  35.  
  36. else {
  37. header('Location: blad2.php');
  38. }
  39. }
  40. ?>



  1. <?php
  2.  if ( $_SESSION['bUserStatus'] == FALSE ) { // nie jest zalogowany
  3. header('Location: blad_autoryzacji.php');
  4.  } 
  5.  else echo'tresc strony';
  6. ?>



Cytat
I tu mam pytanie. Jak rozpoznać, jakie wykonać zapytanie ażeby sprawdzić jaki status ma dany użytkownik.
Chodzi mi o to że np. jak mam strone index.php ( to tu mogą wchodzić wszyscy ( uzytkownicy którzy mają status 0), ale po wejściu np. do strony tajna.php chcę sprawdzić który użytkownik ma status 1, a który 0 w bazie.
Ten co ma status 1 będzie mógł zobaczyć zawartość strony, a ten co ma 0 pojawi mu sie komunikat iż nie ma uprawnień do przeglądania tej strony.

Tylko jak to zapisac??


W SQL nie trzymasz zadnego statusu usera. Do tego masz sesje. Skrypt powinien działać.

Ten post edytował My4tic 11.09.2006, 22:37:04
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 09:56