Avatar billede Slettet bruger
01. februar 2011 - 17:42 Der er 5 kommentarer og
1 løsning

Kan man lave/skifte session med et link.

Når en bruger logger ind på side kommer der en session der hedder:

$_SESSION['change'] = 'on';


Jeg ville gerne lave et link som hedder: "Skift til off".
Når man så trykker på den blive session:

$_SESSION['change'] = 'off';


Er det muligt?
Avatar billede webweaver Praktikant
01. februar 2011 - 17:52 #1
Ja.

Den helt simple måde;

<?php

echo '<a href="www.mitsite.dk/fil.php?pos=off">Skift til off</a>';

if ($_GET["pos"] == "off") {

$_SESSION["change"] = "off";

}

?>
Avatar billede Fnugus Nybegynder
01. februar 2011 - 18:05 #2
Det skal ordnes med AJAX, er jeg rimelig sikker på. AJAX er Asynchronous Javascript And XML. Lær mere på www.w3schools.com/ajax.
Men ja, AJAX, hvis jeg har forstået det korrekt at du vil ændre $_SESSION['change'] uden at reloade siden. Dog vil ændringen først være tilgængelig ved næste sideload alligevel, med mindre du laver flere AJAX kald.

Indsæt flg. afsnit mellem <head> og </head> i din html kode.
-------------------
<script type="text/javascript">
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
</script>
--------------------

Og skriv dit link til at være:

<a onClick="xmlhttp.open('GET','unset_session.php',true); xmlhttp.send();">Ødelæg Session</a>

Og sørg for at lave en .php fil med indholdet

<? $_SESSION['changes'] = "off"; ?>
Avatar billede majbom Novice
01. februar 2011 - 18:16 #3
-> det behøves jo ikke laves med AJAX, hvis siden gerne må reloades er der ingen grund til det...
Avatar billede Slettet bruger
01. februar 2011 - 20:14 #4
Tror jeg bruger det første så jeg holder mig til php..
tak for svaret.

:)
Avatar billede Slettet bruger
01. februar 2011 - 20:39 #5
Lavede det sådan:

På min side har jeg linket:
if ($_SESSION['change'] == "off") {
echo "<a href='change.php?pos=on'><font color='lightgreen'>Tryk for ON</font></a>";
}
if ($_SESSION['change'] == "on") {
echo "<a href='change.php?pos=off'><font color='red'>Tryk for OFF</font></a>";
}


Så har jeg siden change.php, som sender en tilbage:
<?
session_start();
if ($_GET["pos"] == "off") {
$_SESSION["change"] = "off";
}

if ($_GET["pos"] == "on") {
$_SESSION["change"] = "on";
}

header("Location: $_SERVER[HTTP_REFERER]");

?>
Avatar billede webweaver Praktikant
01. februar 2011 - 20:45 #6
Så er det jo klaret :-)
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