Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 28 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok NapísalOffline : 13.11.2013 13:38

Ahojte , viem ze sa to tu uz mnohokrat riesilo , aj som si pozrel asi zo desat stran ale nikde som nenasiel co by mi vysvetlilo moj problem .
Mam index, prihlasenie, overenie.php kde mam v indexe po prihlaseni logout a vypis session meno priezvysko a este timestamp na autologout, v prihlaseni len html form table s action na overenie kde su overenia a prihlasenie a po uspesnom prihlaseni header location na index.
Problem je v tom ze po prihlaseni a nacitani indexu mi to zobrazi len to co je pred logout, vypisom prihlaseneho a autologout, ale ked zakomentujem autologout mi to zobrazi celu stranku ako ma byt.
Som si vedomi ze tam mam spoustu chyb ale neviem ich sam najst a potreboval by som vasu pomoc. Za ochotu vam vopred dakujem.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 13.11.2013 14:27

Ukáž kód, zo slovného popisu toho veľa nevyčítame







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 13.11.2013 14:33

index
Kód:
<?php
include ('db1.php');

//$currentCookieParams = session_get_cookie_params();
//$rootDomain = 'http://localhost/Projekt/log/prihlasenie.php';
//
//session_set_cookie_params(
//    $currentCookieParams["lifetime"],
//    $currentCookieParams["path"],
//    $rootDomain,
//    $currentCookieParams["secure"],
//    $currentCookieParams["httponly"]
//);
//
//session_name('mysessionname');
//session_set_cookie_params('60', '/', '.localhost/Projekt/log/prihlasenie.php');

if(empty($_SESSION))
session_start();

//setcookie(sesion_name, time() + 60, '/', $rootDomain);
//session_regenerate_id(true);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">
...
        </form>
      <form id="" name="" class="" method="">
            <table class="odhlas">
                <tr>
                    <td>
<?php
if(!empty($_SESSION['heslo']) AND !empty($_SESSION['id']) AND !empty($_SESSION['login']))
{
    echo "<b>Name:</b> ".$_SESSION['name']." ".$_SESSION['lastname']."<br />";
    echo "<a href=\"".$_SERVER['PHP_SELF']."?action=Log_Off\">Log Off</a>";   
}
else
{
    session_destroy();
    header("location:log/prihlasenie.php");
    exit;
}

if(isset($_GET['action']) AND $_GET['action'] == 'Log_Off')
{
    $_SESSION['name']='';
    $_SESSION['lastname']='';
    $_SESSION['login']='';
    $_SESSION['heslo']='';
    $_SESSION['id']='';
    unset($_SESSION['name']);
    unset($_SESSION['lastname']);
    unset($_SESSION['login']);
    unset($_SESSION['heslo']);
    unset($_SESSION['id']);
    session_destroy();
    header("location:log/prihlasenie.php");
    exit;
}

if (isset($_SESSION['logged']['timestamp']) && ($_SESSION['logged']['timestamp'] < time()-120))
{
    session_destroy();
    header("location:log/prihlasenie.php");
    //$this->logoutUser();
    return false;
}
else if(isset($_SESSION['logged']['timestamp']))
{
    $_SESSION['logged']['timestamp'] = time();
    return true;
}

?>
                    </td>
                </tr>
            </table>
        </form>     
    </div>
...
</html>

prihlasenie
Kód:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">

<head>
    <title>User login</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <!--<meta http-equiv="Content-type" content="text/html; charset=windows-1250" />-->
</head>

<body>
<?php
 echo "<h1>Login</h1>
     Hello input can only registered user.
    <form action=\"../log/overenie.php\" method=\"POST\">
        <div><label for=\"login\">Login:</label></div>
        <div><input type=\"text\" Name=\"login\"></div>

        <div><label for=\"heslo\">Password:</label></div>
        <div><input type=\"password\" name=\"heslo\"></div>

        <div><input type=\"submit\" name=\"go\" value=\"Ok\"></div>
    </form>";
