Avatar billede bow Nybegynder
22. februar 2009 - 12:57 Der er 2 kommentarer

Mit Login gemme ikke via cookie

Hej

Jeg har problemer med mit login for den gemmer ikke oplysningerne
er der nogen der kan se hvad jeg gør forkert? her er hele min profil side

<?php
global $from, $noreply;
function start($title) {
    return '<div class="content-main">
    <div class="title">
        <div class="left"></div>
        <div class="right"></div>
        <div class="main">
       
    <div align="left">'.$title.'</div>
        </div>
    </div>

    <h2>Sidst opdateret d. '.date("d-m-Y | H:i:s", filemtime('pages/profil.php')).'</h2>
    <div class="text">';
}

function slut() {
    return '
        <div class="footer">
        <div class="left"></div>
        <div class="right"></div>
    </div>
</div>';
}

function kode() {
    $aktiveringskode = '';
    $array = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','2','3','4','5','6','7','8','9');
    for ($i = 0;$i < 12;$i++) {
        $rand = rand(0,(count($array)-1));
        $aktiveringskode .= $array[$rand];
    }
    return $aktiveringskode;
}

if (isset($_GET['action'])) {
    switch ($_GET['action']) {
        case 'register':
            echo start('Opret en bruger');
            $form = 1;
            if (isset($_POST['gem'])) {
                $errors = '';
                if (empty($_POST['brugernavn'])) {
                    $errors .= 'Du skal udfylde et brugernavn.<br />';
                } else {
                    $query = mysql_query("SELECT id FROM brugere WHERE brugernavn = '{$_POST['brugernavn']}'",$mysql);
                    $array = mysql_fetch_assoc($query);
                    if ($array['id'] != '') {
                        $errors .= 'Brugernavnet er optaget.<br />';
                    }
                }
                if (empty($_POST['password'])) {
                    $errors .= 'Du skal udfylde et password.<br />';
                }
                if (empty($_POST['email'])) {
                    $errors .= 'Du skal udfylde din e-mail.<br />';
                }
                if (!empty($_POST['email']) && (!strstr($_POST['email'],'@') || !strstr($_POST['email'],'.'))) {
                    $errors .= 'Du skal udfylde en gyldig e-mail.<br />';
                } else {
                    $query = mysql_query("SELECT id FROM brugere WHERE mail = '{$_POST['email']}'",$mysql);
                    $array = mysql_fetch_assoc($query);
                    if ($array['id'] != '') {
                        $errors .= 'Den valgte e-mail er allerede i brug.<br />';
                    }
                }
                if ($errors == '') {
                    $aktiveringskoden = kode();
                    if (mysql_query("INSERT INTO `admin_hdtrailer`.`brugere` (`id` ,`brugernavn` ,`password` ,`mail` ,`kode`) VALUES (NULL , '".$_POST['brugernavn']."', '".md5($_POST['password'])."', '".$_POST['email']."', '".$aktiveringskoden."')",$mysql) or die(mysql_error())) {
                        //Send en mail
                        $to  = $_POST['email'];
                        $subject = $sitename.' - Brugersystem';
                        $message = '
<html>
<head>
    <title>Bruger oprettet</title>
</head>
<body>
    <p>Kære '.$_POST['brugernavn'].'</p>
    <p>Der er blevet oprettet en bruger med denne e-mail:</p>
    <p><strong>Brugernavn:</strong> '.$_POST['brugernavn'].'<br />
    <strong>Aktiveringskode:</strong> '.$aktiveringskoden.'</p>
    <p>Aktiver her: <a href="http://'.$_SERVER['SERVER_NAME'].'/?page=profil&action=aktiver&brugernavn='.$_POST['brugernavn'].'&kode='.$aktiveringskoden.'">http://'.$_SERVER['SERVER_NAME'].'/?page=profil&action=aktiver&brugernavn='.$_POST['brugernavn'].'&kode='.$aktiveringskoden.'</a><br />
    Hvis noget skulle være galt, kan du forsøge her: <a href="http://'.$_SERVER['SERVER_NAME'].'/?page=profil&action=aktiver">http://'.$_SERVER['SERVER_NAME'].'/?page=profil&action=aktiver</a></p>
    <p>Venlig hilsen<br />
    '.$sitename.'
</body>
</html>';
                       
                        // To send HTML mail, the Content-type header must be set
                        $headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                       
                        // Additional headers
                        $headers .= 'To: '.$_POST['brugernavn'].' <'.$_POST['email'].'>' . "\r\n";
                        $headers .= 'From: '.$from.' <'.$noreply.'>' . "\r\n";
                        if (mail($to, $subject, $message, $headers)) {
                            echo 'Din bruger er oprettet.<br />Før du kan bruge din bruger, skal du aktivere den.<br />Der er sendt en e-mail til dig på: '.$_POST['email'];
                        } else {
                            echo 'Din bruger er oprettet.<br />Der er <strong>IKKE</strong> sendt en e-mail til dig på: '.$_POST['email'].'<br />Kontakt administratoren';
                        }
                        $form = 0;
                    } else {
                        echo '<strong>Der skete en fejl, prøv igen.<br />Hvis denne fejl bliver ved, kontakt administratoren.</strong><br /><br />';
                    }
                } else {
                    echo '<strong>'.$errors.'</strong><br/>';
                }   
            }
            if ($form == 1) {
                ?><form method="post">
<strong>Ønsket brugernavn:</strong> <input type="text" name="brugernavn"<?php if (isset($_POST['brugernavn'])) { echo ' value="'.$_POST['brugernavn'].'"'; } ?> /><br />
<strong>Ønsket password:</strong> <input type="password" name="password" /><br />
<strong>E-mail:</strong> <input type="text" name="email"<?php if (isset($_POST['email'])) { echo ' value="'.$_POST['email'].'"'; } ?> /><br />
<input type="submit" name="gem" value="Opret" />
</form>
<?php
            }
            echo slut();
            break;
        case 'login':
            echo start('Log ind');
            if (!loggedIn()) {
                $form = 1;
                if (isset($_POST['login'])) {
                    $errors = '';
                    if (empty($_POST['brugernavn'])) {
                        $errors .= 'Udfyld brugernavn<br />';
                    }
                    if (empty($_POST['password'])) {
                        $errors .= 'Udfyld password<br />';
                    }
                    if ($errors == '') {
                        $query = mysql_query("SELECT id FROM brugere WHERE brugernavn = '".$_POST['brugernavn']."' AND password = '".md5($_POST['password'])."' AND aktiv = 1",$mysql) or die(mysql_error());
                        $array = mysql_fetch_assoc($query);
                        if ($array['id'] != '') {
                            //Gem session
                            $_SESSION['logged_in'] = 1;
                            $_SESSION['bruger_id'] = $array['id'];
                            //Gem cookie, hvis ønsket
                            $cookie_value = $_POST['brugernavn'].'.'.md5($_POST['password']);
                            setcookie('hdtrailer_saved',$cookie_value,time()+3600,'/','dvd.bow.dk');
                            $form = 0;
                            echo '<strong>Du er blevet logged ind</strong>
<meta http-equiv="refresh" content="1;url=';
                            if (isset($_POST['referer']))
                                echo $_POST['referer'];
                            else
                                echo $HTTP_SERVER_VARS['PHP_SELF'];
                            echo '">';
                        } else {
                            echo '<strong>Brugernavn eller password ikke korrekt.<br />Har du husket at aktivere?<br /><br /></strong>';
                        }
                    } else {
                        echo '<strong>'.$errors.'</strong><br /><br />';
                    }
                }
                if ($form == 1) {
                ?><form method="post">
<strong>Brugernavn:</strong> <input type="text" name="brugernavn"<?php if (isset($_POST['brugernavn'])) { echo ' value="'.$_POST['brugernavn'].'"'; } ?> /><br />
<strong>Password:</strong> <input type="password" name="password" /><br />
<input type="submit" name="login" value="Log ind" /> <a href="/?page=profil&action=lostpassword">Glemt password</a>
</form><?php
                }
            } else {
                echo '<strong>Du er allerede logged ind</strong>';
            }
            echo slut();
            break;
        case 'lostpassword':
            echo start('Glemt password');
            $form = 1;
            if (!loggedIn()) {
                if (isset($_POST['send'])) {
                    $errors = '';
                    if (empty($_POST['brugernavn'])) {
                        $errors .= 'Udfyld brugernavn<br />';
                    }
                    if (empty($_POST['email'])) {
                        $errors .= 'Udfyld e-mail<br />';
                    }
                    if ($errors == '') {
                        include('config.php');
                        $query = mysql_query("SELECT id FROM brugere WHERE brugernavn = '".$_POST['brugernavn']."' AND mail = '".$_POST['email']."' AND aktiv = 1",$mysql) or die(mysql_error());
                        $array = mysql_fetch_assoc($query);
                        if ($array['id'] != '') {
                            $form = 0;
                            $ny_kode = kode();
                            if (mysql_query("UPDATE brugere SET password = '".md5($ny_kode)."' WHERE brugernavn = '".$_POST['brugernavn']."'",$mysql)) {
                                //Send en mail
                                $to  = $_POST['email'];
                                $subject = $sitename.' - Brugersystem';
                                $message = '
<html>
<head>
    <title>Glemt password</title>
</head>
<body>
    <p>Kære '.$_POST['brugernavn'].'</p>
    <p>Du har valgt at modtage et nyt password:</p>
    <p><strong>Brugernavn:</strong> '.$_POST['brugernavn'].'<br />
    <strong>Nyt password:</strong> '.$ny_kode.'</p>
    <p>Venlig hilsen<br />
    '.$sitename.'
</body>
</html>';
                                // To send HTML mail, the Content-type header must be set
                                $headers  = 'MIME-Version: 1.0' . "\r\n";
                                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                               
                                // Additional headers
                                $headers .= 'To: '.$_POST['brugernavn'].' <'.$_POST['email'].'>' . "\r\n";
                                $headers .= 'From: '.$from.' <'.$noreply.'>' . "\r\n";
                                if (mail($to, $subject, $message, $headers)) {
                                    echo '<strong>Der er sendt et nyt password til: '.$_POST['email'].'</strong>';
                                } else {
                                    echo '<strong>Dit password er skiftet, men der er <strong>IKKE</strong> sendt en e-mail til dig på: '.$_POST['email'].'<br />Kontakt administratoren</strong>';
                                }
                            } else {
                                echo '<strong>Kunne ikke skifte dit password<br />Kontakt administratoren</strong>';
                            }
                        } else {
                            echo '<strong>Noget er indtastet forkert</strong>';
                        }
                    } else {
                        echo '<strong>'.$errors.'</strong><br /><br />';
                    }
                }
                if ($form == 1) {
                ?><form method="post">
    <strong>Brugernavn:</strong> <input type="text" name="brugernavn"<?php if (isset($_POST['brugernavn'])) { echo ' value="'.$_POST['brugernavn'].'"'; } ?> /><br />
    <strong>E-mail:</strong> <input type="text" name="email"<?php if (isset($_POST['email'])) { echo ' value="'.$_POST['email'].'"'; } ?> /><br />
    <input type="submit" name="send" value="Send password" />
    </form><?php
                }
            } else {
                echo 'Du er logget ind, så du må kunne huske dit password.';
            }
            echo slut();
            break;
        case 'logout':
            echo start('Log ud');
            if (loggedIn()) {
                //Slet cookie hvis den findes
                if (isset($_COOKIE['hdtrailer_saved']) && !empty($_COOKIE['hdtrailer_saved'])) {
                    setcookie('hdtrailer_saved','',time()-3600,'/');
                }
                $_SESSION['logget_in'] = NULL;
                $_SESSION['bruger_id'] = NULL;
                session_destroy();
                echo 'Du blev logged ud.
<meta http-equiv="refresh" content="1;url=';
if (isset($_GET['referer']))
    echo $_GET['referer'];
else
    echo $HTTP_SERVER_VARS['PHP_SELF'];
echo '">';
            } else {
                echo 'Du er ikke logged ind, så derfor kan du ikke blive logged ud.';
            }
            echo slut();
            break;
        case 'edit':
            if (isset($_GET['user']) && $_GET['user'] != userID() && getRights() == 1) {
                echo start('Admin - Ændre profil');
                if (isset($_POST['gem'])) {
                    if (!empty($_POST['rights']) && !empty($_POST['brugernavn']) && !empty($_POST['mail'])) {
                        $query = "UPDATE brugere SET brugernavn = '".$_POST['brugernavn']."', ";
                        if (!empty($_POST['password1']) && !empty($_POST['password2']) && ($_POST['password1'] == $_POST['password2'])) {
                            $query .= "password = '".md5($_POST['password1'])."', ";
                        } else if (!empty($_POST['password1']) && !empty($_POST['password2']) && ($_POST['password1'] != $_POST['password2'])) {
                            $error = 1;
                            echo '<strong>De to nye passwords er ikke ens</strong><br />';
                        }
                        $query .= "rights = '".$_POST['rights']."', mail = '".$_POST['mail']."' WHERE id = '".$_GET['user']."'";
                        if ($error == 0) {
                            if (mysql_query($query,$mysql)) {
                                echo '<strong>Gemt</strong>';
                            } else {
                                echo '<strong>Der skete en fejl under opdateringen</strong>';
                            }
                        }
                    } else {
                        if ($_POST['password1'] != $_POST['password2']) {
                            echo '<strong>De to nye passwords er ikke ens</strong><br />';
                        } else {
                            echo '<strong>Der er noget der ikke er udfyldt</strong><br />';
                        }
                    }
                }
                ?><form method="post">
<strong>Brugernavn:</strong> <input type="text" name="brugernavn" value="<?php echo userData($_GET['user']); ?>" /><br />
<strong>Status:</strong> <select name="rights">
    <option value="1"<?php if (userData($_GET['user'],'rights') == 1) { ?> selected="selected"<?php } ?>>Admin</option>
    <option value="2"<?php if (userData($_GET['user'],'rights') == 2) { ?> selected="selected"<?php } ?>>Medlem</option>
</select><br />
<strong>E-mail:</strong> <input type="text" name="mail" value="<?php echo userData($_GET['user'],'mail'); ?>" /><br />
<strong>Skift brugerens password:</strong> <input type="password" name="password1" /><br />
<strong>Gentag det nye password:</strong> <input type="password" name="password2" /><br />
<input type="submit" value="Gem" name="gem" />
</form><?php
            } else {
                echo start('Min profil');
                if (loggedIn()) {
                    if (isset($_POST['gem'])) {
                        if (!empty($_POST['password']) && (md5($_POST['password']) == userData(userID(),'password')) && !empty($_POST['password1']) && !empty($_POST['password2']) && ($_POST['password1'] == $_POST['password2']) && !empty($_POST['brugernavn']) && !empty($_POST['mail'])) {
                            if (mysql_query("UPDATE brugere SET brugernavn = '".$_POST['brugernavn']."', password = '".md5($_POST['password1'])."', mail = '".$_POST['mail']."' WHERE id = '".userID()."'",$mysql)) {
                                echo '<strong>Gemt</strong>';
                            } else {
                                echo '<strong>Der skete en fejl under opdateringen</strong>';
                            }
                        } else {
                            if (md5($_POST['password']) != userData(userID(),'password')) {
                                echo '<strong>Det nuvænde password er ikke rigtigt</strong><br />';
                            } else if ($_POST['password1'] != $_POST['password2']) {
                                echo '<strong>De to nye passwords er ikke ens</strong><br />';
                            } else {
                                echo '<strong>Der er noget der ikke er udfyldt</strong><br />';
                            }
                        }
                    }
                    ?><form method="post">
<strong>Brugernavn:</strong> <input type="text" name="brugernavn" value="<?php echo userData(userID()); ?>" /><br />
<strong>Status:</strong> <?php getRights(1); ?><br />
<strong>E-mail:</strong> <input type="text" name="mail" value="<?php echo userData(userID(),'mail'); ?>" /><br />
<strong>Password:</strong> <input type="password" name="password" /><br />
<strong>Nyt password:</strong> <input type="password" name="password1" /><br />
<strong>Gentag nyt password:</strong> <input type="password" name="password2" /><br />
<input type="submit" value="Gem" name="gem" />
</form><?php
                } else {
                    echo '<strong>Du er ikke logget ind</strong><br />
<a href="/?page=profil&action=login">Log ind</a>';
                }
            }
            echo slut();
            break;
        case 'view':
            echo start('Vis profil');
            if (isset($_GET['user']) && is_numeric($_GET['user'])) {
                if ((userData($_GET['user'],'brugernavn') == NULL) || (userData($_GET['user'],'aktiv') != 1)) {
                    echo '<strong>Brugeren findes ikke</strong>';
                } else {
                    echo '<strong>ID:</strong> '.$_GET['user'].'<br />
<strong>Brugernavn:</strong> '.userData($_GET['user'],'brugernavn').'<br />
<strong>Status:</strong> ';
                    if (userData($_GET['user'],'rights') == 1) {
                        echo 'Admin';
                    } else {
                        echo 'Medlem';
                    }
                    if (getRights() == 1 || userID() == $_GET['user']) {
                        $user_email = userData($_GET['user'],'mail');
                        echo '<br /><strong>E-mail:</strong> <a href="mailto:'.$user_email.'">'.$user_email.'</a>';
                    }
                    echo '<br /><strong>Sidst aktiv:</strong> '.date("d. n Y, H:i",userData($_GET['user'],'lastactive'));
                    if (getRights() == 1 && userID() != $_GET['user']) {
                        echo '<br /><br /><a href="/?page=profil&action=edit&user='.$_GET['user'].'">Ændre brugeren</a>';
                    }
                }
            } else {
                echo '<strong>Der er ikke valgt en bruger</strong>';
            }
            echo slut();
            break;
        case 'aktiver':
            echo start('Aktiver profil');
            $form = 1;
            if (isset($_POST['aktiver']) || (isset($_GET['brugernavn']) && isset($_GET['kode']))) {
                if (empty($_REQUEST['brugernavn'])) {
                    $errors .= 'Udfyld brugernavn<br />';
                }
                if (empty($_REQUEST['kode'])) {
                    $errors .= 'Udfyld aktiveringskode<br />';
                }
                if ($errors == '') {
                    $query = mysql_query("SELECT id FROM brugere WHERE brugernavn = '".$_POST['brugernavn']."' AND kode = '".$_POST['kode']."' AND aktiv = 0",$mysql) or die(mysql_error());
                    $array = mysql_fetch_assoc($query);
                    if ($array['id'] != '') {
                        $form = 0;
                        mysql_query("UPDATE brugere SET aktiv = 1 WHERE brugernavn = '".$_POST['brugernavn']."'",$mysql);
                        echo '<strong>Aktiveret</strong>';
                    } else {
                        echo '<strong>Aktiveringen blev ikke gennemført.<br />
Enten er noget forkert eller også er du allerede aktiveret.</strong>';
                    }
                } else {
                    echo '<strong>'.$errors.'</strong><br/>';
                }
            }
            if ($form == 1) {
            ?><form method="post">
<strong>Brugernavn:</strong> <input type="text" name="brugernavn"<?php if (isset($_REQUEST['brugernavn'])) { echo ' value="'.$_REQUEST['brugernavn'].'"'; } ?> /><br />
<strong>Aktiveringskode:</strong> <input type="text" name="kode"<?php if (isset($_REQUEST['kode'])) { echo ' value="'.$_REQUEST['kode'].'"'; } ?> /><br />
<input type="submit" name="aktiver" value="Aktiver bruger" />
</form><?php
            }
            echo slut();
            break;
        default:
            include('pages/welcome.php');
            break;
    }
} else {
    include('pages/welcome.php');
}
?>
Avatar billede bow Nybegynder
22. februar 2009 - 13:03 #1
her er min function

if (isset($_COOKIE['hdtrailer_saved']) && !loggedIn()) {
    include('config.php');
    $split = split('.',$_COOKIE['hdtrailer_saved']);
    $query = mysql_query("SELECT id FROM brugere WHERE id = '".$split[0]."' AND password = '".$split[1]."' AND aktiv = 1",$mysql) or die(mysql_error());
    $array = mysql_fetch_assoc($query);
    if ($array['id'] != '') {
        $_SESSION['logged_in'] = 1;
        $_SESSION['bruger_id'] = $array['id'];
    }
}

function set_cookie($Name, $Value = '', $MaxAge = 0, $Path = '/', $Domain = 'dvd.bow.dk', $Secure = false, $HTTPOnly = false) {
  header('Set-Cookie: ' . rawurlencode($Name) . '=' . rawurlencode($Value)
                        . (empty($MaxAge) ? '' : '; Max-Age=' . $MaxAge)
                        . (empty($Path)  ? '' : '; path=' . $Path)
                        . (empty($Domain) ? '' : '; domain=' . $Domain)
                        . (!$Secure      ? '' : '; secure')
                        . (!$HTTPOnly    ? '' : '; HttpOnly'), false);
}
Avatar billede bow Nybegynder
23. februar 2009 - 14:42 #2
Nogen der ved det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester