Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie na sesjach
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Witam. Zrobiłem sobie "na surowo" skrypt logowania oparty na sesjach. Z tą jednak różnicą, że nie ma możliwości rejestracji, tylko sprawdza się dane znajdujące się w instrukcji warunkowej if. "Na surowo" wszystko działało ładnie, ale jak "włożyłem" to do mojej strony to niestety nie działa... Składa się z 4 plików:
login.php
admin.php
przykladowa.php
sprawdz.php

Kod pliku login.php :

Kod
<?php
session_start();
session_register("zalogowany");

if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;

function ShowLogin($komunikat=""){
    echo "$komunikat<br>";
    echo "<form action='index.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=password name=haslo><br>";
    echo "<input type=submit value='Zaloguj!'>";
    echo "</form>";
}

?>
<!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" lang="pl" xml:lang="pl">
   <head>
     <title>moja strona</title>
          <link rel="stylesheet" href="admin.css" type="text/css" />
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
            <meta name ="description" content="Moja strona domowa" />
            <meta http-equiv="content-language" content="pl" />
   </head>
   <body>
        <div id="top">
            <div id="gora">
                <div id="goralewo">
Moja strona domowa
                </div>
            </div>
        </div>
<div id="logo">
    LOGO
</div>
            
            <div id="menu">
             <ul>
                    <li><a href="index.php">Strona Główna</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
             </ul>
            </div>
            
        <div id="glowne">
            
            <div id="tresc">

    <?php

if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
        if ($_POST['login']=='mefiuu' && $_POST['haslo']=='mefiuu1') {
            $_SESSION["zalogowany"]=1;
            echo "Zalogowano poprawnie.<a href='admin.php'>Przejdź</a> do panelu Administratora.
            <br><a href='login.php?wyloguj=tak'>wyloguj się</a>";

            }

        elseif ($_POST['login']=='Admin' && $_POST['haslo']=='Admin2') {
            $_SESSION["zalogowany"]=2;
            echo "Zalogowano poprawnie.<a href='admin.php'>Przejdź</a> do panelu Super Administratora.
            <br><a href='login.php?wyloguj=tak'>wyloguj się</a>";

            }
        else echo ShowLogin("Podano złe dane!!!");
        }
    else ShowLogin();
}


?>

            </div>

        </div>        
            <div id="stopka">
              &copy; Created by Mati
            </div>
        
   </body>
</html>



No i powinno po wpisaniu login : Admin hasło: Admin2 pokazać mi plik admin.php lub jeśli źle wpiszę to pokazać, że są złe dane. a Tu ni stąd ni z owąd przenosi mnie na index.php. Czy ja tu gdzieś dałem przekierowanie a nie widzę ? Po wpisaniu: www.mojastrona.pl/przykladowa.php pojawia się komunikat o niezalogowaniu, ale jak się zaloguję to i tak to nic nie daje...
Go to the top of the page
+Quote Post
gsmphone
post
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 20.10.2006

Ostrzeżenie: (0%)
-----


przenosi cię na index bo sam mu to napisałeś żeby zrobił:

echo "<form action='index.php' method=post>";

Zmień index.php na inną to będzie przenosić gdzieś indziej
Go to the top of the page
+Quote Post
ferrero2
post
Post #3





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tak dałeś, wysyłasz dane poprzez przycisk submit, jeżeli naciskasz przycisk wykonuje się to co zapisałeś w FORM ACTION czyli u Ciebie
  1. <?php
  2. echo "<form action='index.php' method=post>";
  3. ?>
Go to the top of the page
+Quote Post
Mefiuu
post
Post #4





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


O matko... Rzeczywiście dałem jeszcze na tamtej "surowej". Ale to nie zmienia faktu że nadal mi pokazuje że nie mam dostępu do strony ;/
Go to the top of the page
+Quote Post
marek44
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 3.06.2009

Ostrzeżenie: (0%)
-----


