【问题标题】:Php cookie read/write sequencephp cookie 读/写序列
【发布时间】:2011-10-08 01:56:24
【问题描述】:

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

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

嗯,这实际上只是在第二次更改语言时才读取 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?

希望你能理解......

【问题讨论】:

    标签: php select cookies submit


    【解决方案1】:

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

    【讨论】:

    • 怎么回事?与 cookie 相关的页面加载顺序是什么?在页面开始加载之前有没有办法让cookie?毕竟,它是一个写入硬盘的文件......谢谢。
    • Neal,IC 你的信用很高,所以我会问:我在这里发布了另一个问题(仍在寻找这个网站的支持......),我不断收到这个消息:你的问题“Ubuntu通过 ubuntu PC 的服务器静态路由”已迁移到超级用户。那是什么意思???如果可以的话,还有另一个问题:我每一个问题都会得到一个分数吗?回答?什么?这里的系统是什么... 在注册之前,我发现这个网站是最有用的答案之一。现在我已经注册了,很难得到答案...:-) JadeYe
    • @Jadeye -- 你可以在meta.stackoverflow.com上提问和查看这些类型的问题
    猜你喜欢
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2011-10-02
    • 1970-01-01
    • 2011-06-25
    • 2018-11-11
    • 2010-10-13
    相关资源
    最近更新 更多