0

我的问题是,在用户同意条款和条件页面后,如何设置 cookie?我要添加这段代码

<?php //Calculate 30 days in the future    
//seconds * minutes * hours * days + current time    
$inOneMonth = 60 * 60 * 24 * 30 + time(); 
setcookie('lastVisit', date("G:i - m/d/y"), $inOneMonth); 
?>

对于下面的代码,但根据我放置它的位置,我要么破坏 javascript,要么在页面刷新时设置 cookie(即使条款和条件尚未达成一致)。

<?php
// Get the user's ultimate destination
$dest = $_GET['dest'];
// Show the terms and conditions page
//check for cookie
if(isset($_COOKIE['lastVisit']))
    $visit = $_COOKIE['lastVisit']; /* Add redirect later   document.location.href='http://<?php echo $dest; ?>';   add redirect code later*/
else
    echo "No cookies present-remove this msg later";
?>

<HTML>
  <HEAD>
    <TITLE>User Agreement</TITLE>
    <script language="javascript">

function valbutton(thisform) {
// validate myradiobuttons
  myOption = -1;
  for (i=thisform.myradiobutton.length-1; i > -1; i--) {
    if (thisform.myradiobutton[i].checked) {
      myOption = i;
    }
  }
  if (myOption == -1) {
   alert("You must choose either YES or NO");
   return false;
  }
  if (myOption == 0) {
   alert("You must agree to the Terms and Conditions to download");
   return false;
  }
  thisform.submit(); // this line submits the form after validation
}
</script>

  </HEAD>
  <BODY>
    <H1> Terms and Conditions </H1>
    <P>Before downloading you must agree to be bound by masking tape</P>
<form name="myform" action="http://<?php echo $dest; ?>"> 
<input type="radio" value="1st value" name="myradiobutton" />NO<br />
<input type="radio" value="2nd value" name="myradiobutton" />YES<br />
<input type="submit" name="submitit" onclick="valbutton(myform);return false;" value="ANSWER" />
</form>

  </BODY>
</HTML>

我确信这是一个简单的问题,但我真的不知道我在做什么。非常感谢任何提示。

4

2 回答 2

1

and one more thing... look at your setcookie call:

setcookie('lastVisit', date("G:i - m/d/y"), $inOneMonth); 

if think the right way is

setcookie('lastVisit', date("G:i - m/d/y", $inOneMonth)); 
于 2011-04-05T06:23:03.367 回答
0

A better approach to do this would be to evaluate/validate the input also on the server side. Normally you NEED to do this anyways because of security reasons, Javascript validation is only for user friendliness, not for security! In your case there is no real user input and therefore no direct threat.

Validate the input as you usually do with PHP by accessing the $_POST array and validating different form fields as required. When the whole chain of validations is successful, set the cookie!

于 2011-04-05T06:20:04.497 回答