webForumDet fria alternativet

inloggningssystem

73 svar · 1 309 visningar · startad av silfver · sida 4 av 4

filipbhMedlem sedan juli 2002405 inlägg
#61

Det var lite "måsvingar" som saknades...

if($_POST['login_button']) {

$antalhits=0;
$_POST['loginpass'] = md5($_POST['loginpass']);
$open = mysql_connect ("localhost", "user","pass");
$sql = "SELECT username,password FROM users WHERE username='".$_POST['loginname']."'";
$result = mysql_db_query("databas","$sql");

while($data=mysql_fetch_array($result)){

if($data['username']==$_POST['loginname']){

    if($data['password']==$_POST['loginpass']){

               echo "Du loggas vidare";
               echo("<script language=JavaScript>");
               echo("self.location.replace(sida.php')");
               echo("</script>");
}
else
echo "Det gick inte att fullfölja inloggningen";
  }
 }
if($antalhits!=1)
echo "Det gick inte att fullfölja inloggningen";
}

Tror det fungerar... Ska sticka nu men kan nog fortsätta med hjälp senare ikväll... Tjabba

silfverMedlem sedan apr. 200312 679 inlägg
#62

Man kommer in på sidan, även om man inte loggat in. Hur ska man göra för att undvika det?
http://silfver.se/login/ /start.php för att testa loginfunktionen. test/test

Sen man måste ju kunna logga ut också... :D För nu är man fast på sidan. Hehe. Och hur gör man för att använda krypterade lösenord? Jag tog bort den strängen, så funkade det sen. Är det krångligt att använda sånt? Eller smidigt? Låter ju säkrare.

filipbhMedlem sedan juli 2002405 inlägg
#63

Är det inte bättre att ha inloggningssidan på index.php istället? För att servern tar ju index först. Och index.php som du har nu blir start.php istället. Skriver man då silfver.se/login/ kommer man ju direkt till inloggningen... I inloggningsfilen får du även göra så att användarnamnet och lösenordet sparas i sessioner. För att kolla alla om man har loggat in måste du ha en fil som kollar om sessioner finns. Finns de inte kommer man till index.php, annars ser man den sida man skulle besöka. Ang. krypterade lösenord tycker jag det är bra att ha OM någon skulle komma åt databasen.

silfverMedlem sedan apr. 200312 679 inlägg
#64

filipbh skrev:

Är det inte bättre att ha inloggningssidan på index.php istället? För att servern tar ju index först. Och index.php som du har nu blir start.php istället. Skriver man då silfver.se/login/ kommer man ju direkt till inloggningen... I inloggningsfilen får du även göra så att användarnamnet och lösenordet sparas i sessioner. För att kolla alla om man har loggat in måste du ha en fil som kollar om sessioner finns. Finns de inte kommer man till index.php, annars ser man den sida man skulle besöka. Ang. krypterade lösenord tycker jag det är bra att ha OM någon skulle komma åt databasen.

Jo, givetvis är det bättre att ha inloggningen på index.php. Men man kan ju fortfarande nå, start.php om man inte löser det på något smidigt sätt. Hur man skapar sessioner har jag ingen aning om hur man gör. Man betyder det då? Kan man inte bara skriva require: login; eller nåt? :p

filipbhMedlem sedan juli 2002405 inlägg
#65

Så här skapar du en session:

@session_start();
@session_register("user");
@session_register("pass");
@$_SESSION['user'] = $_POST['loginname'];
@$_SESSION['pass'] = $_POST['loginpass'];

Filen som kollar om du är inloggad kan du t.ex. döpa till checkinloggad.php. I den skriver du t.ex.:

if (!$_SESSION[user]) {
echo "Du har inte loggat in!";
               echo("<script language=JavaScript>");
               echo("top.location.replace('index.php')");
               echo("</script>");
}

if (!$_SESSION[pass]) {
echo "Du har inte loggat in!";
               echo("<script language=JavaScript>");
               echo("top.location.replace('index.php')");
               echo("</script>");
}

Jag har även en kolumn i user-tabellen som heter online. I filen som kollar sessionerna kollas även om online är 1 på den inloggade användarens namn.

Är inte så bra på att förklara alltid men hoppas att du förstår. Du kan adda mig på MSN eller ICQ för snabbare hjälp.

silfverMedlem sedan apr. 200312 679 inlägg
#66

Okay, så vart ska man placera den översta koden? Skall den ligga på inloggningssidan (index.php) eller ska den ligga i start.php dit man loggat in?

