Avatar billede tlunde Nybegynder
01. oktober 2005 - 13:40 Der er 23 kommentarer og
1 løsning

Tjekke loginoplysninger?

Hejsa,
Jeg er ved at lave et login system, hvor jeg skal have formen til at tjekke på 3 variabler. Jeg har skrevet koden sådan her:

$tjek = mysql_query("SELECT brugernavn, password, aktiv FROM brugere WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]' AND aktiv='true'") or die ("Kunne ikke vælge felter i database-tabellen");

if(mysql_num_rows($tjek) != 0) {

----------

For at en bruger kan logge ind, skal brugernavn=$brugernavn, og password=$password og aktiv=true

Men selvom der står aktiv=false i databasen, så kan man logge ind alligevel.

Har jeg skrevet noget forkert i mit SQL tjek?
Avatar billede leif Seniormester
01. oktober 2005 - 13:42 #1
Hvad type er din aktiv ?
Avatar billede tlunde Nybegynder
01. oktober 2005 - 13:45 #2
for at kunne logge ind skal den være true, men ellers er den som standard sat til false
Avatar billede tlunde Nybegynder
01. oktober 2005 - 13:46 #3
Har i stedet for:

if(mysql_num_rows($tjek) != 0) {

har jeg prøvet at skrive noget ala:

if(aktiv == 'true') {

Men det virker heller ik rigtigt, er heller ik sikker på at jeg skriver det rigtigt, for at koden kan forstå det..
Avatar billede leif Seniormester
01. oktober 2005 - 13:51 #4
Har du prøvet med:
AND aktiv=true
Avatar billede tlunde Nybegynder
01. oktober 2005 - 13:51 #5
i stedet for
AND aktiv='true' ??
Avatar billede tlunde Nybegynder
01. oktober 2005 - 13:53 #6
Det virkede ik bare at skrive
AND aktiv=true

Men sådan som jeg laver den query, er den ikke rigtigt nok opstillet? Henter den ik oplysningerne rigtigt nok og gemmer dem i brugernavn, password og aktiv?
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:00 #7
skulle min query ik godt nok tjekke på alle tre felter, sådan som jeg har stillet det op?
Avatar billede leif Seniormester
01. oktober 2005 - 14:01 #8
Nej,

Efter din $tjeck = mysql.... indsæt "$row = mysql_fetch_array($tjeck);", så kan du hente aktiv ved hjælp af $row["aktiv"]
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:04 #9
leif:
Hvordan vil du have jeg skal skrive det ind i det jeg allerede har?
Det kan jeg ik lige se...
Avatar billede leif Seniormester
01. oktober 2005 - 14:06 #10
$tjek = mysql_query("SELECT brugernavn, password, aktiv FROM brugere WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]' AND aktiv='true'") or die ("Kunne ikke vælge felter i database-tabellen");
$row = mysql_fetch_array($tjeck);

if(mysql_num_rows($tjek) != 0) {
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:09 #11
Skulle $row["aktiv"] være med i min query, eller hvor skulle den hen?
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:12 #12
Som den står her:

$tjek = mysql_query("SELECT brugernavn, password, aktiv FROM brugere WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]' AND aktiv='true'") or die ("Kunne ikke vælge felter i database-tabellen");
$row = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) != 0) {


Så tjekker den vist ik på aktiv i databasen??
Avatar billede leif Seniormester
01. oktober 2005 - 14:16 #13
Jeg ville lige prøve:
$tjek = mysql_query("SELECT brugernavn, password, aktiv FROM brugere WHERE brugernavn='$_POST[brugernavn]' AND password='$_POST[password]' AND aktiv='true'") or die ("Kunne ikke vælge felter i database-tabellen");
$row = mysql_fetch_array($tjek);

print $row["aktiv"];
exit;
Avatar billede leif Seniormester
01. oktober 2005 - 14:17 #14
For at se hvad der står i aktiv.
Avatar billede leif Seniormester
01. oktober 2005 - 14:17 #15
exit;

For så loader den ikke resten af siden.
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:30 #16
Jeg kan ik få den til at printe noget ud, hvis jeg bare indsætter det der kode i min fil, men hvis jeg laver en ny fil, der hedder test.php oh indsætter:

<?
include("../config.php");

db_con();

$tjek = mysql_query("SELECT brugernavn, password, aktiv FROM brugere WHERE brugernavn='swelle' AND password='1212'") or die ("Kunne ikke vælge felter i database-tabellen");
$row = mysql_fetch_array($tjek);

print $row["aktiv"];
exit;
?>

Så printer den "nej" ud:
http://www.selvhjaelp.dk/for_organisationer/test.php
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:34 #17
Hvis nu man skulle lave den query fra bunden af, hvordan ville den så se ud, hvis man skulle tjekke brugernavn og password fra formen + om feltet aktiv i databasen er ja eller nej?

Og man skal så kun kunne logge ind hvis brugernavn og password stemmer samt hvis feltet aktiv er sat til ja...

Tror det andet er ved at være noget rod...
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:36 #18
Er det noget du muligvis kan finde ud af, eller skal jeg oprette et nyt spørgsmål om dette problem?
Avatar billede leif Seniormester
01. oktober 2005 - 14:37 #19
Jeg skal lige handle !
Avatar billede leif Seniormester
01. oktober 2005 - 14:38 #20
Men kontakt mig på MSN lpj81 (at) hotmail.com

Så tager vi den der.
Avatar billede tlunde Nybegynder
01. oktober 2005 - 14:39 #21
okay, bliver først lige i aften så...skal også i byen og spise, men tak for hjælpen indtil videre...
Avatar billede tlunde Nybegynder
01. oktober 2005 - 16:53 #22
Tak for hjælpen leif, smider du et svar?
Avatar billede leif Seniormester
01. oktober 2005 - 16:54 #23
Nope, da hjælpen er sket uden for exp.dk !
Avatar billede tlunde Nybegynder
01. oktober 2005 - 21:29 #24
okay, fair nok...
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
Computerworld tilbyder specialiserede kurser i database-management

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