Gå til innhold

LØST: sjekke om bruker er pålogget med scriptet:


Anbefalte innlegg

Hei!

Vil bare at det logg inn scriptet her skal bli enda litt bedre jeg...

 

 

Logg inn scripet:

<?php

if ($_SESSION['online']) {
echo "
Welcome " . $_SESSION['username'] . "!

";
}

else if (isset($_POST['username']) && isset($_POST['password'])) {
$db=mysql_connect("localhost", "brukernavn", "passord");
mysql_select_db("db_navn", $db);


  $username = htmlentities($_POST['username']);
  $password = htmlentities($_POST['password']);
 
  $username = mysql_real_escape_string($username);
  $password = mysql_real_escape_string($password);

  $query = mysql_query("SELECT username, password FROM members WHERE username = '$username' AND password = '$password'");

 
  if(mysql_num_rows($query) == 1) {
  $_SESSION['online'] = true;
  $_SESSION['username'] = $username;
  echo "
Welcome " . $_SESSION['username'] . "!
";
}

  if(mysql_num_rows($query) == 0) {
  $_SESSION['online'] = false;
  $_SESSION['username'] = $username;
  echo "
Wrong username or password!
";
mysql_close($db);
  }
}
else {
?>
<form action="" method="post">
<p><strong>Username</strong><br /><input type="text" name="username" /></p>
<p><strong>Password</strong><br /><input type="password" name="password" /></p>
<p> <br /><input type="submit" name="submit" value=" Login " /></p>
</form>
<?php
}
?>

Selve scripet fungerer helt bra, men jeg vil prøve noe annet i stedet for å ha hele det scriptet på hver side...

 

Jeg vil sette det over <html> og bruker header location hvis man ikke er pålogget.

Og jeg har prøvd litt, men jeg blir bare tatt med tilbake til index.php hver gang, selv om jeg er pålogget og.

 

 

 

 

Det her satte jeg over Doctypen på sida jeg skal beskytte:

<?php
session_start();

$db=mysql_connect("localhost", "brukernavn", "passord");
mysql_select_db("db_navn", $db);

$query = mysql_query("SELECT username, password FROM members WHERE username = '$username' AND password = '$password'");

  if(mysql_num_rows($query) == 0) {
  $_SESSION['online'] = false;
  $_SESSION['username'] = $username;
header ('location: index.php');
mysql_close($db);
  }
  if(mysql_num_rows($query) == 1) {
  $_SESSION['online'] = true;
  $_SESSION['username'] = $username;
mysql_close($db);
  }
?>

Men det fungerte jo som sagt ikke helt...

Endret av Andy-Pandy
Lenke til kommentar
Videoannonse
Annonse

if (!$_SESSION['online']) {

die();

}

?

 

Den kan ikke stemme helt, kan den? Die dreper den jo på en måte...jaja, prøver den uansett så får vi se.

 

 

Edit:

Hmm...får det ikke til å fungere helt.

 

 

Er man logget inn skal man ikke bli sendt bort fra sida, men er man ikke pålogget, skal jeg bruke header ('location: index.php') siden det ikke fungerer under noe annen kode...da blir det bare feilmelding om at den ikke kan "modify headers".

Men hvis jeg kunne ha brukt header location midt på sida, hadde det ikke vært noe problem. Nå har jeg bare meta redirects =/

Endret av Andy-Pandy
Lenke til kommentar

Jo, men jeg har en admin mappe, som skal beskyttes, og jeg klarer ikke bruke legge til MySQL koden (annen tabell), inni den siden den allerede logget på...kanskje det går? Uansett, da må jeg skrive inn koden to ganger inni koden av en eller annen grunn :S

 

 

Men innloggingskjemaet ligger på venstre sida hele tida, så man trenger jo ikke å gå til den "hemmelige" mappa før man logger på...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...