Avatar billede kulip Nybegynder
27. september 2006 - 20:01 Der er 17 kommentarer

Husk funktion hjælp.

Hejsa, vil hører om nogle af jer herinde kunne hjælpe mig med at lave en Husk funktion til et login script. ?

På forhånd tak.
Avatar billede jaw Nybegynder
27. september 2006 - 20:20 #1
Princippet er, at man opretter en checkbox. Når personen så logger ind, tjekker du om checkboxen er markeret, og er den det, opretter du en cookie. Hver gang personen så besøger din side, tjekker du om han har en "login-cookie", og har han det, logger du ham automatisk ind.
Avatar billede kulip Nybegynder
27. september 2006 - 20:22 #2
hvor opretter man ikke cookie, og hvordan hvordan tjekker man om han har cookien ?
Avatar billede jaw Nybegynder
27. september 2006 - 20:25 #3
Du kan se, hvordan man sætter og tjekker cookies her: http://dk.php.net/manual/da/function.setcookie.php
Avatar billede kulip Nybegynder
27. september 2006 - 20:26 #4
hvordan tjekker jeg om der er tryds i tjekboksen?
Avatar billede kulip Nybegynder
27. september 2006 - 20:27 #5
jeg forstår ikke det med de cookies, kan i ikke vise mig hvordan man sætter en, hvis der er sat kryds, og hvordan man henter den igen?
Avatar billede jaw Nybegynder
27. september 2006 - 20:29 #6
Har du læst linket, eller gider du ikke? Det kræver jo en smule basis php-viden.

Du sender checkboxen med i din form med method=post eller get. Så tjekker du med:
if(isset($_POST['checkboxnavn']) && $_GET['checkboxnavn'] == "checkboxensvalue") {
  //her sætter du din cookie
}
Avatar billede kulip Nybegynder
27. september 2006 - 20:39 #7
jeg har læst linket, men er ikke god til php og slet ikke engelsk. desværre. Hmm jeg forstår ikke hvad du mener med det der? kan du tilføje det hvis jeg smider mit script? :).

log.php:
<form action="login.php" method="post">
Brugernavn<br>
<input type="text" name="brugernavn"><br>
Password<br>
<input type="password" name="password"><br>
<input type="submit" value="Login">
</form>

Login.php:
<?
session_start();
include("sql/db_ind.inc");
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
$result = mysql_query("SELECT * FROM login4 WHERE brugernavn='$brugernavn' AND password='$password'");
if (mysql_num_rows($result) == "0")
{
    echo("FEJL!");
}
else
{
    $r = mysql_fetch_array($result);
    $_SESSION["s_navn"] = $r["brugernavn"];
        $_SESSION["s_rang"] = $r["rank"];
        $_SESSION["s_id"] = $r["id"];
        $_SESSION["s_klan"] = $r["klan"];
        $result2 = mysql_query("SELECT * FROM klanmedlemmer WHERE medlem='$_SESSION[s_id]'");
        $r = mysql_fetch_array($result2);
        $_SESSION["s_klanid"] = $r2["klan"];

    echo "<script language=javascript>document.URL='news-sys.php?id=$_SESSION[s_id]';</script>";
}
?>
Avatar billede jaw Nybegynder
27. september 2006 - 21:45 #8
Nu har jeg lige prøvet noget, som du kan prøve og teste. Det er utestet herfra.

log.php:
<?
session_start();
if(isset($_COOKIE['brugernavn']) && !empty($_COOKIE['brugernavn']) && isset($_COOKIE['adgangskode']) && !empty($_COOKIE['adgangskode'])) {
header("Location: logindo.php");
}
?>

<form action="login.php" method="post">
Brugernavn<br>
<input type="text" name="brugernavn"><br>
Password<br>
<input type="password" name="password"><br>
<input type='checkbox' name='huskMig' value='1'>Husk mig.<br />
<input type="submit" value="Login">
</form>


