Skocz do zawartości
bemben1997

Logowanie

Rekomendowane odpowiedzi

Witam mam do was pytanie bo zastanawiam się jak to zrobić . Przypuśćmy będę miał system logowania i po zalogowaniu chce aby ten co się zalogowal miał dostęp do np teo

<!DOCTYPE html> <html lang="pl">
<head>
<meta charset="UTF-8">
<title>Unban</title>
</head> <body>
<!--KOD FORMULARZA HTML--> <form action="unban.php" method="post" method="post">   <input type="text" name="nick" />   <input type="submit" value="Delete ban" /> </form> <!--KOD ŁĄCZENIA SIĘ Z BAZĄ DANYCH--> <?php
try{
$db = new PDO('mysql:host=localhost;dbname=dbname', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}catch (PDOException $e){ print "Błąd połączenia z bazą danych!: " . $e->getMessage() . "<br/>";
die();
} ?> <?php
//OPERATOR TRÓJOPERANDOWY(ODPOWIEDNIK INSTRUKCJI WARUNKOWEJ)
$nick = isset($_POST['nick']) ? $_POST['nick'] : false;
//JEŚLI ISTNIEJE ZMIENNA $_POST O PARAMETRZE `nick`...
if(isset($_POST['nick'])){
$isPlayer = $db->prepare("SELECT * FROM `users_bans` WHERE `nick` = :nick");
$isPlayer->bindValue(":nick", $nick, PDO::PARAM_STR);
if (!$isPlayer->execute()){
print_r($isPlayer->errorInfo());
}
if($isPlayer->rowCount() > 0)  {
$delete = $db->prepare("DELETE FROM `users_bans` WHERE `nick` = :nick" );
$delete->bindValue(":nick", $nick, PDO::PARAM_STR);
if(!$delete->execute()){print_r($delete->errorInfo());
}
echo 'Użytkownik: '.$nick.' został odbanowany!';
}else{ echo 'This user is not banned!';
}
} ?> </body> </html>
Jak by to miało działać :) ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W miejscu walidacji danych ustawiasz, jeśli dany użytkownik się zaloguje oraz nie będzie błędów walidacji danych wprowadzonych do formularza logowania:

$_SESSION['logged'] = true;

Potem sprawdzasz czy istnieje sesja o nazwie 'zalogowano':

 

if(isset($_SESSION['logged'])){
   //strefa dla zalogowanych
}else{
   //jeśli pozostaje niezalogowany
}

Pamiętać też musisz o wywołaniu: 

session_start();

I to by było chyba na tyle. 

 

 

@edit: Niech będzie i logged :)

Edytowane przez dawid4157

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To co powiedział Dawid tylko polecam pisać kod po angielsku bo tak się w "prawdziwym życiu" robi a więc "logged" a nie "zalogowany".

I ułożyłem Ci kod bo mi się niedobrze robi jak na takie coś patrze :P

 

<?php
    try{
        $db = new PDO('mysql:host=localhost;dbname=dbname', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    } catch (PDOException $e) {
        print "Błąd połączenia z bazą danych!: " . $e->getMessage() . "<br/>";
        die();
    }
?> 
 
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <title>Unban</title>
    </head>
    <body>
        <!--KOD FORMULARZA HTML-->
        <form action="unban.php" method="post" method="post">
            <input type="text" name="nick" />
            <input type="submit" value="Delete ban" />
        </form>
 
        <?php
            //OPERATOR TRÓJOPERANDOWY(ODPOWIEDNIK INSTRUKCJI WARUNKOWEJ)
            $nick = isset($_POST['nick']) ? $_POST['nick'] : false;
            
            //JEŚLI ISTNIEJE ZMIENNA $_POST O PARAMETRZE `nick`...
            if(isset($_POST['nick'])) {
                $isPlayer = $db->prepare("SELECT * FROM `users_bans` WHERE `nick` = :nick");
                $isPlayer->bindValue(":nick", $nick, PDO::PARAM_STR);
                
                if (!$isPlayer->execute()) {
                    print_r($isPlayer->errorInfo());
                }
 
                if($isPlayer->rowCount() > 0) {
                    $delete = $db->prepare("DELETE FROM `users_bans` WHERE `nick` = :nick" );
                    $delete->bindValue(":nick", $nick, PDO::PARAM_STR);
                    
                    if(!$delete->execute()) {
                        print_r($delete->errorInfo());
                    }
                    
                    echo 'Użytkownik: '.$nick.' został odbanowany!';
                } else {
                    echo 'This user is not banned!';
                }
            }
        ?>
    </body>
</html>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×