Avatar billede blach Nybegynder
17. marts 2006 - 15:30 Der er 1 kommentar og
1 løsning

PHP5 og login script virker ikke

Har installeret PHP5, og nu virker nedenstående script ikke - nogle der kan fortælle mig hvad der er galt? (Den melder bare at brugernavn eller adgangskode ikke var korrekt indtastet)
Kan jeg ændre på server-settings, eller er der nogle variabler som skal sættes anderledes?

--index--
<?php
include("functions.php");

    <?php
      if(!isset($_SESSION["user"]))
        {
    ?>
<form action="<?php echo $actionfile; ?>" method="post">
Log på:
<input type="hidden" name="login" value="true">

Brugernavn
<input type="text" name="username" class="but2" size="20">
Adgangskode
<input type="password" name="password" class="but2" size="20">

<input type="submit" value="Log ind" class="button2">

<input type="checkbox" name="husk">
Gem log ind
</form>

-----

--check.php--
<?php
include("functions.php");

if(isset($_SESSION["redir"])) // $_SESSION["redir"] sender brugeren tilbage
{

if (isset($_POST["login"]))
    {
connect();
$res = mysql_query("SELECT * FROM `". $login_db ."` WHERE `". $user_felt ."` = '". $_POST["username"] ."' AND `". $pass_felt ."` = '". $_POST["password"] ."'") or die (mysql_error());

if (mysql_num_rows($res) == 0)
    {

$_SESSION["besked"] = "<FONT COLOR=#DF1D1D>Fejl i brugernavn eller adgangskode. <br>Prøv igen eller få den tilsendt <a href=?page=glemt_oplysninger>her</a>!</FONT>";

    }else{

$p = mysql_fetch_array($res);
$_SESSION["user"]["id"] = session_id();
$_SESSION["user"]["username"] = $p["username"];
$_SESSION["user"]["level"] = $p["level"];

    if(isset($_POST["husk"]))
        {
    setcookie ("username", $_SESSION["user"]["username"], (time()+31536000), "/"); // set cookie 365 dage
    setcookie ("password", md5($_POST["password"]), (time()+31536000), "/");
    $_SESSION["user"]["husk"] = 1;
        }
    }
header("Location:". $_SESSION["redir"] ."");
}

if (isset($_GET["logud"]))
    {
    $_SESSION[] = array();
    $back = $_SESSION["redir"]; //Sletter jo sessions, så der $back skal lige defineres
    session_destroy();
    header("Location:". $back ."");
    }

if (isset($_GET["dellogin"]))
    {
    setcookie ("username", "", (time()-3600), "/");
    setcookie ("password", "", (time()-3600), "/");
    header("Location:". $_SESSION["redir"] ."");
    unset($_SESSION["user"]["husk"]);
    }

}
?>

-------


--functions.php--

<?php
session_start();
include("settings.php"); //Filen du skal ændre i til dit brug


if(basename($_SERVER["PHP_SELF"]) != $actionfile)
    {
$_SESSION["redir"] = $_SERVER["REQUEST_URI"]; //Bruges til at sende brugeren tilbage til sidst sete fil
}


//Connect til DB, her i en function for at kunne
function connect() {

global $db_host, $db_user, $db_pass, $db_table;

$db = mysql_connect($db_host, $db_user, $db_pass) or die ("Kunne desværre ikke få forbindelse til databasen! Vær venlig at prøve igen senere...");
mysql_select_db($db_table, $db) or die ("Kunne desværre ikke forbinde valgte database!");
    }

function cookie_user() {

global $login_db, $user_felt, $pass_felt;

if(!isset($_SESSION["cookietjek"])) // Tjekker kun en gang om en cookie er sat.
    {

    if (isset($_COOKIE["username"], $_COOKIE["password"]))
    {
    connect();

    $vars = mysql_query("SELECT * FROM `". $login_db ."` WHERE `". $user_felt ."` = '". $_COOKIE["username"] ."' AND `". $pass_felt ."` = '". $_COOKIE["password"] ."'") or die (mysql_error());

        if (mysql_num_rows($vars) !=0)
        {
        $res = mysql_fetch_array($vars);
        $_SESSION["user"]["id"] = session_id();
        $_SESSION["user"]["username"] = $_COOKIE["username"];
        $_SESSION["user"]["level"] = $_COOKIE["password"];
        $_SESSION["user"]["husk"] = 1;

        setcookie ("username", $_SESSION["user"]["username"], (time()+31536000), "/");
        setcookie ("password", $_COOKIE["password"], (time()+31536000), "/");

        }
    }

    }else{
$_SESSION["cookietjek"] = 1;
    }
}

function vis_besked() {

    if(isset($_SESSION["besked"])) {
    echo $_SESSION["besked"];
    unset($_SESSION["besked"]);
    }
}
?>

------
Avatar billede blach Nybegynder
17. marts 2006 - 15:32 #1
--index opdateret--
<?php
include("functions.php");

    <?php
      if(!isset($_SESSION["user"]))
        {
//Dvs. man er ikke logget ind:
    ?>
<form action="<?php echo $actionfile; ?>" method="post">
Log på:
<input type="hidden" name="login" value="true">

Brugernavn
<input type="text" name="username" class="but2" size="20">
Adgangskode
<input type="password" name="password" class="but2" size="20">

<input type="submit" value="Log ind" class="button2">

<input type="checkbox" name="husk">
Gem log ind
</form>

    <?php
    }else{

   
    //Dvs. man er logget ind, dette niveau vises slet ikke...

}
?>

-----
Avatar billede blach Nybegynder
17. marts 2006 - 15:42 #2
Hmm det virker :) Satte register_globals = On i php.ini
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