<?
session_start();
include("sql/db_ind.inc");
$brugernavn = $_POST['brugernavn'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM login4 WHERE brugernavn='$brugernavn' AND password='$password'");
if (mysql_num_rows($result) == 0)
{
    echo("FEJL!");
}
else
{
    $r = mysql_fetch_array($result);
    $_SESSION["s_navn"] = $r["brugernavn"];
    $_SESSION["s_rang"] = $r["rank"];
    $_SESSION["s_id"] = $r["id"];
    $_SESSION["s_klan"] = $r["klan"];
    $result2 = mysql_query("SELECT * FROM klanmedlemmer WHERE medlem='".$_SESSION['s_id']."'");
    $r = mysql_fetch_array($result2);
    $_SESSION["s_klanid"] = $r2["klan"];
        if(isset($_POST['huskMig']) && $_POST['huskMig'] == 1) {
          setcookie("brugernavn", $r['brugernavn'], time()+604800); 
          setcookie("adgangskode", $password, time()+604800); 
        }
    echo "<script language=javascript>document.URL='news-sys.php?id=$_SESSION[s_id]';</script>";
}
?>


logindo.php:
<?
session_start();
if(isset($_COOKIE['brugernavn']) && !empty($_COOKIE['brugernavn']) && isset($_COOKIE['adgangskode']) && !empty($_COOKIE['adgangskode'])) {
$result = mysql_query("SELECT * FROM login4 WHERE brugernavn='".$_COOKIE['brugernavn']."' AND password='".$_COOKIE['password']."'");
if (mysql_num_rows($result) == 0)
{
    echo("FEJL!");
}
else
{
    $r = mysql_fetch_array($result);
    $_SESSION["s_navn"] = $r["brugernavn"];
    $_SESSION["s_rang"] = $r["rank"];
    $_SESSION["s_id"] = $r["id"];
    $_SESSION["s_klan"] = $r["klan"];
    $result2 = mysql_query("SELECT * FROM klanmedlemmer WHERE medlem='".$_SESSION['s_id']."'");
    $r = mysql_fetch_array($result2);
    $_SESSION["s_klanid"] = $r2["klan"];
      setcookie("brugernavn", $r['brugernavn'], time()+604800); 
      setcookie("adgangskode", $_COOKIE['password'], time()+604800); 
    echo "<script language=javascript>document.URL='news-sys.php?id=$_SESSION[s_id]';</script>";
}
?>
Avatar billede kulip Nybegynder
27. september 2006 - 21:52 #9
det forstår jeg ikke, hvorfor er den 2 sider?
Avatar billede jaw Nybegynder
27. september 2006 - 21:54 #10
Det er fordi jeg synes det er den mest overskuelige måde at gøre det på...
Avatar billede kulip Nybegynder
27. september 2006 - 21:56 #11
og:

<?
session_start();
if(isset($_COOKIE['brugernavn']) && !empty($_COOKIE['brugernavn']) && isset($_COOKIE['adgangskode']) && !empty($_COOKIE['adgangskode'])) {
$result = mysql_query("SELECT * FROM login4 WHERE brugernavn='".$_COOKIE['brugernavn']."' AND password='".$_COOKIE['password']."'");
if (mysql_num_rows($result) == 0)
{
    echo("FEJL!");
}
else
{
    $r = mysql_fetch_array($result);
    $_SESSION["s_navn"] = $r["brugernavn"];
    $_SESSION["s_rang"] = $r["rank"];
    $_SESSION["s_id"] = $r["id"];
    $_SESSION["s_klan"] = $r["klan"];
    $result2 = mysql_query("SELECT * FROM klanmedlemmer WHERE medlem='".$_SESSION['s_id']."'");
    $r = mysql_fetch_array($result2);
    $_SESSION["s_klanid"] = $r2["klan"];
      setcookie("brugernavn", $r['brugernavn'], time()+604800); 
      setcookie("adgangskode", $_COOKIE['password'], time()+604800); 
    echo "<script language=javascript>document.URL='news-sys.php?id=$_SESSION[s_id]';</script>";
}
?>

Virker ikke.
Avatar billede jaw Nybegynder
27. september 2006 - 21:57 #12
Det konstaterer du så meget præcist. Hvad sker der/sker der ikke? Det er jo hjælp til selv-hjælp her på eksperten.
Avatar billede kulip Nybegynder
27. september 2006 - 22:00 #13
Den bliver ikke lukket ordenligt.
Avatar billede jaw Nybegynder
27. september 2006 - 22:04 #14
Nej okey, der mangler vist en } lige før ?>
Avatar billede kulip Nybegynder
27. september 2006 - 22:06 #15
så vider den bare en hvid side.
Avatar billede jaw Nybegynder
27. september 2006 - 22:23 #16
Så er det fordi de cookies ikke bliver sat. Så må du jo finde ud af hvorfor. Bliver de sat, når du logger ind og har klikket "husk mig"? Og filen logindo.php er ikke som sådan en fil du bare skal køre. Den "kører sig selv".
Avatar billede kulip Nybegynder
28. september 2006 - 13:44 #17
hvad mener du ?
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