[php]sesja nie działa


(batmomobil) #1

Przekazywanie sesji logowania przestało działać,proszę o pomoc.próbowałem metodą POST też nie działa.

?php include("config.php");

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo']; if ((empty($nick)) AND (empty($haslo))) {

echo '
Nie byłe¶ zalogowany albo zostałe¶ wylogowany
Strona Główna
';

exit;}if(isset($_GET['nick']))

$nick=$_GET['nick']; $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' LIMIT 1"));

 if (empty($user[id]) OR !isset($user[id]))	{

echo '
Nieprawidłowe logowanie.
';

exit;

}																																																																																																																																																																																																																																										

// tresc dla zalogowanego uzytkownika


echo 'Ogl±dasz profil: '.$user[nick].'';			

[/code]

(flaszer) #2

Na początku każdej strony musisz mieć zadeklarowane:

session_start();

Potem do konkretnej wartości sesyjnej odwołujesz się, bez żadnych POSTów:

$_SESSION['nazwa_zmiennej'];

(batmomobil) #3

ok działa,tylko jak teraz wyświetlić usera,jeśli wcześniej sprawdzałem tak z logowania:

$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' LIMIT 1"));

    if (empty($user[id]) OR !isset($user[id])){

echo '
Nieprawidłowe logowanie.
';

exit;

}// tresc dla zalogowanego uzytkownika

echo 'Ogl±dasz profil: '.$user[nick].'';

,teraz to nie działa.


(flaszer) #4

Zwraca Ci "Nieprawidłowe logowanie"? Pozbyłeś się tych wszystkich "$_GET['nick']"?


(batmomobil) #5

Tak usunąłem

session_start(); include("config.php"); $nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];                                                                                                                                                                                                                   

echo 'Witaj '.$user.'';

tylko jak teraz wyświetlę usera??echo 'Witaj '.$user.'';


(flaszer) #6

Kiedy użytkownik jest już zalogowany, na każdej z podstron wystarczy wpisać:

<?php                                                                               

session_start();                                                                        

$nick = $_SESSION['nick'];

echo 'Witaj '.$nick;

(batmomobil) #7

Raz działa,a raz nie działa przekazywania sesji.Nie wyświetla zalogowanego usera.Wyświetla tylko jak przechodzi z profili,czyli z:

session_start(); include("config.php"); $nick = $_SESSION['nick'];

$haslo=$_SESSION['haslo']; echo 'Witaj '.$nick;

do

session_start(); include("config.php");

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];

if(isset($_GET['nick']))

$nick = $_GET['nick']; echo 'Ogl±dasz profil: '.$nick;

,z linków nie działa,co grane???


(flaszer) #8

Po pierwsze, co masz na myśli mówiąc - z linków nie działa? Po drugie, pokaż kod uwierzytelniania. Po trzecie - na każdej stronie startujesz sesje? I ostatnie, ale i najważniejsze - zacznij lepiej formatować kod który tu wysyłasz bo nie da się go czytać.


(batmomobil) #9

Zgadza się na każdej podstronie startuje sesję,przedtem sprawdzałem tak jak napisałem w poście wyżej i działało do teraz.Jeśli chodzi o kod uwierzytelniania to nie wiem jak to zapisać.Może jakieś przykłady.ostatnia sprawa o to formatowanie na forum,bo wklejając kod rozsypuje się,może powinienem zmienić edytor kodu"aleykode".Co zrobić z tą sesją bo nie wyświetla usera,wyświetla tylko jak się przechodzi z profili w dany profil,gdzie jest

include("config.php");

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];

if(isset($_GET['nick']))

$nick = $_GET['nick'];

GET.


(Masters87) #10

coś ten system logowania jest skopany:

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];

if(isset($_GET['nick']))

$nick = $_GET['nick'];

nie rozumiem po co pobierasz nick z tablicy GET, wcześniej odczytujesz ten nick z tablicy SESSION

Poczytaj najpierw o sposobach autoryzacji...


(batmomobil) #11

Chyba skopany jest system logowania

<?php session_start(); include("config.php"); 

$login = $_POST['login'];

$haslo = $_POST['haslo'];

$haslo = addslashes($haslo);

$login = addslashes($login);

$login = htmlspecialchars($login);

if ($_GET['login'] != '') { //jezeli ktos przez adres probuje kombinowac

exit;

}

if ($_GET['haslo'] != '') { //jezeli ktos przez adres probuje kombinowac

exit;

}

$haslo = md5($haslo); //szyfrowanie hasla

   if (!$login OR empty($login)) {

echo '
Wypełnij pole z loginem!';

include("login.php");

exit;

}

   if (!$haslo OR empty($haslo)) {

echo '
Wypełnij pole z hasłem!';

include("register.php");

exit;

}

$istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `uzytkownicy` WHERE `nick` = '$login' AND `haslo` = '$haslo'")); // sprawdzenie czy istnieje uzytkownik o takim nicku i hasle

    if ($istnick[0] == 0) {

echo 'Logowanie nieudane. Sprawdź pisownię nicku oraz hasła.';

    } else {

$_SESSION['nick'] = $login;

$_SESSION['haslo']=$haslo; if ((empty($login)) AND (empty($haslo))) {

echo '
Nie byłeś zalogowany albo zostałeś wylogowany
Strona Główna
';

exit;

}				

$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$login' AND `haslo`='$haslo' LIMIT 1")); if(empty($user[id])OR!isset($user[id])) {	

echo '
Nieprawidłowe logowanie.
';

exit;

}	

// tresc dla zalogowanego uzytkownika

[/code]