bruger kan kun se på forum

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Mathias
Nørd
Nørd
Indlæg:145
Tilmeldt:5. apr 2012, 18:21
Kontakt:
bruger kan kun se på forum

Indlæg af Mathias » 28. aug 2012, 19:12

Hej jeg ville gerne have så kun dem som er bruger på min hjemmeside kan se forum

altså denne side : http://dragonegcraft.dk/IronSworddk/main_forum.php

jeg har set en masse danske og engleske tutorial på nette om hvordan man laver forum og login system bare ikke samlet så nu er jeg nået her til.

tænkte jeg ville spørge jer her inde :D.

code til login system :

login.php

Kode: Vælg alt

<?php 

    require("common.php"); 
     
    $submitted_username = ''; 
     
    if(!empty($_POST)) 
    { 
        $query = " 
            SELECT 
                id, 
                username, 
                password, 
                salt 
            FROM users 
            WHERE 
                username = :username 
        "; 
         
        $query_params = array( 
            ':username' => $_POST['username'] 
        ); 
         
        try 
        { 
            $stmt = $db->prepare($query); 
            $result = $stmt->execute($query_params); 
        } 
        catch(PDOException $ex) 
        { 
            die("Failed to run query: " . $ex->getMessage()); 
        } 
         
        $login_ok = false; 
         
        $row = $stmt->fetch(); 
        if($row) 
        {  
            $check_password = hash('sha256', $_POST['password'] . $row['salt']); 
            if($check_password === $row['password']) 
            { 
                $login_ok = true; 
            } 
        } 
         
        if($login_ok) 
        { 
            unset($row['salt']); 
            unset($row['password']); 
             
            $_SESSION['user'] = $row; 
             

            header("Location: members.php"); 
            die("Redirecting to: members.php"); 
        } 
        else 
        { 
            // Tell the user they failed 
            print("Login Failed."); 
             
            $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); 
        } 
    } 
     
?> 
<h1>Login</h1> 
<form action="login.php" method="post"> 
    Username:<br /> 
    <input type="text" name="username" value="<?php echo $submitted_username; ?>" /> 
    <br /><br /> 
    Password:<br /> 
    <input type="password" name="password" value="" /> 
    <br /><br /> 
    <input type="submit" value="Login" /> 
</form> 
<a href="register.php">Opret dig som bruger</a>
common.php

Kode: Vælg alt

<?php 

    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 
     
    try 
    { 
        $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
    } 
    catch(PDOException $ex) 
    { 
        die("Failed to connect to the database: " . $ex->getMessage()); 
    } 
     
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
     
    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) 
    { 
        function undo_magic_quotes_gpc(&$array) 
        { 
            foreach($array as &$value) 
            { 
                if(is_array($value)) 
                { 
                    undo_magic_quotes_gpc($value); 
                } 
                else 
                { 
                    $value = stripslashes($value); 
                } 
            } 
        } 
     
        undo_magic_quotes_gpc($_POST); 
        undo_magic_quotes_gpc($_GET); 
        undo_magic_quotes_gpc($_COOKIE); 
    } 
     
    header('Content-Type: text/html; charset=utf-8'); 
     
    session_start();
?>

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: bruger kan kun se på forum

Indlæg af ThomasI » 29. aug 2012, 17:13

Benytter du dig af sessions? Du kan lave det sådan at hvis man skal se en af de sider hvor du har indhold kun for brugere, så skal man have en session liggende, som man kun kan få hvis man successfuldt logger ind.

Det er altså bare et spørgsmål om at tilføje lidt kode i dit login script der sætter denne session og derefter lave et script der sidder på alle dine bruger sider der først checker efter denne session - og hvis den ikke er der får de ikke lov til at se siden...

Mener disse sessions bliver beskrevet i denne video:

http://www.nemprogrammering.dk/Tutorial ... T18PHP.php

Besvar