Nie używaj session_register(), tylko rób tak
  1. <?php
  2. if(co&#347;tam){
  3. $_SESSION['zalogowany']='ok';
  4. }
  5. ?>


Ten post edytował marek44 3.07.2009, 13:07:42
Go to the top of the page
+Quote Post
Mefiuu
post
Post #6





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


hmmm.. no nie wiem, bo jak miałem to w "surowej" stronie to wszystko było ok i nie narzekałem. Ktoś ma inną pomoc dla mnie może ?
Go to the top of the page
+Quote Post
bemol
post
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


a jak sprawdzasz zalogowanie?
nie czasem:
  1. <?php
  2. $_SESSION['zalogowany'] == '1'
  3. ?>
?
bo jeśli tak to zmień na
  1. <?php
  2. $_SESSION['zalogowany'] > 0
  3. ?>


i dodatkowa rada, tak jak kolega wyżej:
NIE używaj session_register()! a przypisuj odrazu wartość do tablicy sesji.

po zalogowaniu adminem:
  1. <?php
  2. if($_SESSION["zalogowany"]!=1){
  3. ?>

to nie ma sensu, bo cały czas będzie ci pokazywało formularz, zmień na:
  1. <?php
  2. if($_SESSION["zalogowany"]<1){
  3. ?>


Ten post edytował bemol 3.07.2009, 21:10:08
Go to the top of the page
+Quote Post
Mefiuu
post
Post #8





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Błąd odnalazłem, da się teraz zalogować. Powstał jednak inny problem. Po wejściu do panelu admina, kiedy klikam na "wyloguj" przenosi mnie na str. główną, a kiedy wpiszę www.costamcos.pl/admin.php to dalej jestem zalogowany i tak w kółko;/ zmieniłem powyższy kod, dodając if($_GET["wyloguj"]=="tak"){session_destroy () ;echo "Zostałeś wylogowany z serwisu";} w miejsce if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";} . jednak nie działa w dalszym ciągu;/
Go to the top of the page
+Quote Post
kielich
post
Post #9





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


np tak
Kod
if (isset($_GET['logout'])==TRUE){
    session_unset();
    session_destroy();
    }


sprawdzasz czy zaistniała $_GET

Ten post edytował kielich 4.07.2009, 21:16:11
Go to the top of the page
+Quote Post
Mefiuu
post
Post #10





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Niestety, nic to nie dało. Znów przenosi mnie na index.php ale po wprowadzeniu www.costam.pl/admin.php pojawia się witaj administratorze;/
Go to the top of the page
+Quote Post
kielich
post
Post #11





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


ale zmien tez

<a href='index.php?logout'> Wyloguj się</a><br />
i wtedy
Kod
if (isset($_GET['logout'])==TRUE){
    session_unset();
    session_destroy();
    }
Go to the top of the page
+Quote Post
bemol
post
Post #12





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


wyraźny błąd sesji.
wklej aktualny kod wylogowywania i admin.php
Go to the top of the page
+Quote Post
Mefiuu
post
Post #13





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


zmieniłem "logout" na "wyloguj"

login.php
Kod
<?php
session_start();
session_register("zalogowany");

if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;

function ShowLogin($komunikat=""){
    echo "$komunikat<br>";
    echo "<form action='index.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=password name=haslo><br>";
    echo "<input type=submit value='Zaloguj!'>";
    echo "</form>";
}

?>
<!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" lang="pl" xml:lang="pl">
   <head>
     <title>moja strona</title>
          <link rel="stylesheet" href="admin.css" type="text/css" />
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
            <meta name ="description" content="Moja strona domowa" />
            <meta http-equiv="content-language" content="pl" />
   </head>
   <body>
        <div id="top">
            <div id="gora">
                <div id="goralewo">
Moja strona domowa
                </div>
            </div>
        </div>
<div id="logo">
    LOGO
</div>
            
            <div id="menu">
             <ul>
                    <li><a href="index.php">Strona Główna</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
             </ul>
            </div>
            
        <div id="glowne">
            
            <div id="tresc">

    <?php

if (isset($_GET['wyloguj'])==TRUE){
    session_unset();
    session_destroy();
    }

if($_SESSION["zalogowany"]!=1){
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
        if ($_POST['login']=='mefiuu' && $_POST['haslo']=='mefiuu1') {
            $_SESSION["zalogowany"]=1;
            echo "Zalogowano poprawnie.<a href='admin.php'>Przejdź</a> do panelu Administratora.
            <br><a href='login.php?wyloguj=tak'>wyloguj się</a>";

            }

        elseif ($_POST['login']=='Admin' && $_POST['haslo']=='Admin2') {
            $_SESSION["zalogowany"]=2;
            echo "Zalogowano poprawnie.<a href='admin.php'>Przejdź</a> do panelu Super Administratora.
            <br><a href='login.php?wyloguj=tak'>wyloguj się</a>";

            }
        else echo ShowLogin("Podano złe dane!!!");
        }
    else ShowLogin();
}


?>

            </div>

        </div>        
            <div id="stopka">
              &copy; Created by Mati
            </div>
        
   </body>
</html>


admin.php
Kod
<!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" lang="pl" xml:lang="pl">
   <head>
     <title>moja strona</title>
          <link rel="stylesheet" href="admin.css" type="text/css" />
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
            <meta name ="description" content="Moja strona domowa" />
            <meta http-equiv="content-language" content="pl" />
   </head>
   <body>
        <div id="top">
            <div id="gora">
                <div id="goralewo">
Moja strona domowa
                </div>
            </div>
        </div>
<div id="logo">
    LOGO
</div>
            
            <div id="menu">
             <ul>
                    <li><a href="index.php">Strona Główna</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
                    <li><a href="cos.php">Coś</a></li>
             </ul>
            </div>
            
        <div id="glowne">
            
            <div id="tresc">

    <?php require("sprawdz.php"); ?>
<?

if($_SESSION["zalogowany"]==1)

{
    echo "Witaj Administratorze!";
    echo "<br><a href='index.php?wyloguj=tak'>wyloguj się</a>";
exit();

}

elseif($_SESSION["zalogowany"]==2)

{
    echo "Witaj Super Administratorze!";
    echo "<br><a href='index.php?wyloguj=tak'>wyloguj się</a>";
exit();

}

?>

            </div>

        </div>        
            <div id="stopka">
              &copy; Created by Mati
            </div>
        
   </body>
</html>
Go to the top of the page
+Quote Post
kielich
post
Post #14





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


i dalej nie zminiłeś tak jak mówiłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zobacz raz jeszcze

Kod
    echo "<br><a href='index.php?wyloguj=tak'>wyloguj się</a>";

zmin tak jak wczesniej pisałem

Ten post edytował kielich 5.07.2009, 12:37:17
Go to the top of the page
+Quote Post
Mefiuu
post
Post #15





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Ależ mam taki kod :
Kod
if (isset($_GET['wyloguj'])==TRUE){
    session_unset();
    session_destroy();
    }


Kod
echo "<br><a href='index.php?wyloguj=tak'>wyloguj się</a>";
Go to the top of the page
+Quote Post
kielich
post
Post #16





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


i nom i ma być
echo "<br><a href='index.php?wyloguj'>wyloguj się</a>";

sprawdzasz czy zaistniała zminna GET
Go to the top of the page
+Quote Post
Mefiuu
post
Post #17





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Działa wszystko, wystarczyło zmienić:

echo "<br><a href='index.php?wyloguj'>wyloguj się</a>";
na:
echo "<br><a href='login.php?wyloguj'>wyloguj się</a>";
bo przecież formularz mam w pliku login.php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Dziękuję wszystkim (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kielich
post
Post #18





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Nom mówiłem Ci zawsze sprawdzaj czy wykonan jest zminna GET a nie jej wartosc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 10:47