Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Logowanie na sesjach, Proszę o pomoc...
phonnix
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

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


Witam.

Od kilku dni robię swoją stronę (grę rpg) mam już zrobioną rejestrację, logowanie, i kilka innych rzeczy. Chcę zrobić coś takiego, że jak się logujesz, wpiszesz poprawnie Login i hasło to cię przenosi do strony na którą można weść jak się jest zalogowanym, jeśli nie jesteś zalogowany to przenosi cię do logowanie. I to jest moje pytanie ja to można zrobic głowiłem się nad tym sporo czasu, pomyślałem, żeby tutaj użyc sesji ($_SESSION['zalogowany']=1;
$_SESSION['user']=$l; ) czy jakoś tak. Proszę o pomoc

Oto mój kod logowania :

CODE
ob_start();
require_once('./config.php'); // załaczamy plik config.php

session_start();

function usun($data){

GLOBAL $dbc;
if (ini_get('magic_quotes_gpc')){
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $dbc);
}
if (isset($_POST['submit'])){

if (empty($_POST['login'])){
$message .= 'Nie podałeś loginu
';
$l = FALSE;
}else{
$l = usun($_POST['login']);
}

if (empty($_POST['haslo'])){
$message .= 'Nie podałeś hasła
';
$h = FALSE;
}else{
$h = usun($_POST['haslo']);
}
if ( $l && $h ){

$query = "SELECT username, access FROM user WHERE username='$l' AND haslo=password('$h')";
$result = mysql_query($query);
$row = mysql_fetch_array ($result, MYSQL_ASSOC);
if($row){
session_start();
$_SESSION['username'] = $row['username'];
$_SESSION['access'] = $row['access'];
$_GET['cmd'] = 'ok';
header ("Location: start.php"); // przekierowuje nas na jaka strone chcemy
}else{
$message .= 'Błędne hasło lub login
';
}
mysql_close();
}else{
$message .= 'Spróbuj jeszcze raz';

}
{
$_SESSION['zalogowany']=1;
$_SESSION['user']=$l;
}
}
ob_end_flush();
?>


Ten post edytował phonnix 30.07.2008, 20:51:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
chemik1982
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 20.03.2007
Skąd: Bydgoszcz

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


Cytat
czyli "1" oznacza, że jestem zalogowany, ale skąd może to wiedzieć skrypt?
Nigdzie nie pisałem, że tak ma być


Wiem ze nie pisales. Natomiast wartosc tej zmiennej jest ustawiana podczas logowania.
Napisalem ci warunek:

  1. <?php
  2. if (login()){
  3. $_SESSION['zalogowany']=1;
  4. header('Location: dalej');
  5. }else{
  6.  header('Location: do logowania');
  7. }
  8. ?>


Musisz dopisac sobie funkcje login(), ktora sprawdzi tobie czy dane podane przez uzytkownika zgadzaja sie z danymi w bazie. Jesli tak funkcja musi zwrocic ci true w innym wypadku false. Mozesz do tej funkcji przekazac parametry login i haslo.

Pobierz i/lub ustaw ścieżkę zapisu bieżącej sesji.

Polecam przetestowanie. W tym katalogu zapisze ci sie plik sesji. Otworz go sobie i zobacz co sie zapisalo. Podpowiem ze, jest to forma zserializowana, taki sam efekt uzyskalbys stosujac funkcje serialize() na jakiejs zwyklej zmiennej.
Na co niektorych serwerach, szczegolnie darmowych, warto a nawet trzeba to stosowac, kwestia bezpieczenstwa, doczytaj sobie w necie.
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: 9.10.2025 - 03:39