Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesja i logowanie.
Co uważasz o sesji do logowania na stronę?
Co uważasz o sesji do logowania na stronę?
Używaj sesji jak najczęściej! [ 14 ] ** [100.00%]
Nie opłaca się używać sesji do logowania. [ 0 ] ** [0.00%]
Suma głosów: 1
Goście nie mogą głosować 
ano
post
Post #1





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Jak użyć sesji do logowania na stronę? Czy możesz mi napisać przykładowy skrypt?


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


hmm... wiec ja uzywam tak:
Kod
if(poprawny nick i haslo z bazy) {

$_SESSION['user'] = 1;

session_register("nick"); // rejestruje nick

$id = $wiersz['id']; // id pobrany z bazy mysql

session_register("id"); //rejestruje id ktorym posluguje sie user na stronie przez co moze zmienic nicka

echo "Witaj $nick";

} else {

//tutaj formularz

}

a na stronie inncyh wstawiam:
Kod
if(isset($_SESSION[user])) {

echo "jestes zalogowany";

} else {

echo "zaloguj sie";

}

oczywiscie na kazdej stronie musi byc:
Kod
session_start();


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
kotowszczak
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.01.2003
Skąd: Białystok

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


Przykładowy skrypt:
login.php
Kod
<?

//rozpoczecie sesji

session_start();

//gdy wystapiła próba zalogowania

if( $HTTP_POST_VARS['login'] && $HTTP_POST_VARS['pass'] ){

//sprawdzenie poprawnosci wprowadzonych danych

if( $HTTP_POST_VARS['login']=="login" && $HTTP_POST_VARS['pass']="1234"){

  $uzytkownik=$login;

  //zarejestrowanie zmiennej sesji

  session_register('uzytkownik');

  //mozna przekierowac przez naglowek

  header("Location: nastepna_strona.php?".SID);

  //lub uzyc linku

  //print("<a href="nastepna_strona.php">Możesz wejść</a>");

}

else{

  //nieprawidłowy login lub hasło

  print("Próba zalogowania się nie powiodła.");

  exit();

}

}

else{

//gdy nie było próby logowania wyswietl formularz

?>

<h2 align=center>Logowanie</h2>

<form method="post" action="login.php">

<table align=center>

<tr>

  <td>Login: </td>

  <td><input name="login" type="text"></td>

</tr>

<tr>

  <td>Hasło: </td>

  <td><input name="pass" type="password"></td>

</tr>

<tr>

  <td align=center colspan=2><input type="submit" value="Zaloguj"></td>

</tr>

</table>

</form>

<?

}



?>

każda następna strona powinna sie zaczynac
Kod
session_start();

if(session_is_registered('uzytkownik')){

//tresc dla zalogowanego uzytkownika

...

}

else{

print("Uzytkownik nie zalogwany. dostęp zabroniony");

exit();

}


Powinno zadziałać :wink:
Go to the top of the page
+Quote Post
Seth
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


logon.php
Kod
session_start();



if( isset( $_SESSION['login']) ){

  header( 'Location: index.php' );

  exit();

}



if( isset( $_POST['login'] ) && isset( $_POST['pass'] ) ){

  ...

  pobieranie danych z bazy

  $result['pass'] - zmienna z haslem z bazy danych zakodowana md5()

  $result['email'] - email pobrany z bazy danych

  $result['last_ip'] - wiadomo co

  $result['last_logon']- wiadomo co

  ...



  if( isset( $result['pass'] ) ){

    similar_text( md5( $_POST['pass'] ), $result['pass'], &$simres);



    if( $simres == 100 ){ // Sprawdzanie poprawnosci hasla

      $_SESSION['login']      = $_POST['login'];

      $_SESSION['email']      = $result['email'];

      $_SESSION['last_ip']    = $result['last_ip'];

      $_SESSION['last_logon'] = $result['last_logon'];



      header( 'Location: index.php?'.SID ); ' przenosi do strony gdzie ma byc przekazana sesja po zalogowaniu

      exit();

    }

  }



  session_destroy();

  header( 'Location: logon.php?err=1' ); 'jezeli login lub haslo nie zostalo przeslane do skryptu wypisuje blad

  exit();

}else{

  if( isset($_POST['err'] ){

    echo "Jakis komunikat o bledzie";

}

  ...

  miejsce na formularz

  ...

}



index.php
Kod
session_start();

if( isset( $_SESSION['login']) ){

...

jakis kod strony

...

}else{

  session_destroy();

  header( 'Location: logon.php' ); 'jezeli nie ma danych sesji to idziemy do formularza

}
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 Aktualny czas: 22.08.2025 - 02:42