Avatar billede mc.lucifer Praktikant
13. juni 2007 - 09:41 Der er 11 kommentarer

simpelt login system

Jeg er startet som Webintergrator og har før kodet en masse i PHP, men på uddannelsen satser man på ASP.. Hvilket gør at jeg nu har kodet ASP det sidste halve år men sidder nu og skal have lavet et lille system der skal kodes i php... det hænger da stadig fast, men ikke helt så godt som jeg havde håbet...

Jeg skal lave en simpel login i php og har egentlig alt koden klar på nær men mysql connection. SQL kan jeg på rykraden men kan ikke huske i php hvordan man tjekker om en bruger er i databasen.

Altså den skal køre følgende SQL kode i PHP

select * from user where username = $_POST['username'] and password = $_POST['Password']

er der en der lige kan hjælpe mig med det....

MC
Avatar billede jakobdo Ekspert
13. juni 2007 - 10:36 #1
Din sql kode ser nu korrekt ud.
Avatar billede jweber Nybegynder
13. juni 2007 - 10:39 #2
Hvis PHP skal have forbindelse til databasen, skal du først oprette forbindelsen og derefter vælge databasen.

$connect = mysql_connect($db_host, $db_user, $db_pass) or die("Kunne ikke oprette forbindelse til databasen!");
mysql_select_db($db_name, $connect);
Avatar billede mc.lucifer Praktikant
13. juni 2007 - 10:41 #3
det jeg leder efter er hele php syntaxen for

db connect
vælg database
hent alt ud i et array
og chek om brugern har tastet forkert eller korekt

MC
Avatar billede majbom Novice
13. juni 2007 - 10:42 #4
noget med:
$res = mysql_query("select * from user where username = $_POST['username'] and password = $_POST['Password']
") or die(mysql_error());
$userinfo = mysql_fetch_array($res);
if($_POST['username'] == $userinfo['username']){
  if($_POST['Password'] == $userinfo['password']){
      //login
  }else{
      //kode forkert
}else{
  //brugernavn findes ikke
}
Avatar billede majbom Novice
13. juni 2007 - 10:43 #5
self skal der lige connect til db før "$res = mysq_query..." og disconnect db efter
Avatar billede jakobdo Ekspert
13. juni 2007 - 11:01 #6
<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
  die ('Can\'t use foo : ' . mysql_error());
}
?>
Avatar billede jakobdo Ekspert
13. juni 2007 - 11:03 #7
Efter det laver du så:

$user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['Password']);
$query = mysql_query("select * from user where username = $user and password = $pass LIMIT 1");
if(mysql_num_rows($query)==1)
{
echo 'Du skal logges ind';
}
else
{
echo 'Forkert kombination af brugernavn/kodeord!';
}
Avatar billede mc.lucifer Praktikant
18. juni 2007 - 09:54 #8
nu har jeg forsøgt med lidt af det i har skrevet og lidt ved at lure i gamle koder og er kommet frem til følgende løsning... ved godt den ikke chekker på password endnu !

session_start();
if (isset($_POST['loginknap']))
{
    $username = $_POST['username'];
    $database = mysql_connect('localhost', 'root', '1234');
    $db = mysql_select_db('marcia', $database);
    $request = mysql_query("select * from user where username='$username' limit 1");
    $output = mysql_fetch_array($request);
        if ($output<1)
        {
        echo"Du har tastet forkert ellers er du ikke oprettet i systemet";
        }
        elseif ($output=1)
        {
        echo "Dit username er ";
        echo $output['username'];
        $_SESSION['login'] = 'true';
        $_SESSION['unikKey'] = $output['id'];
        $_SESSION['navn'] = $output['name'];
        }
}

Problemet er at mine sessioner ikke fyldes med ting fra databasen hvilket jo betyder at der er noget i vejen med den måde jeg forsøger at hente værdier fra databasen..

Kan i se hvor jeg fejler
Avatar billede jakobdo Ekspert
18. juni 2007 - 21:16 #9
Test dette:

session_start();
if (isset($_POST['loginknap']))
{
    $username = $_POST['username'];
    $database = mysql_connect('localhost', 'root', '1234');
    $db = mysql_select_db('marcia', $database);
    $request = mysql_query("select * from user where username='$username' AND password ='$password' limit 1");
    if (mysql_num_rows($request) == 1)
    {
        $output = mysql_fetch_assoc($request);
        echo "Dit username er " . $output['username'];
        $_SESSION['login'] = 'true';
        $_SESSION['unikKey'] = $output['id'];
        $_SESSION['navn'] = $output['name'];
    }
    else
    {
        echo"Du har tastet forkert ellers er du ikke oprettet i systemet";
    }
}
Avatar billede majbom Novice
21. januar 2009 - 09:51 #10
mc.lucifer?
Avatar billede majbom Novice
04. november 2010 - 10:22 #11
er vi færdige her?
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