Avatar billede kack Nybegynder
30. august 2004 - 07:58 Der er 9 kommentarer

cookie/seesion

Jeg skal have mit login system til huske huske brugerens login. Så det ikke hele tiden logger ud.

Hvordan gør man det?

PS. Jeg er newb. Så er ikke den bedste til php.
Avatar billede sukos Juniormester
30. august 2004 - 08:44 #1
Personligt er jeg mest til sessions, men hvordan ser dit login ud indtil nu?
Avatar billede kack Nybegynder
30. august 2004 - 09:54 #2
Min kode ser sådan ud nu:

<?php
require("config.php");
$login = &$HTTP_POST_VARS['login'];

if(empty($login)) {
    echo '&nbsp;Denne side kræver login adgang'; }
    else {

$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];


if(empty($brugernavn) OR empty($password)) {
    echo '&nbsp;Et af felterne er tomme'; }   
    else {


mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);


$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());

$result_pw = mysql_query("select password from users where password = '$password'")
or die (mysql_error());
 

$array_user = mysql_fetch_array($result_user);
$array_pw = mysql_fetch_array($result_pw);

if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
  echo "&nbsp;Velkommen $brugernavn.";
}

else {
echo '&nbsp;Forkert kodeord, prøv igen';
}

}
}
?>
Avatar billede sukos Juniormester
30. august 2004 - 20:54 #3
Det du gør lige nu, er jo at hente bruger i DB som matcher det indtastede.
Og præcis det samme med password'et
Altså, du kan logge ind, uden at tjekke samtidigt for brugernavn OG password.
Hvis jeg f.eks. ved at en bruger hedder admin, kan jeg bruge det som brugernavn, men med mit eget password.

Er det en gammel version af PHP du sidder med? < 4.1 ???
hvis ikke, så brug hellere $_POST["brugernavn"] istedet.

Men for at vise andre sider som kræver login, kan du starte dit dokument med
<?php
session_start();

resten af doc...................


Og så her:
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
  echo "&nbsp;Velkommen $brugernavn.";
}
sætte en session:

if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
$_SESSION["user"] = $brugernavn;
  echo "&nbsp;Velkommen $brugernavn.";
}

På de andre sidder, starter du igen sessions, men tjekker så også om "user" er sat.

<?php
session_start();
if(isset($_SESSION["user"])) {
echo"Ok, du kan se siden";
}else{
echo"Hov, du skal logge ind først!!!";
}
?>
Avatar billede sukos Juniormester
30. august 2004 - 20:59 #4
ehh, og så til en start:

$result_user = mysql_query("SELECT `brugernavn` FROM `users` WHERE `brugernavn` = '". $brugernavn ."' AND `password` = '". $password ."' LIMIT 1") or die (mysql_error());

if(mysql_num_rows($result) == 1) {
$_SESSION["user"] = $brugernavn;
echo"Hej ". $_SESSION["user"];
}


Men kik osse lige her:
http://www.eksperten.dk/artikler/190
Avatar billede kack Nybegynder
30. august 2004 - 22:01 #5
Det fattede jeg ikke helt. Skal min login-ok.php så se sådan ud?:

<?php
session_start();

require("config.php");
$login = &$HTTP_POST_VARS['login'];

if(empty($login)) {
    echo '&nbsp;Denne side kræver login adgang'; }
    else {

$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];


if(empty($brugernavn) OR empty($password)) {
    echo '&nbsp;Et af felterne er tomme'; }   
    else {


mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);


$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());

$result_pw = mysql_query("select password from users where password = '$password'")
or die (mysql_error());
 

$array_user = mysql_fetch_array($result_user);
$array_pw = mysql_fetch_array($result_pw);

if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
  echo "&nbsp;Velkommen $brugernavn.";
}


if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
$_SESSION["user"] = $brugernavn;
  echo "&nbsp;Velkommen $brugernavn.";
}



else {
echo '&nbsp;Forkert kodeord, prøv igen';
}

}
}
?>
Avatar billede sukos Juniormester
31. august 2004 - 03:18 #6
For nu at burge det du har lavet:

<?php
session_start();

require("config.php");
$login = &$HTTP_POST_VARS['login'];

if(empty($login)) {
    echo '&nbsp;Denne side kræver login adgang';
    exit();
    }

$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];


if(empty($brugernavn) OR empty($password)) {
    echo '&nbsp;Et af felterne er tomme'; 
    exit();
    }


mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$result_user = mysql_query("SELECT `brugernavn` FROM `users` WHERE `brugernavn` = '". $brugernavn ."' AND `password` = '". $password ."'") or die (mysql_error());

if(mysql_num_rows($result) == 1) {
$_SESSION["user"] = $brugernavn;
echo"Hej ". $_SESSION["user"];
}else{
echo"Sorry, forkert brugernavn eller password";
}
?>
Avatar billede kack Nybegynder
31. august 2004 - 13:57 #7
ehm.. det virker ikke helt. Prøv at se www.kack.dk/madden
Avatar billede sukos Juniormester
31. august 2004 - 19:54 #8
I din index.php, starter du med at skrive session_start(); i toppen!!!
Den fil du logger ind med, er jo includet, og så ka ndu ikke bruge session_start(), da det skal skrives før du laver noget output til browseren.
Selv et mellemrum før <?php i starten af index.php kan gi' den fejl, når du bruger session_start();
Avatar billede kack Nybegynder
31. august 2004 - 20:33 #9
Mange tak for hjælpen sukos!!

Men der er stadig EN fejl. Ligemeget om man skriver det rigtige brugernavn og password siger den det er forkert. Hvad kan det skyldes?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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