Avatar billede mrmox2 Nybegynder
18. november 2014 - 17:15 Der er 1 kommentar og
1 løsning

tjek på aktiv session inden skrivning til databasen

Hejsa
nedenfor har jeg kopieret koden i vote.php
Jeg starter mine filer med at tjekke at sessionsvariabel er aktiv (den bliver destroyed når man logger ud)

Men jeg har det problem at hvis jeg er logget ind på to faner og logger ud på den ene og derefter stemmer på den anden så når den at skrive til databasen inden den går til index.php (hvor den ender fordi den EFTER at den har skrevet finder ud af at sessionsvariabel ikke er aktiv). Jeg skal jo have den til at finde ud af sessionen er lukket før jeg åbner til databasen og skriver i den.

Er der noget helt oplagt jeg har rodet rundt med i koden her eller skal jeg bare finde en anden måde at håndtere det login på?


----------------

<?php
session_start();
//check om session er aktiv, ellers nyt login
if (!isset($_SESSION['myplacename'])) {
header("location:index.php");
}
//Version 1.0 nov 2014 TR
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DA">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
    <meta http-equiv="refresh" content="900">
    <title>Registrering enkeltpersoner</title>
        <link href="css/indhold.css" rel="stylesheet" type="text/css">
  </head>
<body>


<?php
// execute if form submitted
if($_POST[v1824] || $_POST[v2529] || $_POST[vother]){
 
ob_start();

include 'includes/connect.php';
// Check connection
if ($link->connect_error) {
    die("Connection failed: " . $link->connect_error);
    }

// Define variables
$v1824='0';
$v2529='0';
$vother='0';
$vdate = date("Y-m-d");
$vtime = date("H:i:s");

if($_POST[v1824]) {
$v1824='1';
}
if($_POST[v2529]) {
$v2529='1';
}
if($_POST[vother]) {
$vother='1';
}

// Register session variables
$_SESSION['myv1824'] = $v1824;
$_SESSION['myv2529'] = $v2529;
$_SESSION['myvother'] = $vother;

// write sql
mysqli_query($link, "INSERT INTO tablename (A1824, A2529, AOther, Date, Time , Place)
VALUES ('$v1824', '$v2529', '$vother', '$vdate', '$vtime', '".$_SESSION['myplacename']."')");

// clean up
$link->close();
ob_end_flush();
header("location:vthx.php");
}
?>

<div align="center"><br>
      <span class="overskrift">Registrering af aldersfordeling<br><?php echo $_SESSION['myplacename'] ?></span>
     
      <hr size="2" width="300px"><br>
      <form action="" method="post"><input type="submit" name="v1824" class="mybutton" value="18 - 24 &aring;r">
      </form>
      <br>
      <form action="" method="post"><input type="submit" name="v2529" class="mybutton" value="25 - 29 &aring;r">
      </form>
      <br>
      <form action="" method="post"><input type="submit" name="vother" class="mybutton" value="Andet / ikke oplyst">
      </form>
      <br>
<table border="0" cellpadding="2" cellspacing="2" width="300">
<tbody>
<tr>
<td align="left" valign="top" width="150"><span class="indhold"><a href="index.php">Log ud</a></span><br>
</td>
<td align="right" valign="top" width="150"><span class="indhold"><a href="form.php">Indtastningsside</a></span><br>
</td>
</tr>
</tbody>
</table>
<hr size="2" width="300px"><?php include 'includes/footer.php'; ?>
</div>
</body>
</html>
Avatar billede moddi100 Seniormester
18. november 2014 - 18:43 #1
Avatar billede mrmox2 Nybegynder
18. november 2014 - 19:50 #2
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

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