Avatar billede mpj86 Nybegynder
29. juni 2003 - 16:00 Der er 11 kommentarer og
1 løsning

Problemer med session & cookie

Hej

Denne kode er til at logge ud:
<?php
session_start();
session_destroy();
setcookie("nick", "", time()-31536000);
setcookie("password", "", time()-31536000);
?>

Mit problemer er så hvis jeg har sat cookies og vil logge ud så ved første klik sletter den ens cookies og anden gang bliver man logget ud (session_destroy) Men hvis jeg ikke har valgt med cookies ved login så logger den en ud ved første klik!

Nogle der kan fixe dette problem??
Avatar billede Slettet bruger
29. juni 2003 - 16:19 #1
Er ovenstående kode ALT hvad der bliver parset ved et logout???
Noget siger mig nemlig at password og nick laver et nyt login efter de er blevet "nulstillet"!
setcookie("nick", "", time()-31536000); på virker nemlig ikke $_COOKIES før næste gang browseren loader en ny side!
Avatar billede mpj86 Nybegynder
29. juni 2003 - 16:25 #2
der står jo -> - <-31536000

Ja det er alt af min kode...
Avatar billede Slettet bruger
29. juni 2003 - 16:32 #3
Ingen includes??? Intet andet???
Prøv med:
<?php
setcookie("nick", "", time()-31536000);
setcookie("password", "", time()-31536000);
session_start();
session_destroy();
header("location: url til ny side");
?>
Avatar billede mpj86 Nybegynder
29. juni 2003 - 16:38 #4
Her er alt min kode:

<?php
session_start();
session_destroy();
setcookie("nick", "", time()-31536000);
setcookie("password", "", time()-31536000);

include('config.php');
require_once('topbar.php');
?>
<html>
<head>
<meta http-equiv="refresh" content="1;URL='index.php'">
</head>
<?php
echo '<div align="center"><center><table border="0" width="744" cellspacing="0" cellpadding="3" style="border: 1px solid #000000"><tr><td width="100%" bgcolor="#B9E1FD">';

echo '<font face="verdana" style="font-size: 11px;"><b>Du er nu logget ud</b></font>';

echo '</td></tr></table></center></div>';
?>
</html>
Avatar billede Slettet bruger
29. juni 2003 - 16:43 #5
Hvad indeholder config.php?????
Umiddelbart så kommenter include og require kald ud... og se hvad der sker!?
Avatar billede mpj86 Nybegynder
29. juni 2003 - 16:48 #6
Det er en fejl jeg har include config.php da det er til at komme i forbindelse med db...
Avatar billede Slettet bruger
29. juni 2003 - 16:49 #7
Har du prøvet at bytte om på session_* og setcookie kaldene?
Avatar billede mpj86 Nybegynder
29. juni 2003 - 16:52 #8
Jeg har fundet fejlen den kan ikke lide require_once('topbar.php');
Hvordan laver jeg så den også virker med den?

Koden hvor det virker ser sådan ud:

<?php
setcookie("nick", "", time()-31536000);
setcookie("password", "", time()-31536000);
session_start();
session_destroy();

echo '<div align="center"><center><table border="0" width="744" cellspacing="0" cellpadding="3" style="border: 1px solid #000000"><tr><td width="100%" bgcolor="#B9E1FD">';

echo '<font face="verdana" style="font-size: 11px;"><b>Du er nu logget ud</b></font><meta http-equiv="refresh" content="1;URL=\'index.php\'">';

echo '</td></tr></table></center></div>';
?>
Avatar billede Slettet bruger
29. juni 2003 - 17:20 #9
Hvad indeholder topbar.php????
Avatar billede mpj86 Nybegynder
29. juni 2003 - 17:28 #10
<?php
include("config.php");
session_start();

$nick = $_COOKIE['nick'];
$password = $_COOKIE['password'];

if (isset($nick) && isset($password)) {
$resultat = mysql_query("SELECT id, mail FROM brugere WHERE nick = '$nick' AND password=MD5('$password')");
$row = mysql_fetch_array($resultat);
$number = mysql_num_rows($resultat);
if($number == "1")
{
    $_SESSION['logget_ind'] = "1";
    $_SESSION['nick'] = $nick;
    $_SESSION['mail'] = $row['mail'];
}
}

if ($_SESSION['logget_ind'] == "1")
{
    $login = '
<a href="index.php">Vælg model</a> |
<a href="java script:history.go(-1)">Tilbage</a> |
<a href="java script:history.go(+1)">Frem</a> |
<a href="regler.php">Regler</a> |
<a href="sog.php\">Søg</a> |
<a href="stats.php">Statistik</a> |
<a href="brugere.php">Brugere</a> |
<a href="ret_pass.php">Ret password</a> |
<a href="logout.php">Log ud</a> |
';

} else {
    $login = '
<a href="index.php">Vælg model</a> |
<a href="java script:history.go(-1)">Tilbage</a> |
<a href="java script:history.go(+1)">Frem</a> |
<a href="regler.php">Regler</a> |
<a href="opret.php">Opret</a> |
<a href="send_pass.php">Glemt password</a> |
<a href="login.php">Log ind</a> |
';
}
?>

<title>Beta Scooter System</title>
<style type="text/css">
A:link {
  text-decoration : none;
  color : #000000
}
A:visited {
  text-decoration : none;
  color : #000000
}
A:active {
  text-decoration : none;
  color : #000000
}
A:hover {
  text-decoration : underline;
  color : #000000; 
}
.Submitknap {
  background-color : #80BCFF;   
  border : 1px solid #000000;
  font-size: 11px;
}
</style>
<body  bgcolor="#C5C5C5" link="#000000" vlink="#000000" alink="#000000">

<div align="center">
<table bgcolor="#80BCFF" border="0" cellpadding="2" cellspacing="0" style="border-left:1px solid #000000; border-right:1px solid #000000; border-top:1px solid #000000; border-collapse: collapse" bordercolor="#000000" width="744">
  <tr>
    <td width="100%">
    <font face="Verdana" style="font-size: 11px;">
    <? echo $login; ?>
    </font>
  </td>
  </tr>
</table>
</div>
Avatar billede Slettet bruger
29. juni 2003 - 18:49 #11
Det her skulle gøre det:
<?php
setcookie("nick", "", time()-31536000);
setcookie("password", "", time()-31536000);
session_start();
session_destroy();
$_LOGOUT = true;
require_once("topbar.php);
//BLA BLA
?>
-----------------------
topbar.php

<?php
include("config.php");
session_start();

$nick = $_COOKIE['nick'];
$password = $_COOKIE['password'];

if (isset($nick) && isset($password)&&$_LOGOUT!==true) {
$resultat = mysql_query("SELECT id, mail FROM brugere WHERE nick = '$nick' AND password=MD5('$password')");
$row = mysql_fetch_array($resultat);
$number = mysql_num_rows($resultat);
if($number == "1")
{
    $_SESSION['logget_ind'] = "1";
    $_SESSION['nick'] = $nick;
    $_SESSION['mail'] = $row['mail'];
}
}
Avatar billede mpj86 Nybegynder
29. juni 2003 - 18:54 #12
Takker
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