Avatar billede proff Nybegynder
23. august 2004 - 16:30 Der er 9 kommentarer og
1 løsning

Jeg taber min session

Hej, igår virkede det fint. Men idag da jeg fik fri og kom hjem har jeg skiftet ip og nu virker det ikke mere (Dog kan jeg ikke se hvad det skal have med det at gøre) Mit problem er at jeg logger ind, den laver min session. Og så viderstiller den til en anden side, når dne viderstiller mister jeg min session.

Jeg har tjekket om den ved hvad session er når jeg er logget ind, det gør den. Men den ved det ikke når jeg viderstiller..

Mit login er:

<?
if(isset($_POST[email])) {
  include "sql.php"; //Connection til databasen

  $md5kode = md5($kodeord);

  $tjekhent = mysql_query("SELECT id,email,krypkodeord FROM users WHERE email='$email'") or die(mysql_error());
  $row = mysql_fetch_array($tjekhent);
  $num = mysql_num_rows($tjekhent);

  if($md5kode == $row[krypkodeord] AND $email == $row[email]) {
  $email = $row[email];
  session_register(email);
  print "Logger ind...";
  print "<script>window.top.location=\"../index.php?side=menu\";</script>";
  exit;
  }
  else {
  print "<ul><li>Forkert email eller kodeord!</li></ul></font>";
  }
}
?>



Og siden den viderstiller til er: (Bemærk SESSION START ER SAT I TOPPEN!)


<?
session_start();
?>
<?
if($side == "index") {

print "

<html>
<head>
<title>blabla</title>
<script type=\"text/javascript\" src=\"Javascript.js\"></script>
<LINK href=\"style.css\" rel=stylesheet>

</head>
<body style=\"margin: 0px;\" background=\"gfx/bg.gif\">

<table width=\"750\" height=\"100%\" border=\"0\" align=\"left\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
  <td width=\"750\" height=\"109\" background=\"gfx/top.jpg\"></td>
  <td width=\"5\" height=\"100%\" background=\"gfx/side.gif\" rowspan=\"7\"></td>
</tr>
<tr>
  <td width=\"750\" height=\"27\" background=\"gfx/menu.gif\"><a href=\"default.php\" onClick=\"return clickreturnvalue()\" onMouseover=\"dropdownmenu(this, event, menu1, '150px')\" onMouseout=\"delayhidemenu()\"><span id=\"glowtext\"><font face=\"Verdana\" size=\"1\"><b>&nbsp;Forside</a>&nbsp;&nbsp;&nbsp;<a href=\"pages/login.php\" target=\"main\"><font face=\"Verdana\" size=\"1\">Login</font></a>&nbsp;&nbsp;&nbsp;<a href=\"pages/opret.php\" target=\"main\"><font face=\"Verdana\" size=\"1\">Opret hold</font></a></font></b></span></td>
</tr>
<tr>
  <td width=\"750\" background=\"gfx/midt.gif\"><iframe name=\"main\" src=\"pages/nyheder.php\" width=\"748\" height=\"100%\" scrolling=\"Yes\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" ></iframe></td>
</tr>
<tr>
  <td width=\"750\" height=\"13\" background=\"gfx/bund.gif\"></td>
</tr>
</table>

</body>
</html>
";
}


