Avatar billede kren1000 Nybegynder
08. august 2006 - 10:34 Der er 8 kommentarer og
1 løsning

loginkode fra database

Hej eksperter.

Jeg har nedenstående session.php, som jeg bruger fra en loginside. Den bruger nu koden abcd + denne uges nr. Jeg vil gerne så jeg kan tage password fra min brugerdatabase istedet og sætte ind så man bare kan bruge en af disse koder istedet, men stadig + ugens nr for $kode = "abcd";.

Kan nogen hjælpe med det? Jeg har forsøgt, men denne kode er den som jeg ved virker og gerne vil have ændret.

<?php
    session_start();
           
        $kode = "abcd";  //din stationære del
        if(strlen(date("W")) == 1)
          $kode .= "0";  //hvis det er uge 1-9 skal der tilføjes et 0
        $kode .= date("W");
       
        if($_POST[kode]==$kode)
        {
                   
            $_SESSION['godkendt']=true;
            header("location: medhjertet.php");
       
        }
       
        elseif ($_SESSION['godkendt']==false)
       
        {
            header("location: ikke_adgang.php");
//    echo $_POST[kode];
//    echo "<br>";
//    echo $kode;

        }
    else
    {
                header("location: ikke_adgang.php");
}
    ?>
Avatar billede jakobdo Ekspert
08. august 2006 - 12:50 #1
Hvis du vil tjekke mod et database, kunne du rette:
if($_POST[kode]==$kode)
til:
$query = mysql_query("SELECT id FROM kodetabel WHERE kode = '".$_POST['kode']."' LIMIT 1");
if(mysql_num_rows($query)==1)
//Så er vi logget ind...
Avatar billede kren1000 Nybegynder
08. august 2006 - 13:28 #2
ok, der kommer nu følgene fejl:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/session.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/session.php:13) in /var/www/html/session.php on line 24

Den redigerede kode er som følger:

<?php
    session_start();
           
        DBCONNECT
                           
        $kode = "abcd";  //din stationære del
        if(strlen(date("W")) == 1)
          $kode .= "0";  //hvis det er uge 1-9 skal der tilføjes et 0
        $kode .= date("W");
       
        $query = mysql_query("SELECT id FROM users WHERE password = '".$_POST['kode']."' LIMIT 1");
        if(mysql_num_rows($query)==1)
        {
                   
            $_SESSION['godkendt']=true;
            header("location: medhjertet.php");
       
        }
       
        elseif ($_SESSION['godkendt']==false)
       
        {
            header("location: ikke_adgang.php");

        }
    else
    {
                header("location: ikke_adgang.php");
}
    ?>
Avatar billede jakobdo Ekspert
08. august 2006 - 13:45 #3
Tilføj lige:
$query = mysql_query("SELECT id FROM users WHERE password = '".$_POST['kode']."' LIMIT 1");

skal rettes til:
$query = mysql_query("SELECT id FROM users WHERE password = '".$_POST['kode']."' LIMIT 1") or die(mysql_error());
Avatar billede kren1000 Nybegynder
08. august 2006 - 14:22 #4
Ah ok, det var fordi den hedder user_id istedet! Nu kan jeg logge ind med brugerens password, men jeg skulle gerne have det så ugens nr er lagt til, dvs. hvis koden er "abcd", skal man i denne uge taste abcd32 ind for at logge på. Det gjorde den før, dog ved bare at bruge $kode...
Avatar billede jakobdo Ekspert
08. august 2006 - 14:41 #5
Måske:
$query = mysql_query("SELECT user_id FROM users WHERE CONCAT(password,'".$kode."') = '".$_POST['kode']."' LIMIT 1");
Avatar billede kren1000 Nybegynder
08. august 2006 - 15:03 #6
Det funker perfekt! Jeg takker mange gange, smid et svar og få dine point;)
Avatar billede jakobdo Ekspert
08. august 2006 - 18:34 #7
Svar!
Avatar billede jakobdo Ekspert
08. august 2006 - 20:37 #8
Takker for point.
Avatar billede kren1000 Nybegynder
08. august 2006 - 21:01 #9
Selv tak for hjælpen!
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