?>
</body>
</html>

overenie
Kód:
<?php
if(empty($_SESSION))
session_start();
foreach ($_COOKIE as $key => $value)
{
    if(get_magic_quotes_gpc()) $_COOKIE[$key]=stripslashes($value);
    $_COOKIE[$key] = mysql_real_escape_string($value);
}
function safe($value)
{
   return mysql_real_escape_string($value);
}
if(isset($_POST['go'])){
    if(isset($_POST['login']))
    {
        $login = htmlspecialchars(trim(safe($_POST['login'])));
        if($login == '')
        {
                unset($login);
        }
    }
    if(isset($_POST['heslo']))
    {
        $heslo = htmlspecialchars(trim(safe($_POST['heslo'])));
        if($heslo == '')
        {
                unset($heslo);
        }
    }
    if(empty($login) or empty($heslo))
    {
        echo "<script language=javascript> alert('Fill in all fields.') </script>";
       
//        echo "<script language=javascript> alert('Fill in all fields.') </script>";
//        session_destroy();
        //header("location:../log/prihlasenie.php");
    }
   
    $heslo = \md5($heslo);
    $heslo = "ao9q1".$heslo."g5ds8";
   
    include ('../db1.php');
    header( 'Content-Type: text/html; charset=UTF-8' );
    $q1 = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$login."'") or die($q1."<br/>".  mysql_error());
    if(!$q1)
    {
        echo (mysql_error() . ' - ' . mysql_errno());
    }
    else
    {
        if(mysql_num_rows($q1)==1)
        {
            $r1 = mysql_fetch_assoc($q1) or die($q1."<br/>".  mysql_error());
            header( 'Content-Type: text/html; charset=UTF-8' );
            $q2 = mysql_query("SELECT * FROM `users` WHERE `id`='".$r1['id']."' AND `pass`='".$heslo."'") or die($q2."<br/>".  mysql_error());
            if(!$q2)
            {
                echo mysql_error() . ' - ' . mysql_errno();
            }
            else
            {
                $_SESSION['logged'] = array();
                session_regenerate_id();
                $r2 = mysql_fetch_assoc($q2) or die($q2."<br/>".  mysql_error());
                $_SESSION['id'] = $r2['id'];
                $_SESSION['heslo']= $r2['pass'];
                $_SESSION['login'] = $r2['login'];
                $_SESSION['name'] = $r2['name'];
                $_SESSION['lastname'] = $r2['lastname'];
                $_SESSION['logged']['timestamp'] = time();
                header("Location: ../index.php");
            }
        }
        else
        {
            echo ("Uzivatel s timto menom neexistuje.");
            session_destroy();
            header("location: ../log/prihlasenie.php");
        }
    }
} else { header("Location: ".$_SERVER['SERVER_ROOT']." ../log/prihlasenie.php"); }
?>


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 13.11.2013 15:22

Nechce sa mi to úplne celé čítať, ale tak zbežne vidím nejaké podivnosti so session.
Za prvé session_start musí byť na začiatky VŽDY, takže žiadna podmienka if(empty...)
Za druhé, session_destroy zničí všetky session, nemusíš ich pred tým explicitne ničiť.

To prvé by mohlo robiť blbosti, vyskúšaj.
Inak tam teraz nič nevidím, skús ešte raz trochu popísať problém. Podľa mňa by sa za normálných okolností mal index načítať...







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 13.11.2013 15:34

