View sourcecode

The following files exists in this folder. Click to view.

m03u02.2.php

92 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
// Definiera en mailadress
$mailadress = "johan@minmail.se";
// Skapa en cookie med namnet 'email' och lagra mailadressen i den
setcookie('email', $mailadress,time()-20);
// Kontrollera om cookien är satt och skriv ut dess värde
if(isset($_COOKIE['email'])) {
    echo 
"Din e-postadress är: " . $_COOKIE['email'];
} else {
    echo 
"Cookien är inte satt ännu.";
}
?>

<?php
// Starta sessionen
session_start();

// Hantera olika actions via GET-parametrar
if(isset($_GET['action'])){
  switch(
$_GET['action']){
    case 
'killSession':                   // Döda sessionen
      
session_unset();
      
session_destroy();
      
header("location: ?");
      break;
    case 
'killCookie':                    // Ta bort cookie
      
setcookie('mail',"", time()-3600);
      
header("location: ?");
      break;
    case 
'reset':                         // Döda sessionen & ta bort cookie
      
session_unset();
      
session_destroy();
      
setcookie('mail',"", time()-3600);
      
header("location: ?");
      break;
  }
}

// Om POST-data finns, spara e-post i session och cookie
if(isset($_POST['mail'])){
  
$mail = strtolower(trim($_POST['mail']));
  
setcookie('mail', $mail);
  
$_SESSION['mail'] = $mail;
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
  <meta charset="UTF-8">
  <title>Exempel på session & cookie</title>
</head>
<body>
  <form action="" method="post">
    <p>Ange en mailadress:<br />
    <input type="email" name="mail" required> <input type="submit"></p>
  </form>
  <hr>
  <?php
  
// Kontrollera om sessionen är satt och skriv ut mailadressen
  
if(isset($_SESSION['mail'])){
    echo 
"<p>Mailadressen som är lagrad i session är: ". $_SESSION['mail'];
    echo 
"<br />[<a href='?action=killSession'>döda sessionen</a>]</p>";
  } else {
    echo 
"<p>Det finns ingen mail lagrad i SESSION.</p>";
  }

  
// Kontrollera om cookien är satt och skriv ut mailadressen
  
if(isset($_COOKIE['mail'])){
    echo 
"<p>Mailadressen som är lagrad i COOKIE är: ".$_COOKIE['mail'];
    echo 
"<br />[<a href='?action=killCookie'>döda cookien</a>]</p>";
  } else {
    echo 
"<p>Det finns ingen mail lagrad i COOKIE.</p>";
  }
  
?>
  
  <form action="" method="get">
    <button type="button" onClick="window.location.reload();">reload</button>
    <input type="submit" name="action" value="reset">
  </form>

  <p>När du skriver en mailadress så uppdateras den både i SESSION och COOKIE. Problemet är att cookien inte kan hämtas omedelbart eftersom den måste sparas på klienten först. Klicka på <q>reload</q> för att uppdatera sidan och se värdet på cookien.</p>

  <hr>
  <section style="border:1px dashed black;background:lightgrey;width:800px;">
    <h3>Alla definierade variabler på sidan</h3>
    <div>
      <pre><?php print_r(get_defined_vars()); ?></pre>
    </div>
  </section>
</body>
</html>