フォームの内容をクッキーに保存する
IDをフォームに記入してクッキーに保存し、別ページで使用しようとしています。
フォームに入力してsubmit(onclickでCookieに保存)しようとすると、
1回遅れでCookieに保存されます。
(前々回保存した内容がCookieに保存される)
POSTを変数に入れる順番がおかしいのでしょうか?
ご教示お願い致します。
以下ソースです。
setid.php
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
<!--
// Cookie設定
// Cookie送信function
function setCookie(key,val,url){
tmp = key+"="+escape(val)+";";
tmp += "expires=Fri, 31-Dec-2030 23:59:59;";
if(url){
tmp += "domain="+getDomain(url)+";";
tmp += "path="+getDomainPath(url)+";";
}
document.cookie = tmp;
location.reload(true);
};
// Cookie削除function
function delCookie(key){
expiredate = new Date();
expiredate.setYear(expiredate.getYear()-1);
tmp = key+"=;";
tmp += "expires="+expiredate.toGMTString();
document.cookie = tmp;
};
// Cookie削除(削除ボタン用)
function del_cookie_id(){
delCookie("testid");
location.reload(true);
}
//-->
</script>
</head>
<body>
<center>
<!-- ID入力フォーム -->
<?php
// Cookie読込み-ID
$testid=$_COOKIE["testid"];
?>
<form action="setid.php" method="post">
<input type="text" name="testid" size="20" value="<?php echo $testid; ?>">
<!-- ID保存ボタン -->
<?php
$testid=$_POST["testid"];
?>
<input type="submit" name="set_id" value="IDを保存" onclick="setCookie('testid','<?php echo $testid; ?>');">
<!-- ID削除ボタン -->
<input type="submit" name="del_id" value="IDを削除" onclick="del_cookie_id()">
</form>
<br>
<!-- Cookie表示 -->
<?php
print_r($_COOKIE);
?>
<br>
</body>
</html>
お礼
そうですか。一台の携帯で出来る裏技みたいなのがあるかと思いましたが、やはり分かりませんよね。ハッカーみたいな技を持ってない限り一般人には難しいですね。 なるほど、規約違反とは知りませんでした。反省しております