no v indexe to zobrazi posledne log off a ten zvysok uz nezobrazi.
som zakomentoval aj unset cize som tam nechal len to destroy s headerom a exit, tiez som dal session_start pod include aj pred include a stale to iste.
sa mi zda ako keby mi tam nieco chybalo co to potrebuje , alebo tam mam nieco zle zadane .
tak isto otazka ked mam toto
Kód:
if (isset($_SESSION['logged']['timestamp']) && ($_SESSION['logged']['timestamp'] < time()-120))
{

tak to logged a timestamp musim mat vytvorene aj v databaze ako napriklad name ci lastname ???


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 13.11.2013 15:55

session_start volaj len raz, nikdy nie viac krát.

A aká databáza, takto k tomu session, lebo v tom máš asi trochu chaos:
To, čo máš v session, máš uložené v session a hotovo. Pozri sa na session ako na prístup k súboru. Keď zavoláš prvý krát session_start, vytvorí sa na servri súbor len pre tvoj prehliadač (pre danú sešnu - sedenie - s prehliadačom) Odvtedy sa všetky session premenné ukladajú do tohoto súboru.
Keď zavoláš session_start druhý krát (z rovnakého prehliadača, až kým ho nezavrieš), on si tam ten súbor nájde a otvorí - a obnoví všetky session premenné (ak nenájde, otvorí nový)
session destroy tento súbor zmaže, takže sa potom znovu vytvorí nový.

Takže skús teraz znovu poriadne premyslieť tú prácu so session, vyhádž zbytočnosti a pošli nejaký kratší kód znovu, ak ti to stále nebude fungovať. A daj do indexu nejaké značky, kde sa ti to sekne a kedy.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 13.11.2013 16:14

V kazdom subore v ktorom pouzivam session mam na zaciatku po include (db) session_start() , potom v danom subore uz ,teda v tom istom subore, nemam pouzite session_start.
Posielam s indexu keby bolo trebalo aj s tych dvoch nieco tak ta poprosim sa na ne tu hore pozriet pred tym.
index
Kód:
<?php
include ('db1.php');
session_start();
?>
...
<?php
if(!empty($_SESSION['heslo']) AND !empty($_SESSION['id']) AND !empty($_SESSION['login']))
{//ked je prihlaseny
    echo "<b>Name:</b> ".$_SESSION['name']." ".$_SESSION['lastname']."<br />";
    echo "<a href=\"".$_SERVER['PHP_SELF']."?action=Log_Off\">Log Off</a>";   
}
else
{//ked nie je prihlaseny
    session_destroy();
    header("location:log/prihlasenie.php");
    exit;
}

if(isset($_GET['action']) AND $_GET['action'] == 'Log_Off')
{//po stlaceni log off
    session_destroy();
    header("location:log/prihlasenie.php");
    exit;
}
//pre automaticke odhlasovanie
if (isset($_SESSION['logged']['timestamp']) && ($_SESSION['logged']['timestamp'] < time()-120))
{//po uplinuti casu 2 minut je odhlaseny
    session_destroy();
    header("location:log/prihlasenie.php");
    return false;
}
else if(isset($_SESSION['logged']['timestamp']))
{//pri refreshi stranky alebo pri nejakej aktivite sa nastavi new time
    $_SESSION['logged']['timestamp'] = time();
    return true;
}
?>
...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 13.11.2013 18:03

Tie returny vyhádž preč, pretože príkazom return sa ti vykonávanie skriptu ukončí (rovnako ako pri funkcií exit)
To asi nechceš... hlavne v tej posledne else if vetve

A session_start by vždy mala byť úplne prvá funkcia, ktorá s volá. Takže hneď na začiatku súboru, bezprostredne po <?php







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 14.11.2013 7:45

ooou , Dakujem , uz to pracuje ako ma :) chvalabohu

Otazka ako do tohto zakomponujem admina u ktoreho sa zobrazi to iste co aj userovi len s detailom ze bude mat moznost nie len sa odhlasit ale skocit na registraciu new users?
Cital som o tom nieco malo ale nepochopil som tomu a netusim jak to spravit.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 14.11.2013 11:18

Adminovi by som doporučil urobiť zvlášť stránky (typicky tvojastranka.sk/admin)
Aj keď teraz chceš odlíšiť len pár vecí, je dosť pravdepodobné, že postupom času sa tie odlišnosti budú zväčšovať a keď to budeš mať v jednom kóde, čoskoro sa v tom stratíš.