if($side == "menu") {
include "sql.php"; //Connection til databasen
$pics = array(
  "top.jpg",
  "top1.png",
  "top2.png"
);

$url = $pics[rand(0,count($pics)-1)];   

if(!isset($_SESSION["email"])) {
die("Du skal være logget ind for at se denne side!");
}

$hentklub = mysql_query("SELECT klub FROM users WHERE email='$email'") or die(mysql_error());
$row_hentklub = mysql_fetch_array($hentklub);

print "

<html>
<head>
<title>blabla</title>
<script type=\"text/javascript\" src=\"Javascript.js\"></script>
<LINK href=\"style.css\" rel=stylesheet>

</head>
<body style=\"margin: 0px;\" background=\"gfx/bg.gif\">

<table width=\"750\" height=\"100%\" border=\"0\" align=\"left\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
  <td width=\"750\" height=\"109\" background=\"gfx/$url\"></td>
  <td width=\"5\" height=\"100%\" background=\"gfx/side.gif\" rowspan=\"7\"></td>
</tr>
<tr>
  <td width=\"750\" height=\"27\" background=\"gfx/menu.gif\"><a href=\"default.php\" onClick=\"return clickreturnvalue()\" onMouseover=\"dropdownmenu(this, event, menu2, '150px')\" onMouseout=\"delayhidemenu()\"><span id=\"glowtext\"><font face=\"Verdana\" size=\"1\"><b>&nbsp;Klub</a>&nbsp;&nbsp;&nbsp;<a href=\"default.php\" onClick=\"return clickreturnvalue()\" onMouseover=\"dropdownmenu(this, event, menu3, '150px')\" onMouseout=\"delayhidemenu()\"><font face=\"Verdana\" size=\"1\">Status</font></a>&nbsp;&nbsp;&nbsp;<a href=\"default.php\" onClick=\"return clickreturnvalue()\" onMouseover=\"dropdownmenu(this, event, menu4, '150px')\" onMouseout=\"delayhidemenu()\"><font face=\"Verdana\" size=\"1\">Transfers</font></a></span></td>
</tr>
<tr>
  <td width=\"750\" background=\"gfx/midt.gif\"><iframe name=\"main\" src=\"pages/main.php\" width=\"748\" height=\"100%\" scrolling=\"Yes\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" ></iframe></td>
</tr>
<tr>
  <td width=\"750\" height=\"13\" background=\"gfx/bund.gif\"></td>
</tr>
</table>

</body>
</html>
";
}


if($side == "logud") {

session_unset();
session_destroy();
header ("Location: index.php?side=index");
}
?>
Avatar billede proff Nybegynder
23. august 2004 - 16:31 #1
Under index.php?side=menu (Som den viderstiller til) Får jeg hele tiden fejl ved: if(!isset($_SESSION["email"])) {
die("Du skal være logget ind for at se denne side!");
}
Avatar billede detox Nybegynder
23. august 2004 - 16:41 #2
Men du mangler: session_start(); i login filen?
Avatar billede proff Nybegynder
23. august 2004 - 16:47 #3
Nej, den ligger i toppen :) Den har jeg bare ikke lige postet.. Som sagt, login.php virker og den registerer min session. Problemet er når jeg viderstiller.
Avatar billede detox Nybegynder
23. august 2004 - 17:12 #4
session_register(email);
skal nok være:
  session_register($email);
eller:
  $_SESSION['email'] = $email;
Avatar billede detox Nybegynder
23. august 2004 - 17:18 #5
Ellers må du teste med:

  $_SESSION['email'] = $email;
  echo $_SESSION['email'];
  exit;
Avatar billede proff Nybegynder
23. august 2004 - 17:41 #6
Synes jeg har prøvet alt nu. Dog virker det stadig ikke, den kan ikke finde nogle sessions når jeg har viderstillet... Kan det skyldes at jeg har skiftet ip i dag?
Avatar billede detox Nybegynder
23. august 2004 - 17:46 #7
Nej, det skulle ikke have noget at sige. Eksemperne virker godt nok her, uanset jeg bruger:
session_register(email);
session_register($email);
session_register("email");
$_SESSION['email'] = $email;
Har du prøvet at teste som jeg foreslog: 17:18:29?
Avatar billede proff Nybegynder
23. august 2004 - 18:55 #8
Det reagere den heller ikke på :(
Avatar billede detox Nybegynder
23. august 2004 - 21:12 #9
Ja, det giver jo kun mening, hvis både $kodeord og $email == "". Kan der være ændret indstilling på serveren, så den kører med register_globals = Off?
Prøv konsekvent at benytte dig af $_POST variabler når du henter postede variabler. Fx:
<?
if(isset($_POST[email])) {
  include "sql.php"; //Connection til databasen
  $email = $_POST['email'];
  $kodeord = $_POST['kodeord'];
Avatar billede proff Nybegynder
08. april 2007 - 13:38 #10
Lukning forsinket en årrække .-)
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