Avatar billede ofirpeter Nybegynder
30. marts 2006 - 19:03 Der er 6 kommentarer og
1 løsning

Login i php , sessions driller

Jeg har skrevet et meget simpelt login system, hvor folk logger ind og hiver deres brugernavn og password med i en session.

if(isset($_REQUEST['Send'])){
# Starter sessionen så vi senere kan gemme / hente variabler herfra
$Username = $_POST["Username"];    
$Password = md5($_POST["Password"]);    

        # Forespørger databasen, om der er en række med brugernavnet $Username og kodeordet $Password
$Query = mysql_query("SELECT * FROM poker_bruger WHERE username='". $Username ."' AND password='". $Password ."'");
       
        # Smider resultatet ind i et objekt
        $Row = mysql_fetch_object($Query);
       
        # Tjekker om der var nogen der passede til vores forespørgsel
        if(!empty($Row)) {

            # Smider brugernavnet og kodeordet ind i sessioner
            $_SESSION['Username'] = $Username;
            $_SESSION['Password'] = $Password;
           

        # Man er logget ind
        header("location: tilmelding.php");
        } else { header("location: login.php?fejl="); }
       
}

Det virker udemærket for mig! Men flere andre oplever at der ingenting sker når de forsøger at logge ind (Via en simpel formular og en Send knap:

<form name="" action="" method="post">
<input type="text" name="Username" />
<input type="password" name="Password" />
<input name="Send" id="input_login" type="submit"  value="Log in"/>
</form>

Har på fornemmelsen af det er sessions der driller, oplever det hver gang jeg bruger dem? Hvad gør jeg forkert, hvordan kan jeg lave et login system som fungerer hos alle?

Sikkerheden er ikke i højsædet, da det mest er til leg.

Peter
Avatar billede jakobdo Ekspert
30. marts 2006 - 19:26 #1
Har du session_start() i toppen af din kode?
Avatar billede ofirpeter Nybegynder
30. marts 2006 - 19:28 #2
Dette er resten af koden:

<?php
session_start();
$fejl = "";
require("inc_sql.php");
if(isset($_SESSION['Username'])){
        header("location: tilmelding.php");
}

......... (den kode i har set)

if(isset($_GET["fejl"])){ $fejl = "Dine loginoplysninger var ikke korekte"; }
if(isset($_GET["opret"])){ $fejl = "Du kan nu logge ind med dit brugernavn og password"; }
Avatar billede jakobdo Ekspert
30. marts 2006 - 20:34 #3
Prøv at test denne kode:

if(isset($_REQUEST['Send']))
{
    # Starter sessionen så vi senere kan gemme / hente variabler herfra
    $Username = mysql_real_escape_string($_POST["Username"]);
    $Password = md5($_POST["Password"]);
   
    # Forespørger databasen, om der er en række med brugernavnet $Username og kodeordet $Password
    $Query = mysql_query("SELECT * FROM poker_bruger WHERE username='". $Username ."' AND password='". $Password ."' LIMIT 1");
   
    # Fandt vi en bruger?
    if(mysql_num_rows($Query)==1)
    {
        # Smider resultatet ind i et objekt
        $Row = mysql_fetch_object($Query);
     
        # Smider brugernavnet og kodeordet ind i sessioner
        $_SESSION['Username'] = $Username;
        $_SESSION['Password'] = $Password;
             
   
        # Man er logget ind
        header("location: tilmelding.php");
        exit();
    }
    else
    {
        header("location: login.php?fejl=");
        exit();
    }
}
Avatar billede ofirpeter Nybegynder
03. maj 2006 - 20:43 #4
Hej Jakobdo, det virker super. Du må meget gerne svare.
Avatar billede jakobdo Ekspert
03. maj 2006 - 21:00 #5
Svar!
Avatar billede jakobdo Ekspert
03. maj 2006 - 21:33 #6
Takker for point.
Avatar billede ibandersson Juniormester
07. april 2014 - 14:41 #7
hej ofirpeter
Jeg kan se i din kode at du bruger md5 til password.
Det har jeg også prøvet men det virker ikke for mig.
Har du haft nogle problemer med det eller laver du noget om inden du tjekker i db. ??

jeg har prøvet alt tror jeg.
men når jeg kører scriptet springer den altid til 2 mulighed
"du er ikke logget ind"

da jeg så lavede hele lorte om til almindelig password virkede det perfekt.
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