Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

System logowania . Problem $_SESSION['']

PHP

  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 29.08.2011 19:34

Witam , mam problem . odnośnie funkcji $_SESSION
Porprostu logowanie działa poprawnie , dane są sprawdzane poprawnie , tylko sesja się nie rejestruje :) .

Skąd to wiem ?
Odp. Postawiłem warunenk podczasz logowania :
if (!isset($_SESSION['login']))

I nadal mogę się logować , nawet jak wcześniej zalogowałem się poprawnie :
Kod : login.php
 
<?
include('config.php');
include('connect.php');
 
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$hasz = md5($haslo);
 
 
$wynik = mysql_query("SELECT * FROM $tbuser WHERE
       login='$login' and haslo='$hasz'");
 
 
if (mysql_num_rows($wynik) == 1) 
{
$informacja = mysql_fetch_array($wynik);
$_SESSION['login'] = $informacja['login'];
header('Location: ../index.php ');
} 
else 
{
echo '<p>Zostały wprowadzone nieprawidłowe dane</p>';
}
 
?>

  • +
  • -
  • 0

#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 29.08.2011 19:39

Spróbuj zamienić:
if (!isset($_SESSION['login']))
Na:
if (isset($_SESSION['login']))

  • +
  • -
  • -1

#3 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 29.08.2011 19:40

Fili ... bez komentarza.
chyba wiem jak stawia się warunki.

Użytkownik Gh0st edytował ten post 29.08.2011 19:40

  • +
  • -
  • 0

#4 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 29.08.2011 19:47

zamiast $_SESSION['login'] = $informacja['login'];
daj session_register($login);

Użytkownik MarWit edytował ten post 29.08.2011 19:48

  • +
  • -
  • 0

marwit-0.png


#5 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 30.08.2011 08:28

@up nadal nic
  • +
  • -
  • 0

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 30.08.2011 10:41


<?

session_start();

include('config.php');

include('connect.php');

 

$login = $_POST['login'];

$haslo = $_POST['haslo'];

 

$hasz = md5($haslo);

 

$wynik = mysql_query("SELECT * FROM $tbuser WHERE   	login='$login' and haslo='$hasz'");

 

if (mysql_num_rows($wynik) == 1) {

   	$informacja = mysql_fetch_array($wynik);

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

   	header('Location: ../index.php ');

} else {

  	echo '<p>Zostały wprowadzone nieprawidłowe dane</p>';

}

?>

 


Użytkownik G[o]Q edytował ten post 30.08.2011 10:43

  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#7 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 30.08.2011 12:33

Zakładam że będziesz do tego dorabiał styl i to Ci może sprawić problem Dołączona grafika
W każdym pliku gdzie będzie logowanie (zapewne każdy plik) musisz dodać session_start()..

Musi to być na początku każdego pliku (nawet przed doctype!)

Więc robisz tak:
<?php
session_start();
ob_start();
?>
<! DOCTYPE (...)>
<!--Tu html -->
<?php
/* Tu twoj kod logowania */
?>


@ zapomniałem jeszcze o jednym..
Nadaj plikowi kodowanie bez BOMu, bo będą errory że sesja już jest wysyłana ;)

Użytkownik Blak Rajder edytował ten post 30.08.2011 12:43

  • +
  • -
  • 1
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#8 Hiroshima

    Godlike

  • Przyjaciel

Reputacja: 1 327
Godlike

  • Postów:4 984
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Málaga
Offline

Napisano 30.08.2011 12:43

czy do takiego skryptu logowania nie lepiej dorzucic pare zabezpieczen? tak na wypadek np SQL Injection? Dołączona grafika

mysql_real_escape_string na przyklad?

$_POST['login'] = mysql_real_escape_string($_POST['login']);
$_POST['haslo'] = mysql_real_escape_string($_POST['haslo']);

  • +
  • -
  • 1

#9 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 30.08.2011 15:39

@blak Rajder , tak masz racje. Zapomniałem o Session_start :).
Sprawdzę jak będę miał możliwość czy działa :) To night

Ok , dzięki działa :)
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: PHP

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych