dimazaid
dimazaid

Reputation: 1671

Equivalent of PHP Sessions in JavaScript

I was going to ask about how to implement sessions in JS,I found few functions that can be used like this example I found :

String exforsys = request.getParameter("test"); 
session.setAttribute("test", exforsys);

And then just use session.getAttribute( exforsys);

But no response, I guess it's only used in servlets or something.

Anyway, I decided that maybe someone has an alternative way other than just use sessions, what am trying to do is click on a link in one page and depending on which link was pressed I will load different information.

Since its a onclick function, I'm stuck with JS!

So I need to pass this information to the second page, cookies works well cause it can be handled with both PHP and JS easily but some computers deletes cookies and that wouldn't be nice!

Any suggestions or other ways I can reach what I want but with out using sessions?

Upvotes: 3

Views: 5631

Answers (7)

Starx
Starx

Reputation: 78971

Sessions are server variables. Thus cannot be used by JavaScript.

However, you can retrieve the session variables, through ajax request.

Script (jQuery)

//This portion will be triggered once the DOM is loaded and is ready
$(document).ready(function() {
    $.post("getsession.php",
       { "variable" : "yourneededsessionvariable" }, 
       function(data) {
         //data contains your session data
       }
    );
});

PHP

//getsession.php
<?PHP
session_start();
echo $_SESSION[$_POST['variable']];
?>

Upvotes: 4

CS_2013
CS_2013

Reputation: 1168

Use local storage or client controlled cookies.. Sessions uses server-controlled cookies. Cookies are just small files that resided on the client.

Upvotes: 2

engr.waqas
engr.waqas

Reputation: 384

PHP is a server scipring language while javascript is client end language you cannot literally make sessions in javascript

Upvotes: 1

Alex Wayne
Alex Wayne

Reputation: 186984

Append the data you want the next page to get on the query string.

<a href="foo.html?bar=123">123</a>
<a href="foo.html?bar=456">456</a>

Then on foo.html you can inspect location.href to see what was passed in. THere is no need for cookies here.

Upvotes: 1

Quentin
Quentin

Reputation: 943142

A session generally means "Some data stored on the server and associated with a user via a token stored in a cookie". You can't do that with client side JavaScript (for obvious reasons).

You could store data directly in a cookie.

If you are willing to sacrifice wide browser support, then you can get increased storage by using one of the client side storage mechanisms introduced by HTML 5 and Friends.

maybe someone has an alternative way other than just use sessions,what am trying to do is click on a link in one page,and depending on which link was pressed I will load different information.

Just link to different pages.

some computers deletes cookies and that wouldn't be nice

If they delete all cookies, then a session isn't going to work either.

Upvotes: 1

jerluc
jerluc

Reputation: 4316

Why not just use request parameters? i.e. http://yourserver.com/page.php?link=1

Upvotes: 0

mplungjan
mplungjan

Reputation: 177702

A session handle is stored in a cookie. If cookies are not accepted, the server will add the sessionID to the URL. If you do not have cookies, you cannot persist anything except in the url.

Why does "onclick" stop you from using sessions? You can ajax things to the server and add them to the session onclick

Upvotes: 1

Related Questions