Výsledky 1 až 7 z 7

Téma: session_start() az po loginu

  1. #1

    Post session_start() az po loginu

    Zdravim!
    V ramci optimalizace webu premyslim, ze session budu inicializovat az v momente, kdy se overi uzivatel, ne pro vsechny.
    Uvod je primitivni, proste:
    Kód:
    if($_GET['action'] == 'login'){
      
    $query = mysql_query( "SELECT ...... " );
    
      while($user = mysql_fetch_array($query)){
        
        session_start();
        $_SESSION['login'] = $_POST['login'];
    
        atd...
      }
    }
    problem je nasledujici - logicky po akci loginu to redirectuje na index.php, kde samozrejme musim taky nastartovat sessions, jak ale zjistim, ze to mam nastartovat? Lamu si nad timto hlavu a porad nemuzu na nic prijit. Mam totiz pevnou hlavicku, ta akce loginu je samozrejme nad ni kvuli session cookies. Mam dojem, ze by to slo udelat jenom za predpokladu, ze hlavicka by nebyla staticka napr. index.php?page=login ale ty soubory, ktere jsou pouze v privatni casti, by na zacatku mely to session_start() - zkratka bylo by to napr. login.php, users.php apod. Diky za jakekoliv napady.
    :: DESKA :: Gigabyte Z68-UD3 :: CPU :: Intel Core i5 2500K :: VGA :: ATI Sapphire Radeon 5700 Vapor Chamber :: RAM :: 4x 4GB Kingston PnP Grey :: HDD :: 1TB WD Black ::

  2. #2
    Member
    Založen
    21.10.2002
    Bydliště
    Praha Petřiny
    Věk
    43
    Příspěvky
    309
    Vliv
    267

    Standardní Re: session_start() az po loginu

    A co to udelat tak, ze pokud se uzivatel uspesne priloguje, redirektovat ho na index.php a v neuspesnem pripade ho redirektovat na login.php ?
    Hope is the first step on the road to disappointment.
    Alcohol is the first step towards alcoholism.

  3. #3

    Standardní Re: session_start() az po loginu

    No mam pocit, že nic takovýho neexistuje. Prostě jí znova nastartuj. Myslim, že to hlásí jenom Notice: Session allready started (sem si vymyslel). Takže buď ještě vypnout hlášení poznámek nebo použít lokální potlačení hlášek @session_start();
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  4. #4

    Standardní Re: session_start() az po loginu

    A co tohle?

    Kód:
    if (!isset($_SESSION)) {Session_start();}
    -- under construction --

  5. #5

    Standardní Re: session_start() az po loginu

    Thx, mrknu na to
    :: DESKA :: Gigabyte Z68-UD3 :: CPU :: Intel Core i5 2500K :: VGA :: ATI Sapphire Radeon 5700 Vapor Chamber :: RAM :: 4x 4GB Kingston PnP Grey :: HDD :: 1TB WD Black ::

  6. #6
    Member Avatar uživatele ..::Ozzy::..
    Založen
    27.05.2004
    Bydliště
    Vlašim@Benešov
    Věk
    42
    Příspěvky
    176
    Vliv
    244

    Standardní Re: session_start() az po loginu

    Citace Původně odeslal Hardman
    V ramci optimalizace webu premyslim, ze session budu inicializovat az v momente, kdy se overi uzivatel
    A jaky je to problem? Vzdit stci udelat jen podminku misto toho cyklu ne?

    treba nejak takhle
    Kód:
    if (mysql_num_rows($result) == 0) return;
    
    $user = mysql_fetch_object($result);
    
    session_start();
    
    $_SESSION["user"] = $user -> name;
    $_SESSION["passwd"] = $user -> passwd;
    Jinak bych tu SESSION startoval nekde mimo tzn.: ne v index.php ale treba login.php kde se provedou prislusna overeni a pak redirekt na index.php nebo na neco jineho, kde jeste pred hlavickama bude metoda, ktera bude overovat zda nevyprselo casove kvantum, ktere dostal treba 15 min. (900 sec.) popripade muzes overovat i jina data dle obsahu SESSION.

    IMHO ten while cyklus je to same to co jsem napsal ja. Nevidim v nem zadnou zavaznou chybu, ktera by se mela menit (optimalizovat) az na to ze je obsolote.

    EDIT:

    neco rychleho.

    soubor login.php

    Kód:
    <?php
    
    if (!isset($_POST["logingOn"])) return; // poslu ho do haje pokud to neslo z meho logovaciho formulare
    
    $res = mysql_query("SELECT .....");
    
    if (mysql_num_rows($res) == 0) return; // take neprijatelne
    
    session_start();
    
    $_SESSION["name"] = addslashes(htmlspecialchars($_POST["name"]));
    $_SESSION["passwd"] = htmlspecialchars(md5($_POST["passwd"]));
    $_SESSION["time"] = time() - 900; // nastavim casovou znacku o 15min. dozadu
    
    
    header("location:// na zabezpecenou stranku");
    ?>
    soubor validation.php

    Kód:
    <?php
    session_start();
    
    $res = mysql_query("SELECT ....... name = $_SESSION["name"] && passwd = $_SESSION["passwd"]");
    
    if (mysql_num_rows($res) == 0) return; // posles ho zas do kytek nejlepe na prihlaseni :-)
    
    if ($_SESSION["time"] > time()) return; // uz tu dlouho nic neudelal
    
    $_SESSION["time"] = time() - 900;
    
    ?>
    ostatni soubory do kterych nechces aby ti nekdo vstoupil bez autentizace

    Kód:
    <?php
    require_once("validation.php");
    ?>
    <!--  no a tady je uz ten tvuj bezpecnej zbytek //-->
    Psal jsem to z hlavy a rovnou sem takze pokud to pouzijes tak to bude chtit doladit.
    Naposledy upravil ..::Ozzy::..; 20.06.2006 v 00:34.
    Software is like SEX,
    it's better, when it's FREE!

    by Linus Torvalds
    PC:AMD Barton 2500+@3200+ 1,75V locked|ACC rev2|Soltek SL-K600-C|2x512MB DDR433 CL2.5|Saegate80GB 2MB cache ATA/133 + Samsung250GB 8MB cache ATA/133|ATi Saphire R9600XT 537/640|Acer LCD 20" AL2016W 16:10|DVD LG4120|Genius Home Theatre 5.1|Logitech Click@Mouse|dolby keyboard|3R-System case soft moded|TV Tuner Leadtek Winfast DTV1000T|Gentoo 2005.1|KDE 3.5 sometimes switch to WinXP
    Work NB: HP nw8000 + Qtek8310

  7. #7

    Standardní Re: session_start() az po loginu

    Hm, to je dobry, ale ma to malou vadu, kdyz na kazde strance budu resit DB tak to radsi tam uz necham tu session, protoze si v rychlosti vubec nepomuzu, ba naopak - toto me uz napadlo taky
    Uz jsem to vyresil - prachobycejne jsem rozdelil stranky pro public a user sekci a kdyz $page patri do soukrome sekce tak se nastartuje session.
    :: DESKA :: Gigabyte Z68-UD3 :: CPU :: Intel Core i5 2500K :: VGA :: ATI Sapphire Radeon 5700 Vapor Chamber :: RAM :: 4x 4GB Kingston PnP Grey :: HDD :: 1TB WD Black ::

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. chyb polozka po startu PC nejde nacist se souboru WIN.INI
    Založil Visi v sekci fóra Ostatní operační systémy
    Odpovědí: 4
    Poslední příspěvek: 26.11.2005, 18:38
  2. LCD problem po zapnuti PC = VIDEO MODE NOT SUPPORTED
    Založil blueeye_ke v sekci fóra Monitory
    Odpovědí: 20
    Poslední příspěvek: 04.10.2005, 00:46
  3. Po flashi Chepoman's BIOSu bez FW neslo instaloavt XP
    Založil Sleyo1 v sekci fóra BIOSy
    Odpovědí: 2
    Poslední příspěvek: 07.01.2003, 14:09
  4. Proč win XP po spuštění čekají asi minutuM?
    Založil Snippet v sekci fóra Ostatní operační systémy
    Odpovědí: 10
    Poslední příspěvek: 07.01.2003, 07:25
  5. Pravidelná modrá obrazovka po zapnutí
    Založil atnarfus v sekci fóra Ostatní operační systémy
    Odpovědí: 4
    Poslední příspěvek: 19.11.2002, 13:12

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •