Php cookie读/写序列

时间:2011-07-18 22:18:15

标签: php select cookies submit

我通过改变页面界面语言的下拉列表向自己提交了一个php。 在这样做时,我正在更新存储 HTML正文TAG方向的cookie:rtl OR ltr

因此,当 HTML SELECT 标记通过 FORM onChage()func调用将其值提交给JavaScript时,Javascript会重新加载 PHP 页面,在 php 页面的头部,有一个 INCLUDE 用于翻译PHP页面,当页面被重写时, BODY TAG的方向将根据语言进行更新。

嗯,这实际上只是在第二次语言改变时才读取cookie BODY TAG DIR ,因此,身体方向并不总是正确的。

<?php
header('Content-Type: text/html; charset=UTF-8');
include '../dbc.php';
mysql_query("SET NAMES 'UTF8'");
include './includes/getranslation.php';
?>
<html>
<head>
<SCRIPT language=JavaScript>
function reload(form) {
var val=form.langselector.options[form.langselector.options.selectedIndex].value;
SetCookie( 'lang', '' + val);
self.location='login.php';
}
</SCRIPT>

</head>
<body dir='<?php echo $_COOKIE['langdir']; ?>'>
    <table width="100%" border="0" cellspacing="0" cellpadding="2" class="main">
        <tr> <?php if ($_COOKIE["langdir"] == 'ltr') {
            $ddlangalignleftTD = 'right';
            $ddlandalignrightTD = 'left';
            } else {
            $ddlangalignleftTD = 'left';
            $ddlandalignrightTD = 'right';
            }
            ?>
            <td width="50%" align="<?php echo $ddlangalignleftTD; ?>" valign="center">
                <?php echo $headingNamesArr['select_lang']; ?>:
            </td>
            <td width="50%" align="<?php echo $ddlandalignrightTD; ?>" valign="center">
                <form method="post" name="langselectorfrm" action="login.php">
                    <select name="langselector" onchange="reload(this.form)">
                        <?php echo '<option value= ''</option>';
                        ?>
                    </select> 
                </form>

我想知道为什么它不会在第二次提交之后阅读更新的COOKIE?

希望你明白......

1 个答案:

答案 0 :(得分:0)

只有在第二次加载页面时才能看到cookie。因为在第一次加载时,cookie 不存在