Avatar billede butcher Nybegynder
29. marts 2004 - 13:56 Der er 3 kommentarer og
1 løsning

session probs

Jeg har en loginform på login.php hvor bruger logger sig ind og går igennem log.php hvor man finder:

{
include("config.php");
$query = "SELECT id, user, pass FROM login WHERE user = '".$_POST['bruger']."' AND pass= '".$_POST['pass']."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);

if ($_POST['bruger'] = $log['user'] && $_POST['pass'] = $log['pass']) {
   
        $_SESSION['status'] = "login";
        $_SESSION['navn'] = $log["user"];
        $_SESSION['logingang'] = 1;
    print("    <script language='javascript'>
        location.href='index.php';
        </script>");
}
else
{
        $_SESSION['status'] = "fejl";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
       
}
}
?>

Login scriptet virker også fint, på næste side index.php er der så følgende:

<?php
include("config.php");
$time = date("d/m-Y H:i:s");
$bruger = $_SESSION['navn'];   
$ip = $_SERVER['REMOTE_ADDR'];
$logintjek = $_SESSION['logingang'];
if($logintjek = 1){
mysql_query("INSERT INTO userlogins (username, time, ip) values ('$bruger', '$time', '$ip')");
$_SESSION['logingang'] = '0';
        }
        ?>
Den indsætter brugernavn, tid og ip ind i databasen for at holde noget log med brugerne når de logger ind, men jeg vil ha den til kun at tilføje til siden når de kommer fra login-formen.

Derfor indsatte jeg $_SESSION['logingang'] = 1; på log.php
og så if($logintjek = 1){
mysql_query("INSERT INTO userlogins (username, time, ip) values ('$bruger', '$time', '$ip')"); i index.php
så den kun indsætter i databasen når session logingang = 1. SÅ vil jeg have sat en anden værdi i session logingang, f.eks. med 0 så den ikke indskriver i databasen hvis jeg f.eks. refresher index.php, så derfor indsatte jeg $_SESSION['logingang'] = 0;
meeen det virker ikke rigtigt, men den sætter godt nok $_SESSION['logingang'] = 0;

Dette kan jeg også se hvis jeg indsætter en <?php echo $_SESSION['logingang']; ?> længere nede.

Hvor går det galt?
Avatar billede butcher Nybegynder
29. marts 2004 - 15:20 #1
Hvis i skal bruge mere fra mine php filer må i lige sige til, ved god den måske er lidt tricky, men der er også 120 point ;)

Jeg rodder naturligvis selv vidre med det, men hvis nogle har tid til at kigge på det, vil det være kanon :)
Avatar billede qrd-j Nybegynder
29. marts 2004 - 16:16 #2
Det ligner den klassiske fejl, prøv at bruge dobbelt lighedstegn, altså:
if($logintjek == 1)

Hvis du kun har et lighedstegn tildeler du bare $logintjek en værdi, og det er altid sandt.
Avatar billede sylvesternielsen Nybegynder
29. marts 2004 - 16:18 #3
Husker du session_start() på alle siderne?

Det er altid godt at sætte dine sessions med session_register().
Avatar billede butcher Nybegynder
30. marts 2004 - 08:46 #4
hahahah amen nogle gange hader jeg sq php :)

Nå den var altså ikke så svær igen, men så ved jeg da det til fremover, tak for svaret :)
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