To len tak na okraj, že určite má zmysel kopírovať užívateľské rozhranie, v tomto prípade.
No a ako, no tak najjednoduchšie je, keď adminovi nastavíš ešte nejaký príznak naviac (v session) a upodmienkuješ to.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 14.11.2013 12:37

Ked admin je uz zapisany do databazy ako user len mu prihodit titul admin, len to potrebujem.
Dobra myslienka aj to tak spravim.
Som aj spravil take daco , ak sa prihlasi admin tak ho hodi na stranku kde je jedna tabulka a v nej dva odkazy (mozno raz button alebo submit) , jeden vedie na registraciu a jeden na index.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 14.11.2013 14:08

Aha, no v databáze to môžeš buď vyriešiť ďalším stĺpcom v tabulke, ale to je trochu nešikovné. Dá sa predpokladať, že tých adminov bude oproti užívateľom málo, takže to tam zbytočne bude zaberať miesto.
No a lepšie, urob si tabulku Admins s dvoma stĺpcami: admin_id a user_id. admin_id bude autoincrement (klasické id, mala by mať každá tabulka) a user_id bude user_id admina. No a admina otestuješ len tak, že si vytiahneš JOIN ON(user_id) tabuliek Admins a Users







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 14.11.2013 14:38

hm dobre vytvorim tabulku s admin_id s a_i a user_id co asi najskor bude varchar . Moja otazka je podla coho alebo co sa bude vkladat do toho user_id ? Bud s registracie rovno to tam hadzat alebo to manualne robit ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 14.11.2013 16:13

user_id bude cudzí kľúč (foreign key) z tabulky Users. Ak nevieš, čo je to cudzí kľúč a ako pracuje JOIN, tak si to rýchlo naštuduj, bude sa ti to hodiť.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 15.11.2013 7:57

porazi ma asi ... no stale pretrvava problem s prihlasenim , nie ako takym , ide o to ze mam v indexe kontrolu prihlasenia , ak je prihlaseny sa zobrazi index a ak nie tak sa zobrazi login ale nefunguje
Kód:
if(!empty($_SESSION['heslo']) AND !empty($_SESSION['id']) AND !empty($_SESSION['login']))
{//ked je prihlaseny
    echo "<b>Name:</b> ".$_SESSION['name']." ".$_SESSION['lastname']."<br />";
    echo "<a href=\"".$_SERVER['PHP_SELF']."?action=Log_Off\">Log Off</a>";   
}
else
{//ked nie je prihlaseny
    session_destroy();
    header("location:log/prihlasenie.php");
    exit;
}

je v tomto kode nejaka chyba preco to nepracuje ako ma ?

Stym FOREIGN KEY mi to dajak nejde , neviem koli comu ale na w3school som nasiel ako sa vytvara a s nejakeho dovodu to nejde , nevies co by v tom mohlo byt ?
Vypisuje to obcas aj tento error Cannot add foreign key constraint , neviem preco nemoze pridat , skusal som vytvorit novu tabulku v db aj do straj a nebere stale vyhodi nejaky error.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 15.11.2013 13:36

