-1

ここでは、フォームが同じページに送信された後に Cookie を設定する状況があります.....

コードは次のとおりです。

<?php
require_once 'config.php';
$dbHandle = DBHandler::getInstance();
@session_start();
if($_POST['division'])
{
    $fromDiv =$_POST['division'];
    $divId =explode(',',$fromDiv);
    echo $divId[0].'~';
    echo $_COOKIE['preDiv'].'dfg'.'<br/>';
    setcookie("preDiv",$divId[0],time() + (10 * 365 * 24 * 60 * 60));
    $_SESSION['division'] = $divId[0];
}
$sql=$dbHandle->execQuery("SELECT * FROM master_division");
$division_str = '<option value="">--select--</option>';
while($fetch = $dbHandle->fetchObjectQuery($sql))
{
    $division = $fetch->division_id.','.$fetch->name;
    $division_str .= '<option value="'.$division.'">'.$fetch->name.'</option>';
}

echo $_COOKIE['preDiv'].'dfg'.'<br/>';
echo $_SESSION['division'];
?>
<!DOCTYPE html>
<html>
<body class="login" style="overflow: hidden;">

        <div class="login-box" style="position: absolute;z-index: 999;padding: 10px;width: 40%;min-height: 200px;margin-left:-20%;">
            <section class="portlet login-box-top" style="height:100%;">
                <header>
                    <h2 class="ac">CHOOSE DIVISION To MEDISMO CRM LOGIN</h2>
                </header>
                <section style="height:76%;">
                    <div id="popup_box" > <!-- OUR PopupBox DIV-->
                    <div id="group_comp" style="margin-top:15%;margin-left:20%;">
                    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" style="border:none;">
                    <label><b>Choose Division:</b></label>
                    <select id="division" name="division"><?php echo $division_str;?></select>
                    <input type="submit" id="ok" value="OK" />
                    </form>
                    </div>
                </div>
                </section>
            </section>
        </div>
</body>

</html>

誰が私に何が間違っているのか教えてくれます...

4

4 に答える 4

1

無期限の Cookie を設定することはできませんが、..

Cookie の有効期限が切れないようにする場合は、20 年に設定することをお勧めします。

Cookie を現在の HTTP リクエストで (設定後に) 利用できるようにしたい場合は、次のトリックを実行できます。

function cookieSet(array $data){
   foreach($data as $key => $value){

      $_COOKIE[$key] = $value; // <- to make them available on current HTTP request

      setcookie($key, $value, time() + strtotime('+20 years'));
   }
}
于 2013-04-29T12:35:48.760 に答える
0

これによると、ウェブサイトの Cookie には制限があります。
限界に達していないと確信していますか?

于 2013-04-29T12:41:45.090 に答える
0

問題が解決しました

別のページに送信したところ、問題なく表示されるようになりました.......

これが別のページのコードです

<?php
@session_start();
if($_POST['division'])
{
    $fromDiv =$_POST['division'];
    $divId =explode(',',$fromDiv);
    setcookie("preDiv",$divId[0],time()+60*60*24*365);
    $_SESSION['division'] = $divId[0];
}
header("Location: index.php");
?>
于 2013-04-29T12:40:13.117 に答える