Avatar billede JobJog Nybegynder
01. februar 2012 - 16:11 Der er 6 kommentarer og
1 løsning

Login med oplysninger fra database..

Hej
Jeg er igang med at lave et login system, hvor man kan oprette en bruger og så logge ind med email og password..

når man opretter sig, kommer alle oplysninger ind i databasen.  Når man så vil logge ind på siden, skal den hente email og password oplysningerne fra databasen..

Så håber i kan hjælpe mig på rette vej i det her :)

Det her er hvad jeg har gjordt..

//Her henter den oplysninger fra Form på forsiden
$email = $_POST['email'];
$password = $_POST['password'];

//udtræk fra databasen
$query = "SELECT email, adgangskode FROM bruger WHERE email=".$email." AND adgangskode=".$password."";
$objResult = $objCon->query($query) or die($objCon->error);
}

if($email == $objResult['email'] && $password == $objResult['adgangskode']){
    header("location:forside.php");
}
else{
    $_SESSION['error'] = "du er en klaphat";
    header("location:index.php");
};
Avatar billede claes57 Ekspert
01. februar 2012 - 16:33 #1
selvom dette system http://www.phpbuilder.com/columns/tim20000505.php3?page=1 er gammelt, så tjek det ud - det virker, omend det er med gamle kald.
Og så kan bruger fx få tilsendt mail hvis adgangskode er glemt, samt skifte adgangskode.
01. februar 2012 - 16:35 #2
Du fortæller ikke, hvad problemet er, hvad der skete i modsætning til hvad du forventede, og om du får nogen fejlmeldinger.  Du skriver heller ikke, hvad programmeringssproget er. 

Jeg går i det følgende ud fra, at det er php.  I php i en tekststreng mellem dobbelt anførselstegn bliver variabler automatisk 'oversat.'  Så i stedet for
"...WHERE email=".$email." AND adgangskode=".$password...

kan du forenkle til:

"...WHERE email = $email AND adgangskode = $password.."

Så et fingerpeg:  I tabellen bruger er email og adgangskode sandsynligvis tekststrenge.  I så fald skal du sætte variablerne i mellem anførselstegn.  Det bliver så til:

"...WHERE email = '$email' AND adgangskode = '$password'.."
Avatar billede JobJog Nybegynder
01. februar 2012 - 16:49 #3
ja det er php ;)
jeg køre først

session_start();
$objCon = new mysqli('localhost', 'xxxxxxx', 'xxxxxx', 'xxxxxxxxx');
if ($objCon->connect_error) {
    die('Kunne ikke forbinde (' . $objCon->connect_error . ') ' . $objCon->connect_error);
}


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



$query = "SELECT email, adgangskode FROM bruger WHERE email=".$email." AND adgangskode=".$password."";
$objResult = $objCon->query($query) or die($objCon->error);
while ($row = $objResult->fetch_assoc()){
}




if($email == $objResult['email'] && $password == $objResult['adgangskode']){
    header("location:forside.php");
}
else{
    $_SESSION['error'] = "du er en klaphat";
    header("location:index.php");
};


Min fejl er at den ikke kan hente mine oplysninger fra databasen og sammenligne dem med de indtastede oplysninger. Så når jeg vil logge ind, bliver jeg smidt ind på code_login.php hvor der står at forbindelsen til databasen er i orden.. Den burde sende mig vider til min forside.php.
01. februar 2012 - 17:35 #4
Har du prøvet med at ændre din kode som vist i #2?
Avatar billede JobJog Nybegynder
01. februar 2012 - 19:40 #5
jeps det er ændret nu,
hvis jeg echo email og password ud, så får jeg de rigtige oplysninger fra databasen nu.

bare hvordan jeg få dem her ned og fungere ???

if($email == $objResult['email'] && $password == $objResult['adgangskode']){
    header("location:forside.php");
}
else{
    $_SESSION['error'] = "du er en klaphat";
    header("location:index.php");
};
01. februar 2012 - 20:00 #6
Når du siger:  while ($row = $objResult->fetch_assoc()){
}

hvilket er det samme som while ($row = $objResult->fetch_assoc())
{}

så afslutter du din while løkke inden den når at gøre noget.  Det skal være

while ($row = $objResult->fetch_assoc())
{
  [her kommer det der skal ske i while løkken]
}

ikkesandt?

Så prøv med

while ($row = $objResult->fetch_assoc())
{
  if($email == $objResult['email'] && $password == $objResult['adgangskode'])
  {
      header("location:forside.php");
  }
  else
  {
    $_SESSION['error'] = "du er en klaphat";
    header("location:index.php");
  }
}
Avatar billede JobJog Nybegynder
02. februar 2012 - 08:34 #7
Tak for hjælpen :)

dog havde jeg lavet fejl

if($email == $objResult['email'] && $password == $objResult['adgangskode'])

Her skulle $objResult skiftes ud med $row da jeg jo gav besked før at while ($row = $objResult->fetch_assoc())

har uddelt point til Christian_Belgien
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
Kurser inden for grundlæggende programmering

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