Tak niečo proste robíš blbo.
Neviem, čo je na tom ťažké - človek príde, skript zistí, že session neexistuje, tak ukáže stránku login. Tam sa človek prihlasi, session sa vytvorí a ide znovu na to isté. Tam ale skript pre zmenu zistí, že session existuje, tak zobrazí inú stránku.
Je to jednoduché, nerob to zložito a pôjde to.
Inak, keď vytváraš a ničíš niektoré session premenné furt pri sebe (ako ty heslo, id a login), stačí ti kontrolovať existenciu jedného (pretože tie ostatné určite existujú)
Ale lepšie je dať to ako $_SESSION["nieco"][heslo"] = $heslo a $_SESSION["nieco"]["login"] = $login atd.
Tak sa ti stačí pýtať na existenciu $_SESSION["nieco"];

No a čo sa databází týka, to je veda sama o sebe. Študuj a skúšaj, tak sa to naučíš najlepšie.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 18.11.2013 8:21

ved toto ze to nie je nic tazke a malo by to ist , na localhoste ze to pracuje mi nepomoze , pretoze na servery kde je linux to nepracuje a stale robi to iste , neviem co zmenit ci dorobit aby to slapalo aj tam ...
Vdaka za radu s tym SESSION ulahci to robotu.

No jo toho som si vedomi ze sa to tak najlepsie clovek nauci.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 18.11.2013 9:04

Joj no ale to, že ti to na localhoste ide a na servri nie, je úplne iný problém. Tam chybu v kóde hľadať netreba (spočiatku)







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 18.11.2013 10:46

a kde potom ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 18.11.2013 10:58

No v prvom rade musíš zistiť, prečo ti to na jednom ide a druhom nie. Pozri verziu php, či si na nejakom obmedzenom hostingu atď...
Ak ti to na localhoste ide, musí ti to ísť aj na servri, ak na ňom budeš mať rovnaké podmienky. Tým, že je tam linux, to určite nie je (teda možno nepriamo - oprávnenia apod., ale len kvôli tomu určite nie)







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 20.11.2013 15:17

Heh no praveze chalan co ma nastarosti ten server na ktori sa to nahadzuje vravi ze musel prepisat nieco v kode aby to islo a netusim ani v najmensom co a ani preco to na serveri nejde. Samozrejme ze mi to ani povedast nechce a ze mam hladat a prist na to sam.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 20.11.2013 15:40

A tak isteže mohol, ale najprv je treba určiť, kde je problém ;)
Nože spýtaj sa ho a napíš, čo ti odpovie.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 21.11.2013 7:13

hm no uz vela krat povedal : dojdi na to . ja som musel v kazdy subor prepisat . To je jeho odpoved. Este som sa dozvedel ze to par riadkov pomenil , ale ktore a ako to je uz zahalene tajomstvom.
Ale pri podrobnejsom preskumani som teraz prisiel nato ako to funguje a kde je asi chyba :) Ked nie som prihlaseny ma to nehodi na login ako na localhoste, ked si zas zadam stranku loginu a prihlasim sa ma to hodi len na prazdnu stranku miesto toho aby ma to hodilo na index a pri odhlaseni ma to nehodi na prihlasenie ale ostane kde je ale pri tom odhlasi.

Admina som uz poriesil, takto :
Kód:
else
            {
                $ad = mysql_query("SELECT t2.users_id FROM users AS t1 INNER JOIN admins AS t2 ON t1.id = t2.users_id WHERE t1.`login`='".$login."'") or die($q1."<br/>".  mysql_error());
                if(mysql_num_rows($ad)==1) //ak sa users.id nachadza v admins.users_id tak prihlas do admina ak nie tak prihlas uzivatela
                {
                    $_SESSION['logged'] = array();
                    $_SESSION['hlas'] = array();
                    session_regenerate_id();
                    $r2 = mysql_fetch_assoc($q2) or die($q2."<br/>".  mysql_error());
                    $_SESSION['hlas']['id'] = $r2['id'];
                    $_SESSION['hlas']['heslo']= $r2['pass'];
                    $_SESSION['hlas']['login'] = $r2['login'];
                    $_SESSION['name'] = $r2['name'];
                    $_SESSION['lastname'] = $r2['lastname'];
                    $_SESSION['logged']['timestamp'] = time();
                    header("Location: ../admin/admin.php");
                }
                else
                {
                    $_SESSION['logged'] = array();
                    $_SESSION['hlas'] = array();
                    session_regenerate_id();
                    $r2 = mysql_fetch_assoc($q2) or die($q2."<br/>".  mysql_error());
                    $_SESSION['hlas']['id'] = $r2['id'];
                    $_SESSION['hlas']['heslo']= $r2['pass'];
                    $_SESSION['hlas']['login'] = $r2['login'];
                    $_SESSION['name'] = $r2['name'];
                    $_SESSION['lastname'] = $r2['lastname'];
                    $_SESSION['logged']['timestamp'] = time();
                    header("Location: ../index.php");
                }
            }


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 28.11.2013 9:59

