Solved

Cookie - remember my choise and redirect

Posted on 2003-10-25
5
236 Views
Last Modified: 2010-04-06
Where can I find a cookie script which can remember my choise if a check box is marked. I want the startpage.htm to contain a link to a english.htm and a french.htm page:

link to english.htm :: french.htm
[check box] <- remember my choise of language if this checkbox is marked. At next visit, never show the startpage.htm but redirect me directly to the english or french page dependant on choise the first time, if the check box was marked at the first visit that is...

Please help me out on this one. Is this possible? I'm totally in the dark...
rgds // Magnus Carlsson
0
Comment
Question by:mca0106
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 13

Expert Comment

by:lozloz
ID: 9620628
if you have php installed on the server then you can do it this way:

on your start page:

<script language="JavaScript" type="text/javascript">
<!--
function submitform ( selectedtype )
{
  document.cookieform.language.value = selectedtype;
  document.cookieform.submit();
}>
-->
</script>

you need your form as such:

<form name="cookieform" method="POST" action="process.php">
<input type="checkbox" name="remember" value="1" checked><br />
<input type="hidden" name="language" value="1" checked>
</form>

the links are as below:

<a href="javascript:submitform('english')">English</a> |
<a href="javascript:submitform('french')">French</a>

and on process.php:

<?
if($_POST["remember"]) {
  if($_POST["language"] == "english"){
    $string = "english";
  } else {
    $string = "french";
  }
  if($_COOKIE["lang"]) {
    setcookie ("lang", "",time()-60, "/", "yourdomain.com", 0);
  }
  setcookie ("lang", $string, time()+2592000, "/", "yourdomain.com", 0);
}
if($_POST["language"] == "english"){
  header("Location: english.htm");
  exit;
} else {
  header("Location: english.htm");
  exit;
}
?>

the cookie there lasts for 30 days, that can be changed by altering the time()+2592000 part of the 2nd setcookie line (2592000 seconds after the current time, so a 60 second cookie would be time()+60). i think that all works, ask if theres any problems
0
 
LVL 13

Expert Comment

by:lozloz
ID: 9620633
oh and at the very top of startpage.php, you would need:

<?
if($_COOKIE["lang"] == "english") {
  header("Location: english.htm");
} elseif($_COOKIE["lang"] == "french") {
  header("Location: french.htm");
}
?>
0
 

Author Comment

by:mca0106
ID: 9620694
Sorry forgot... Don't have the possibility of using either perl, php or asp. Is it still possible acheiving this effect with just plain cookie-scripting and maybe some javascript to send on to a regular server?
0
 
LVL 13

Accepted Solution

by:
lozloz earned 195 total points
ID: 9621157
http://tech.irt.org/articles/js025/index.htm is quite comprehensive for learning about javascript cookies and http://javascript.internet.com/cookies/ has a load of premade cookie scripts
0
 
LVL 15

Expert Comment

by:VincentPuglia
ID: 9621181
Hi,

the following is a javascript/html cookie. On the surfer's first visit, s/he will be presented with the form.  Upon either clicking on the links or the radio buttons, the script will automatically write the cookie and redirect the user.  On subsequent visits, the cookie will be read and the user redirected.
 
  All you need to do is:
1) name the file 'index.html'
2) change the cookieName variable to whatever you want;
3) decide if you want to keep the links and/or radio buttons, or use a different input type (buttons, perhaps)   (and no, I do not have the flag gifs)  
4) rewrite the urls so they reflect your web site layout


<html>
<head>
<script language="javascript" type="text/javascript">

var cookieName = "grassBlade";

var index = (document.cookie == document.cookie) ?
        document.cookie.indexOf(cookieName) :  -1;

if (index != -1)
   window.location = readCookie(index);


function putCookie(preference)
{
  url = (parseInt(preference))  ? 'french.html' : 'english.html';
  writeCookie(url)
}

function writeCookie(url)
{
   document.cookie = cookieName + " = " + url + ";  expires=Monday, 04-Apr-2010 05:00:00 GMT";
   window.location = url;
}

function readCookie(ndx)
{
  namestart = (document.cookie.indexOf("=", ndx) + 1);
  nameend = document.cookie.indexOf(";", ndx);
  if (nameend == -1)
     nameend = document.cookie.length;
           
  return(document.cookie.substring(namestart, nameend));
}

//-->
</script>
</head>
<body>
<form name="theForm">
<table border="1">
<tr>
<td rowspan="2">Preference:</td>
<td><a href="#" onclick="putCookie('0');return false"><img src="eFlag.gif"></a></td>
<td><a href="#" onclick="putCookie('1');return false"><img src="fFlag.gif"></a></td>
</tr><tr>
<td>English: <input type="radio" name="language" value="0" onclick="putCookie(this.value)"></td>
<td>Francais: <input type="radio" name="language" value="1" onclick="putCookie(this.value)"></td>
</tr></table>
</form>
</body>
</html>

Vinny
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
XSL Grouping 7 43
CSS (line height?) issue 2 75
Question on web subscription for apps 3 122
Problem to ToolkitScriptManager 2 86
When you work with shopping cart / ecommerce relates web sites, you need to pass the certain form post details to the payment gateway process page with required details for the products items you give to order. Also you may need to track the ordered…
There are two main kinds of selectors in CSS: One is base selector like h1, h2, body, table or any existing HTML tags.  For instance, the following rule sets all paragraphs (<p> elements) to red: (CODE) CSS also allows us to define our own custom …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question