problém (asi) se sessions nebo cache...

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

problém (asi) se sessions nebo cache...

Příspěvek od Václav Sedlář »

Ahoj, pro školu jsem dělal jeden web (php,mysql,html5), kam se přihlašují jednotliví uživatelé...vše fungovalo půl roku dobře ale poslední měsíc se objevil divný problém, který ani nedokážu nasimulovat:

Uživatel zadá přihlašovací jméno a heslo a odešle form do příslušného php, kde se má vše ověřit a v případě že jméno a heslo je ok, tak se do asi 8 session ukládají různá data z databáze + se do jedné session vloží 1 jako že je uživatel přihlášen...

jak to asi v php je:

Kód: Vybrat vše

soubor login.php kam se odesílá form:
<?php 
ob_start(); 
session_start(); // Budeme pracovat se session, musíme je nastartovat.
require '../inc/db.php'; //připojení do DBS
if(isset($_POST['logni'])){//pokud odeslán form pro přihlášení
.....
....//kontrola zda jméno a heslo sedí
...

if(){//pokud jmeno a heslo ok
...//načtení dat z databáze a uložení do sessions-např:
session_regenerate_id();
$_SESSION['prihlasen'] = 1;
$_SESSION['Prava'] = $Vysledek['prava'];
$_SESSION['jmeno_real'] = $Vysledek['jmeno_real'];
$_SESSION['prijmeni_real'] = $Vysledek['prijmeni_real'];
...a tak dál (jen různé názvy session...
//zde ještě zápis do DBS -do logu že proběhlo přihlášení
//a přesměrování na stranu odkud se přihlašovalo:
$strana=$_POST['strana'];
if($strana==''){
$strana="page1";
}
$bl="../index.php?page=".$strana;
header("location: $bl"); // přesměrujeme na úvodní stranu...
}else{//pokud špatné jmeno nebo heslo}
}else{pokud nebyl odeslán form pro přihlášení...}.....
ob_end_flush();//úplně na konci php 
?>
A TEĎ PROBLÉM:
už dvou lidem se stalo, že zadali jméno a heslo dobře a i do logu se zaznamenalo že se přihlásil uživatel (tedy se dostalo i na to ukládání do session, ale pak je to hodilo na stránku odkud se přihlašovali ale přihlášení nebyli (jako by se do session neuložilo nic)...
-zjednodušený příklad (nešlo to do if, ale else):

Kód: Vybrat vše

hlavní stránka:
if($_SESSION['prihlasen'] == 1){
//ukáže se neveřejné menu apod...přihlašovací form se neukáže....
}else{
ukáže se normální stránka bez neveřejného menu ale s přihlašovacím formem
}
Já používám Operu a nikdy se mi to nestalo, oni používají FF a teď se jim to stalo poprvé...když jsem to zkusil přes FF tak se mi to nepodařilo navodit...

Když smazali cache ve FF (nebo otevřeli nové okno FF), tak to prý šlo...

Co s tím? Chtěl jsem ještě zkusit zakázat cache (pragma apod...), jenže nevím jak to udělat validně v HTML5...


Děkuji...
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: problém (asi) se sessions nebo cache...

Příspěvek od arxeiss »

Sessions se ukládají do souborů na serveru, je možné, že prostě zrovna systém nedovolil soubor vytvořit. Nebo se ukládají do jednoho a někdo jiný zapisoval? Nevím jak to přesně chodí, ale možná bych viděl problém v tom.

Každopádně, jestli se to stalo 2x za půl roku, tak to neřeš... Já taky řešil problém, kdy mi zdánlivě jasný dotaz na DB vyhazoval náhodné výsledky, ani na StackOverflow mi nedokázali poradit, ale dělo se o i 4x denně, tak jsem to musel předělat, toto bych fakt neřešil dokud to nebude opravdu obtěžovat pořád...
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: problém (asi) se sessions nebo cache...

Příspěvek od Václav Sedlář »

Díky, také jsem to svedl na server...nechám to tedy být...

ještě jedna věc - Opera a FF mají funkci pro obnovení relace (prostě když mám otevřeno 5 tabů a zavřu prohlížeč, tak při opětovném spuštění se znova načtou ty poslední taby...) a když mám v opeře otevřené ty mé stránky a přihlásím se a pak bez odhlášení zavřu operu, tak při opětovném spuštění se musím přihlásit - to je dobře a tak to chci...

Ale u FF ne - ten po otevření je přihlášený...heslo jsem ve FF neukládal, tak přihlašovací údaje neví...jak udělat, aby se i u FF při obnovení stránky musel uživatel přihlásit?
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: problém (asi) se sessions nebo cache...

Příspěvek od 1Pupik1989 »

Do DB si ulož čas přihlášení a postupně aktualizuj. Pokud je čas starší jak třeba hodinu, tak to znamená, že tam už není. Po opětovném příchodu zjistíš čas a podle toho ho odhlásíš.

V přihlašovacím souboru ještě na začátek session_destroy(). Možná jen zvyk, ale klid v duši.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: problém (asi) se sessions nebo cache...

Příspěvek od Václav Sedlář »

ok,zatím je vše zase v pořádku-když se to bude opakovat, tak to tak udělám...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: problém (asi) se sessions nebo cache...

Příspěvek od Václav Sedlář »

tak koukám do logu a zase několikrát za sebou přihlášení - takže se asi zase ten stejný uživatel nemohl přihlásit a zkoušel to několikrát po sobě...

Já už fakt nevím - dělá to jen u toho jednoho uživatele - ostatní nemají problém... :evil:
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: problém (asi) se sessions nebo cache...

Příspěvek od Exp »

To ale značí nesystémovou chybu, může mít nakoplej prohlížeč...
Odpovědět

Zpět na „Programování a web“