Pri odhlasovani musim dva krat kliknut aby odhlasilo, ako je to mozne v com to moze byt ?
Kód:
echo "<a href=\"../log/odhlasenie.php?action=Log_Off\">Log Off</a>";

Kód:
session_start();
if(isset($_GET['action']) AND $_GET['action'] == 'Log_Off')
{
    unset($_SESSION['name']);
    unset($_SESSION['lastname']);
    unset($_SESSION['login']);
    unset($_SESSION['heslo']);
    unset($_SESSION['id']);
    session_destroy();
    $_SESSION['name']=false;
    $_SESSION['lastname']=false;
    $_SESSION['login']=false;
    $_SESSION['heslo']=false;
    $_SESSION['id']=false;
    session_regenerate_id(true);
    header("location: ../log/prihlasenie.php");
}


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 28.11.2013 10:05

Už som ti písal, že to nemusíš robiť tak zložito. Stačí
Kód:
session_start();
if(isset($_GET['action']) AND $_GET['action'] == 'Log_Off')
{
    session_destroy();
    header("location: ../log/prihlasenie.php");
}

a hotovo.

Ešte nemusí byť na škodu pred destroy dať session_unset();







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 28.11.2013 10:22

Dobre dakujem , teraz to nebude robit to ze miesto jedneho kliku na log off odhlasi az po dvoch kliknutiach ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 28.11.2013 10:51

To, prečo ťa odhlási až po dvoch kliknutiach je záhada. Ak to neprestalo, tak máš niečo veľmi podivne. Znamenalo by to, že sa pri niekoľkých kliknutiach nevykoná vždy rovnaký kód, alebo tam máš niekde zlé závislosti.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.13
Prihlásený: 12.12.13
Príspevky: 64
Témy: 7
Bydlisko: Senec
Príspevok Napísal autor témyOffline : 28.11.2013 10:58

Teraz neviem ci to este robi ako som to vsetko vymazal ako si mi poradil ... ale ked to tam este bolo tak po prvom kliknuti najskor nahodilo do adresy vlastne co je v <a href=""> a druhy krat ked sa kliklo tak uz odhlasilo


Odpovedať na tému [ Príspevkov: 28 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie+pridat mozne login mena

v PHP, ASP

5

696

08.03.2009 1:35

DeeJay3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. login.php sesion{nepamata si prihlasenie}

v PHP, ASP

2

546

28.08.2010 16:54

Bokos Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. login

v PHP, ASP

2

648

26.02.2009 15:01

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Login

v Redakčné systémy

4

1288

01.06.2006 12:53

Exodus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. login

v PHP, ASP

16

1235

13.09.2009 13:29

kaidžas Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. icq login

v Sieťové a internetové programy

15

1595

07.05.2008 21:47

lio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. login tabulka

v Redakčné systémy

0

1295

08.04.2006 14:27

pe3x Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. admin login

v Ostatné programy

3

541

20.06.2010 20:46

Milanese Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nejaký login

v Redakčné systémy

3

556

14.03.2007 19:53

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Proftpd login

v Operačné systémy Unix a Linux

1

364

25.04.2012 23:00

webkar Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Remote login?

v PHP, ASP

3

722

21.01.2011 18:10

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba login

v PHP, ASP

6

542

22.04.2016 23:58

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Admin + login

v PHP, ASP

1

607

30.12.2009 22:27

tomxi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. login SESSION

v PHP, ASP

4

358

08.05.2014 11:38

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoduchy login

v Ostatné

7

590

05.09.2013 14:03

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP login script

v PHP, ASP

7

3410

08.02.2010 8:42

juho Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra