Avatar billede tobrukDk Novice
04. april 2012 - 03:44 Der er 10 kommentarer og
1 løsning

rigtigt hemmeligt ord fra den rigtigt brugere

Det er sådan nogle af de første sider der har jeg gøre sådan lidt med noget if hvis altså id passer må han bliver sendt videre ellers skal han blive log af..

men det er sådan at jeg har bygge kode sådan her ;


    <?php
    $id = $_SESSION['user_id'];
    $sql = mysql_query("SELECT * FROM brugere WHERE id = '$id'");
    {
    if($id)
    {
    header('Location: bruger_indstillinger_godkendt.php');
    exit();
    }
    else
    {
    header('Location: logout_helt.php');
    exit();
    }
    }
    ?>


og hvis han id er f.eks 42 bliver han sendt videre til bruger_indstillinger_godkendt.php

der skal han/hun så inde taste det hemmelig kode ord som er lige her herherher

ind på bruger_indstillinger_godkendt.php
har jeg gøre sådan her ;


    <?php
    $id = $_SESSION['user_id'];
    $sql = mysql_query("SELECT * FROM brugere WHERE id = '$id'");
    {
    if($id)
    {
    ?>
    <form method="post" action="bruger_indstillinger_godkendt_ok.php">
    <input type="text" name="hemmelig"><br>
    <input type="submit" name="tjek" value="Tjek hemmelig">
    </form>
    <?php
    }
    else
    {
    header('Location: logout_helt.php');
    exit();
    }
    }
    ?>

så nu er jeg kommet til bruger_indstillinger_godkendt_ok.php

og jeg kan bare ikke komme videre her fra,,

jeg har prøve at gøre sådan her men det er totalt forkert fordi den skal ligesom selv husk på en eller anden måde at hvorfor et hemmelig ord bruger har. men ved ikke lige sådan hvordan jeg skal totalt 100% gøre det..

jeg tænker lidt på at jeg skal bruge noget session når de f.eks logger ind så "husk den brugers hemmelig kode ord"

men jeg har bygge kode sådan her

    <?php
    $sql = mysql_query("SELECT * FROM brugere WHERE hemmelig = 'herherher'");
    {
    if($sql)
    {
    echo "Godkendt";
    }
    else
    {
    echo "Fejl";
    }
    }
    ?>


ja jeg ved godt der er fejl men det er derfor at jeg prøve mig frem selv uden at spørger så meget men lige her er jeg står helt af da det ikke virker 100%..

Du må gerne sige til hvis jeg skal lave et eller andet om fordi jeg vil gøre det på bedste muligt, det skal være sådan at det er kunne det rigtigt password som kan blive sæt der:)


sådan her ser min godkendt log ind fil ud altså godkendt.php;


    <?php
    session_start();
    include("include/database/db.php");
    $email = $_POST["email"];
    $password = $_POST["password"];
    $error = "";
    $userQuery = mysql_query("SELECT * FROM brugere WHERE email='$email'") or die(mysql_error());
    if(mysql_num_rows($userQuery) < 1)
    {
    $error .= "Brugeren eksisterer ikke.<br>";
    }
    else
    {
    $userArray = mysql_fetch_array($userQuery);
    if($userArray["password"] != sha1($password))
    {
    header("Location: index.php");
    exit();
    }
    }
    if($error != "")
    {
    header("Location: login.php");
    exit();
    }
    else
    {
    $_SESSION["logged_in"] = true;
    $_SESSION["hemmelig"] = $userArray["hemmelig"];
    $_SESSION["user_id"] = $userArray["id"];
    $_SESSION["djnavn"] = $userArray["djnavn"];
    ...links videre til andre sider...
    }
    ?>



Du må virkelig lige spørger mig om noget hvis det er at du gerne vil vide et eller andet..


jeg har også prøve at gøre sådan her men der kommer fejl hele tiden :(



Notice: Undefined variable: _SESSION in C:\xampp\htdocs\ny\bruger_indstillinger_godkendt_ok.php on line 2

Notice: Undefined variable: _SESSION in C:\xampp\htdocs\ny\bruger_indstillinger_godkendt_ok.php on line 3
Fejl



<?php
            $id = $_SESSION['user_id'];
            $hemmelig = $_SESSION["hemmelig"];
            $sql = mysql_query("SELECT * FROM brugere WHERE id = '$id' hemmelig = '$hemmelig'");
            {
            if($sql)
                {
                echo "ok!";
                }
                else
                    {
                        Echo "Fejl";
                    }
            }
        ?>


det ville sige begge session er der fejl i :O hvad ....
Avatar billede chriz7913 Nybegynder
04. april 2012 - 05:31 #1
De to fejl får du fordi PHP ikke kan genkende $_SESSION variablen, fordi du har glemt at bruge session_start(); i starten af dit dokument :)

Forstår ikke lige sammenhængen med det der med et hemmeligt ord. Er det når en bruger logger ind, at han skal indtaste et personligt hemmeligt ord for at blive logget helt ind ?

Mvh
Avatar billede chriz7913 Nybegynder
04. april 2012 - 05:34 #2
.. og så mangler der lige en 'AND' i din SQL-sætning :b
Avatar billede tobrukDk Novice
04. april 2012 - 16:01 #3
#1 vil du have noget for hjælpen selvom den ikke var så stor :D
Avatar billede tobrukDk Novice
04. april 2012 - 16:07 #4
og siger mange gerne tak :D
Avatar billede chriz7913 Nybegynder
04. april 2012 - 16:10 #5
Fik du løst dit problem? Og ellers tak, tror du har mere brug for dem end jeg
Avatar billede tobrukDk Novice
04. april 2012 - 16:18 #6
Okay, men lige nu er det sådan at jeg har gøre sådan her


<?php
            $id = $_SESSION['user_id'];
            $hemmelig = $_SESSION["hemmelig"];
            $sql = mysql_query("SELECT * FROM brugere WHERE id = '$id' AND hemmelig = '$hemmelig'");
            {
            if($hemmelig)
                {
                echo "Det er godkendt Kode ord til din hemmelighed..";
                }
                else
                    {
                    echo "fejl i koden";   
                    }
            }
        ?>


f.eks hvis bruger 42 ind taster hemmelig kode ord som er     herherher


så skal den sige det er godkendt bla bla bla... osv , men hvis jeg bare skriver hej så siger den det også :O hmmm
Avatar billede chriz7913 Nybegynder
04. april 2012 - 16:34 #7
Som det er lige nu, tjekker du bare om brugeren har en hemmelig kode, da du bare tjekker om $hemmelig - som er det samme som $_SESSION['hemmelig'] - er sat.

Kan ikke se at det er nødvendigt at lave et SQL-kald når du allerede har den bruger der forsøger at logge ind's hemmelig-ord i din SESSION.

Så du kan vel bare tjekke om det brugeren har indtastet er det samme som det der står i den SESSION der er knyttet til brugeren.

Noget i stil med
<?php
            session_start();
            $id = $_SESSION['user_id'];
            $hemmelig = $_SESSION["hemmelig"];
            $post_hemmelig = $_POST["hemmelig"];
            if(isset($post_hemmelig) && $hemmelig == $post_hemmelig)
                {
                echo "Det er godkendt Kode ord til din hemmelighed..";
                }
                else
                    {
                    echo "fejl i koden";   
                    }
        ?>
Avatar billede tobrukDk Novice
04. april 2012 - 16:39 #8
Åååhh hvor lækkert man! :)

jeg lukker den bare selv men Chriz du ligge op i mit hovedet til at kun test min hjemmeside når jeg er færdig med den :)

så sende lige en privat bedskede så skal jeg nok skrive til dig når jeg er klare med den :D
Avatar billede chriz7913 Nybegynder
04. april 2012 - 16:44 #9
Super, glæder mig til at se det færdige resultat når den engang bliver færdig :)
Avatar billede tobrukDk Novice
04. april 2012 - 16:52 #10
Det gøre jeg virkelig også :) jeg har snart en beta version klar :)
Avatar billede tobrukDk Novice
04. april 2012 - 17:11 #11
Lukker den selv :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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