当前位置: 首页>>代码示例>>PHP>>正文


PHP P2Util::unsetCookie方法代码示例

本文整理汇总了PHP中P2Util::unsetCookie方法的典型用法代码示例。如果您正苦于以下问题:PHP P2Util::unsetCookie方法的具体用法?PHP P2Util::unsetCookie怎么用?PHP P2Util::unsetCookie使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在P2Util的用法示例。


在下文中一共展示了P2Util::unsetCookie方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: unSession

 /**
  * $_SESSIONでセッションを破棄する
  *
  * セッションがない、もしくは正しくない場合などに
  * http://jp.php.net/manual/ja/function.session-destroy.php
  *
  * @return void
  */
 public static function unSession()
 {
     global $_conf;
     // セッションの初期化
     // session_name("something")を使用している場合は特にこれを忘れないように!
     if (!self::$_session_started) {
         session_start();
     }
     // セッション変数を全て解除する
     $_SESSION = array();
     // セッションを切断するにはセッションクッキーも削除する。
     $session_name = session_name();
     if (isset($_COOKIE[$session_name])) {
         //setcookie($session_name, '', time() - 42000);
         P2Util::unsetCookie($session_name);
         unset($_COOKIE[$session_name]);
     }
     // 最終的に、セッションを破壊する
     if (isset($_conf['session_dir'])) {
         $session_file = $_conf['session_dir'] . '/sess_' . session_id();
     } else {
         $session_file = session_save_path() . '/sess_' . session_id();
     }
     session_destroy();
     if (file_exists($session_file)) {
         unlink($session_file);
     }
 }
开发者ID:unpush,项目名称:p2-php,代码行数:36,代码来源:Session.php

示例2: setCookieCid

 /**
  * CIDをcookieにセットする
  *
  * @access  protected
  * @return  boolean
  */
 function setCookieCid($user_u, $pass_x, $ignore_cip = null)
 {
     global $_conf;
     $time = time() + 60 * 60 * 24 * $_conf['cid_expire_day'];
     if (!is_null($ignore_cip)) {
         if ($ignore_cip) {
             P2Util::setCookie('ignore_cip', '1', $time);
             $_COOKIE['ignore_cip'] = '1';
         } else {
             P2Util::unsetCookie('ignore_cip');
             // 念のためドメイン指定なしも
             setcookie('ignore_cip', '', time() - 3600);
         }
     }
     if ($cid = $this->makeCid($user_u, $pass_x)) {
         return P2Util::setCookie('cid', $cid, $time);
     }
     return false;
 }
开发者ID:poppen,项目名称:p2,代码行数:25,代码来源:Login.php

示例3: unsetCookie

 /**
  * クッキーを消去する。変数 $_COOKIE も。
  *
  * @access  public
  * @param   string  $key  key, k1[k2]
  * @return  boolean
  */
 function unsetCookie($key, $path = '', $domain = null)
 {
     if (is_null($domain)) {
         $domain = P2Util::getCookieDomain();
     }
     // 配列をsetcookie()する時は、キー文字列をPHPの配列の場合のように、'' や "" でクォートしない。
     // それらはキー文字列として認識されてしまう。['hoge']ではなく、[hoge]と指定する。
     // setcookie()で、一時キーは[]で囲まないようにする。(無効な処理となる。) k1[k2] という表記で指定する。
     // setcookie()では配列をまとめて削除することはできない。
     // k1 の指定で k1[k2] は消えないので、このメソッドで対応している。
     // $keyが配列として指定されていたなら
     $cakey = null;
     // $_COOKIE用のキー
     if (preg_match('/\\]$/', $key)) {
         // 最初のキーを[]で囲む
         $cakey = preg_replace('/^([^\\[]+)/', '[$1]', $key);
         // []のキーを''で囲む
         $cakey = preg_replace('/\\[([^\\[\\]]+)\\]/', "['\$1']", $cakey);
         //var_dump($cakey);
     }
     // 対象Cookie値が配列であれば再帰処理を行う
     $cArray = null;
     if ($cakey) {
         eval("isset(\$_COOKIE{$cakey}) && is_array(\$_COOKIE{$cakey}) and \$cArray = \$_COOKIE{$cakey};");
     } else {
         if (isset($_COOKIE[$key]) && is_array($_COOKIE[$key])) {
             $cArray = $_COOKIE[$key];
         }
     }
     if (is_array($cArray)) {
         foreach ($cArray as $k => $v) {
             $keyr = "{$key}[{$k}]";
             if (!P2Util::unsetCookie($keyr, $path, $domain)) {
                 return false;
             }
         }
     }
     if (is_array($cArray) or setcookie("{$key}", '', time() - 3600, $path, $domain)) {
         if ($cakey) {
             eval("unset(\$_COOKIE{$cakey});");
         } else {
             unset($_COOKIE[$key]);
         }
         return true;
     }
     return false;
 }
开发者ID:poppen,项目名称:p2,代码行数:54,代码来源:P2Util.php

示例4: _postIt

/**
 * レスを書き込む or 新規スレッドを立てる
 * スレ立ての場合は、$key は空 '' でよい
 *
 * @return  boolean|string  書き込み成功なら true、失敗なら false または失敗理由文字列
 */
function _postIt($host, $bbs, $key, $post, $bbs_cgi)
{
    global $_conf, $popup, $rescount, $ttitle_en, $STYLE, $post_cache;
    list($request, $send_host, $send_port) = _buildRequestForPost($host, $bbs, $key, $post, $bbs_cgi);
    $maru_kakiko = empty($_POST['maru_kakiko']) ? 0 : 1;
    P2Util::setConfUser('maru_kakiko', $maru_kakiko);
    // 書き込みを一時的に保存
    $failed_post_file = P2Util::getFailedPostFilePath($host, $bbs, $key);
    $cont = serialize($post_cache);
    if (!DataPhp::writeDataPhp($failed_post_file, $cont, $_conf['res_write_perm'])) {
        p2die('ファイルの書き込みエラー');
    }
    // p2 sambaのチェック
    if ($p2SambaErrorMsgHtml = _getP2SambaErrorMsgHtml($host, $bbs)) {
        _showPostMsg(false, $p2SambaErrorMsgHtml, false);
        return false;
    }
    // WEBサーバへ接続
    $fp = fsockopen($send_host, $send_port, $errno, $errstr, $_conf['fsockopen_time_limit']);
    if (!$fp) {
        _showPostMsg(false, "サーバ接続エラー: {$errstr} ({$errno})<br>p2 Error: 板サーバへの接続に失敗しました", false);
        return false;
    }
    // HTTPリクエスト送信
    fwrite($fp, $request, strlen($request));
    $post_seikou = false;
    $p2cookies = _readCookieFile(_cachePathForCookieByHost($host));
    // header
    while (!feof($fp)) {
        $l = fgets($fp, 8192);
        // クッキーキタ
        if (preg_match("/Set-Cookie: (.+?)\r\n/", $l, $matches)) {
            $cgroups = explode(";", $matches[1]);
            if ($cgroups) {
                foreach ($cgroups as $v) {
                    if (preg_match("/(.+)=(.*)/", $v, $m)) {
                        $k = ltrim($m[1]);
                        if ($k != 'path') {
                            $p2cookies[$k] = $m[2];
                        }
                    }
                }
            }
            // 転送は書き込み成功と判断
        } elseif (preg_match("/^Location: /", $l, $matches)) {
            $post_seikou = true;
        }
        if ($l == "\r\n") {
            break;
        }
    }
    // クッキーをファイルに保存する
    _saveCookieFile($p2cookies, _cachePathForCookieByHost($host));
    // body
    $response = '';
    while (!feof($fp)) {
        $response .= fread($fp, 164000);
    }
    fclose($fp);
    // be.2ch.net or JBBSしたらば 文字コード変換 EUC→SJIS
    if (P2Util::isHostBe2chNet($host) || P2Util::isHostJbbsShitaraba($host)) {
        $response = mb_convert_encoding($response, 'SJIS-win', 'eucJP-win');
        //<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
        $response = preg_replace("{(<head>.*<META http-equiv=\"Content-Type\" content=\"text/html; charset=)EUC-JP(\">.*</head>)}is", "\$1Shift_JIS\$2", $response);
    }
    $kakikonda_match = "/<title>.*(書きこみました|■ 書き込みました ■|書き込み終了 - SubAll BBS).*<\\/title>/is";
    $cookie_kakunin_match = "/<!-- 2ch_X:cookie -->|<title>■ 書き込み確認 ■<\\/title>|>書き込み確認。</";
    if (eregi("(<.+>)", $response, $matches)) {
        $response = $matches[1];
    }
    // カキコミ成功
    if (preg_match($kakikonda_match, $response, $matches) or $post_seikou) {
        // クッキーの書き込み自動保存を消去する
        if (isset($_COOKIE['post_msg'])) {
            P2Util::unsetCookie('post_msg');
            // ドメイン指定なしも入れておこ
            setcookie('post_msg', '', time() - 3600);
        }
        $reload = empty($_POST['from_read_new']);
        _showPostMsg(true, '書きこみが終わりました。', $reload);
        // 投稿失敗記録があれば削除する
        if (file_exists($failed_post_file)) {
            unlink($failed_post_file);
        }
        return true;
        //$response_ht = htmlspecialchars($response, ENT_QUOTES);
        //echo "<pre>{$response_ht}</pre>";
        // ■cookie確認表示(post再チャレンジしてね)
    } elseif (preg_match($cookie_kakunin_match, $response, $matches)) {
        $htm['more_hidden_post'] = '';
        // p2用の追加キー
        $more_hidden_keys = array('newthread', 'submit_beres', 'from_read_new', 'maru_kakiko', 'csrfid', 'k', UA::getQueryKey());
        foreach ($more_hidden_keys as $hk) {
            if (isset($_POST[$hk])) {
//.........这里部分代码省略.........
开发者ID:poppen,项目名称:p2,代码行数:101,代码来源:post.php

示例5: unSession

 /**
  * $_SESSIONでセッションを破棄する
  *
  * セッションがない、もしくは正しくない場合などに
  * http://jp.php.net/manual/ja/function.session-destroy.php
  *
  * @static
  * @access  public
  * @return  void
  */
 function unSession()
 {
     global $_conf;
     // セッションの初期化
     // session_name("something")を使用している場合は特にこれを忘れないように!
     !session_id() and session_start();
     // セッション変数を全て解除する
     $_SESSION = array();
     // セッションを切断するにはセッションクッキーも削除する。
     $session_name = session_name();
     if (isset($_COOKIE[$session_name])) {
         //setcookie($session_name, '', time() - 42000);
         P2Util::unsetCookie($session_name);
         unset($_COOKIE[$session_name]);
     }
     // 最終的に、セッションを破壊する
     $session_file = null;
     if ('files' == ini_get('session.save_handler')) {
         if (isset($_conf['session_dir'])) {
             $session_file = $_conf['session_dir'] . '/sess_' . session_id();
         } else {
             $session_file = session_save_path() . '/sess_' . session_id();
         }
     }
     session_destroy();
     $session_file and file_exists($session_file) and unlink($session_file);
 }
开发者ID:poppen,项目名称:p2,代码行数:37,代码来源:Session.php


注:本文中的P2Util::unsetCookie方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。