Och koden som kollar om man är inloggad, skall den inkluderas i alla filer eller? Du hade inte skrivit din msn där, du får gärna skicka ett pm till mig så kan vi ta allting där. :)

filipbhMedlem sedan juli 2002405 inlägg
#67

Ja, den översta lägger du precis innan man skickas vidare till start.php. Inkludera den filen överst i samtliga filer utom index.php.

silfverMedlem sedan apr. 200312 679 inlägg
#68

filipbh skrev:

Ja, den översta lägger du precis innan man skickas vidare till start.php. Inkludera den filen överst i samtliga filer utom index.php.

Hur ska jag lägga den översta i koden? Spelar det någon roll vart i koden jag lägger den? Och vart skulle jag placera den andra koden? alla sidor UTOM i index?

filipbhMedlem sedan juli 2002405 inlägg
#69

Inloggningssidan skulle kunna se ut så här:

if($_POST['login_button']) {

$antalhits=0;
$_POST['loginpass'] = md5($_POST['loginpass']);
$open = mysql_connect ("localhost", "user","pass");
$sql = "SELECT username,password FROM users WHERE username='".$_POST['loginname']."'";
$result = mysql_db_query("databas","$sql");

while($data=mysql_fetch_array($result)){

if($data['username']==$_POST['loginname']){

    if($data['password']==$_POST['loginpass']){

@session_start();
@session_register("user");
@session_register("pass");
@$_SESSION['user'] = $_POST['loginname'];
@$_SESSION['pass'] = $_POST['loginpass'];

               echo "Du loggas vidare";
               echo("<script language=JavaScript>");
               echo("self.location.replace(sida.php')");
               echo("</script>");
}
else
echo "Det gick inte att fullfölja inloggningen";
  }
 }
if($antalhits!=1)
echo "Det gick inte att fullfölja inloggningen";
}

och

if (!$_SESSION[user]) {
echo "Du har inte loggat in!";
               echo("<script language=JavaScript>");
               echo("top.location.replace('index.php')");
               echo("</script>");
}

if (!$_SESSION[pass]) {
echo "Du har inte loggat in!";
               echo("<script language=JavaScript>");
               echo("top.location.replace('index.php')");
               echo("</script>");
}

placeras i checkinloggad.php eller vad du nu döpt den till.

Om du lägger den checkfilen på indexsidan så kommer index.php bara att loopas runt och runt. Sidan öppnas, den känner av att man inte är inloggad och skickar en till index.php. Då känner den av att man inte är inloggad och skickar en yttligare en gång till index.php och så fortsätter det tills du ändrar filen. Förstår du?

silfverMedlem sedan apr. 200312 679 inlägg
#70

filipbh skrev:

Förstår du?

Jag förstod precis. Lyckas dessutom! :L http://silfver.se/login/start.php <- testa. :)

Hm. Nej det funkade inte föresten ser jag nu. Jag la in koden

<?php

include "checkinloggad.php";

?>

i start.php så gick det inte logga in. Den loopades som du sa. Gjorde jag fel likt förbannat? La in den includen i alla utan i index.php. (Index.php är ju den som man loggar in från nu. Ändrade när du sa det innan.)

r/ men man kunde inte gå in på login/start.php för då kom man till loginsidan. det var därför jag trodde det funkade. men så gick det ju inte logga in.

r/ igen såg att det spelar ingen roll vad man skriver för lösenord. man kommer in ändå!

filipbhMedlem sedan juli 2002405 inlägg
#71

För att logga ut skriver du

session_start();
session_unset();
session_destroy();

i loggaut.php-sidan

Ändra include-koden till

require("checkinloggad.php");

Require fungerar bättre för där måste filen som ska inkluderas finnas för att sidan ska visas. Borde fungera bättre om du skriver så. Du kan även skriva:

include("checkinloggad.php");

men som sagt; tycker require är bättre.

silfverMedlem sedan apr. 200312 679 inlägg
#72

Fixat. Såg du det jag skrev där uppe? :p Vet inte hur jag lyckas göra fel på allt jag ska göra. Men jag skyller på att jag är nybörjare. :r

filipbhMedlem sedan juli 2002405 inlägg
#73

Hehe ingen fara.. Vet man allt från början kan man ju inte lära sig. Och som jag läste tidigare här på wF. Frågar ingen så finns snart inte wF längre. Fått mitt PM?

silfverMedlem sedan apr. 200312 679 inlägg
#74

Det finns inga nya meddelanden sedan ditt senaste besök.

Nix. :(

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)