Oprettet ons. d. 01. februar 2012 kl. 16:11:24

JobJog
JobJog (4.635 point. Point ude: 60)

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");
};

Skrevet ons. d. 01. februar 2012 kl. 16:33:54| #1

claes57
claes57 (30.291 point)
selvom dette system http://www.phpbuilder.com/ (...) 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.

Skrevet ons. d. 01. februar 2012 kl. 16:35:16| #2

Christian_Belgien
Christian_Belgien (43.628 point)
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'.."

Skrevet ons. d. 01. februar 2012 kl. 16:49:05| #3

JobJog
JobJog (4.635 point)
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.

Skrevet ons. d. 01. februar 2012 kl. 17:35:11| #4

Christian_Belgien
Christian_Belgien (43.628 point)
Har du prøvet med at ændre din kode som vist i #2?

Skrevet ons. d. 01. februar 2012 kl. 19:40:54| #5

JobJog
JobJog (4.635 point)
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");
};

Skrevet ons. d. 01. februar 2012 kl. 20:00:29| #6

Christian_Belgien
Christian_Belgien (43.628 point)
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");
  }
}

Skrevet tor. d. 02. februar 2012 kl. 08:34:59| #7

JobJog
JobJog (4.635 point)
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

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Eget CMS-system

Oprettet den 26. maj 2012 kl. 12.24
MadsLundholmDk giver 30 point for svar | Giv et svar »

PHP kode

Oprettet den 24. maj 2012 kl. 00.15
ksno04 giver 30 point for svar | Giv et svar »

usynlige mellemrum i string indlæst fra .txtfil i PHP

Oprettet den 23. maj 2012 kl. 13.20
carsten1973 giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger