Login via MySQL og PHP

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
KHIT
Entusiast
Entusiast
Indlæg:28
Tilmeldt:16. sep 2011, 18:34
Login via MySQL og PHP

Indlæg af KHIT » 24. mar 2012, 13:46

Hej
Jeg er igang med at implementere loginsystemet fra php tutorial 18, som jeg har modificeret en smule, således at det ikke kigger efter en bestemt foruddefineret værdi i php-filen, men at jeg bruger noget af koden fra MySQL tutorial 5, så jeg laver en forbindelse til min database, hvor den så kigger i min tabel users i felterne username og password.
Det virker fint hvis jeg logger ind som bruger downsgaming, der har id 1, men prøver jeg at logge ind som webmaster, der har id 2, får jeg index.php?msg=FEJL i min browsers adresselinje. Jeg har prøvet at tilføje et while loop, men det gav heller ikke noget.
Her er min kode fra min validate.php(den fil der tjekker at de indtastede oplysninger er korrekte)

Kode: Vælg alt

<?php
session_start();

include 'connect.php';

$username = $_POST['username'];
$password = $_POST['password'];

$data = mysql_query("SELECT * FROM users" ) or die(mysql_error());
$info = mysql_fetch_array($data);

$adminusername = $info['username'];
$adminpassword = $info['password'];

    if($username == "$adminusername" && $password == "$adminpassword") {
       
       $_SESSION['loggedin'] = "$username"; 
        
        header('Location: ../index.php');
        
    } else {
        
       header('Location: ../index.php?msg=FEJL');
        
    }
?>
Min connect.php ser således ud:

Kode: Vælg alt

<?php
$server = "localhost";
$brugernavn = "root";
$kode = "";
$db = "users_dsgaming";

mysql_connect($server , $brugernavn , $kode) or die(mysql_error());
mysql_select_db($db)or die(mysql_error());
?>
Jeg ved at det er min validate.php der er problemet, men ved ikke lige hvordan jeg skal rette det.

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

Re: Login via MySQL og PHP

Indlæg af ThomasI » 24. mar 2012, 14:39

Hej

Det hjalp ikke at lave den på den her måde istedet?

Kode: Vælg alt

while ($info = mysql_fetch_array($data))
 {
 if($username == $info['username'] && $password == $info['password']) {
       
       $_SESSION['loggedin'] = "$username"; 
        
        header('Location: ../index.php');
        
    } else {
        
       header('Location: ../index.php?msg=FEJL');
        
    }
 }
Ellers kunne du jo lave koden så den kunne går in i din tabel der hvor det in´dtastede brugernavn er:

Kode: Vælg alt

$data = mysql_query("SELECT * FROM users WHERE username='$username' " ) or die(mysql_error());
$info = mysql_fetch_array($data);

$adminpassword = $info['password'];

    if($password == '$adminpassword') {
       
       $_SESSION['loggedin'] = "$username"; 
        
        header('Location: ../index.php');
        
    } else {
        
       header('Location: ../index.php?msg=FEJL');
        
    }
På den måde går du ind og kigger i din DB og kigger i din tabel der hvor brugernavn = det navn der er blevet tastet ind... Hvis det findes tjecker den om det passwordet der er blavet tastet ind også passer med det der står udfor det brugernavn...

Du kan så lave en anden fejlmeddelse end den der MYSQlerror, så den ikke giver en underlig fejl hvis brugeren ikke eksistere...

KHIT
Entusiast
Entusiast
Indlæg:28
Tilmeldt:16. sep 2011, 18:34

Re: Login via MySQL og PHP

Indlæg af KHIT » 24. mar 2012, 21:49

Hej
Jeg prøvede at lege lidt med dem. Ligesom den gør i PHP-tutorial 18, så har jeg sat min til at lave en logout-knap, samt en velkomst besked i en fil jeg har placeret i en div med include. Med det første stykke kode, virkede det med at jeg kunne logge ind som de forskellige brugere, men jeg fik den ændring jeg har sat i adressefeltet, hvis jeg havde lavet noget forkert også selvom login var gået igennem.
Det andet forslag du kom med virker som sådan også, lige bortset fra at min fil der skal give mig logout-knappen ikke reagerer på det.
Min side er stadigvæk under opbygning, så derfor har jeg ikke fået lavet en admin-del endnu, så jeg kan teste om den virkelig har lavet en session, men det må den have gjort i den første, hvis jeg får velkomst besked, samt logout-knap

Besvar