目次
六:php cookie 精选技术文章
七:php cookie 相关视频教程
ホームページ 見出し php クッキー (トピック)

php クッキー (トピック)

Aug 05, 2020 pm 06:02 PM
cookie

このトピックでは、PHP Cookie の由来、PHP Cookie の属性、PHP Cookie 機能の使い方、PHP Cookie の実践的な応用例を画像、テキスト、動画でわかりやすく紹介します。 ! php中国語ウェブサイトから学習する学生を歓迎します!

php クッキー (トピック)

#1: Cookie とは何ですか?

Cookie はユーザーを識別するためによく使用されます。

Cookie は、サーバーがユーザーのコンピュータに残す小さなファイルです。

同じコンピュータがブラウザを通じてページをリクエストするたびに、そのコンピュータから Cookie が送信されます。

PHP を使用すると、Cookie 値を作成および取得できます。

# 関連トピックの推奨事項:
php セッション

2: Cookie の誕生 HTTP プロトコルはステートレスであるため、サーバー側のビジネスはステートフルである必要があります。

Cookie の本来の目的は、サーバー側での使用を容易にするためにステータス情報を Web に保存することでした。

たとえば、ユーザーが初めて Web サイトにアクセスするかどうかを判断します。最新の仕様は RFC 6265 であり、ブラウザ サーバーが連携して実装される仕様です。

3: Cookie の原則

php クッキー (トピック)初めて Web サイトにアクセスする場合, ブラウズ サーバーはリクエストを送信します。サーバーがリクエストに応答すると、応答リクエストに Cookie が追加されます。ブラウザが 2 回目にリクエストを送信すると、Cookie が送信され、サーバーはユーザーを識別します。もちろん、サーバーは Cookie の内容を変更することもできます。

4: Cookie の属性
Cookie は、名前 (Name) で構成される 4KB 以下の小さなテキスト データです。 、値 (Value)、および Cookie の有効性、セキュリティ、および使用範囲を制御するために使用されるその他のいくつかのオプションの属性。

php クッキー (トピック)

#Name は Cookie の名前を表します。 ValueドメインPathExpiresSecureHttpOnly は、クライアント スクリプトが document.cookie 属性を介して Cookie にアクセスするのを防ぐために使用され、Cookie が盗まれたり、クロスによって改ざんされたりするのを防ぎます。 -サイト スクリプティング攻撃。

5: PHP Cookie 関数

1.setcookie - Cookie の送信

setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool
ログイン後にコピー

setcookie() は、残りの HTTP ヘッダーとともにクライアントに送信される Cookie を定義します。

他の HTTP ヘッダーと同様、スクリプトが出力を生成する前に Cookie を送信する必要があります (プロトコルの制限のため)。

出力 ( と またはスペースを含む) を生成する前に、この関数を呼び出してください。

Cookie を設定すると、次回ページを開いたときに $_COOKIE を使用してそれを読み取ることができます。

Cookie 値は $_REQUEST にも存在します。

#パラメータ

は Cookie の値を表します。

Cookie にアクセスできる Web サイトまたはドメインを指定します。 Cookie メカニズムは厳格なオリジン ポリシーに従っていないため、サブドメインが親ドメインの Cookie を設定または取得することを許可します。

は、Cookie にアクセスできる Web サイト上のディレクトリを定義します。

有効期間とは、図の Expires 属性です。通常、ブラウザの Cookie はデフォルトで保存されます。 Closed サーバーがセッションを終了すると、Cookie は削除されます。

Cookie の送信に HTTPS セキュリティ プロトコルを使用するかどうかを指定します。 HTTPS セキュリティ プロトコルを使用すると、ブラウザと Web サーバー間の送信中に Cookie が盗まれたり改ざんされたりするのを防ぐことができます。この方法は、Web サイトの ID 認証にも使用できます。つまり、HTTPS 接続の確立フェーズ中に、ブラウザは Web サイトの SSL 証明書の有効性をチェックします。

パラメータ説明名前クッキー名。 #valueCookie の値。この値はユーザーのコンピュータに保存されます。機密情報は保存しないでください。 expireCookie の有効期限。 #pathdomainsecurehttponly

返回值

如果在调用本函数以前就产生了输出,setcookie() 会调用失败并返回 FALSE。

如果 setcookie() 成功运行,返回 TRUE。

示例

<?php
$value = &#39;something from somewhere&#39;;

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* 1 小时过期  */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>
ログイン後にコピー

2、setrawcookie — 发送未经 URL 编码的 cookie

setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool
ログイン後にコピー

setrawcookie() 和 setcookie() 非常相似,唯一不同之处是发送到浏览器的 cookie 值没有自动经过 URL 编码(urlencode)。

六:PHP Cookie 简单示例

1、基本操作

<?php

//添加Cookie
setcookie(&#39;username&#39;, &#39;phpcn&#39;, time() + 3600);

//获取Cookie
$username = $_COOKIE[&#39;username&#39;];

//删除Cookie
setcookie(&#39;username&#39;, &#39;&#39;, time() - 3600);

//修改Cookie
setcookie(&#39;username&#39;, &#39;phpcn-updated&#39;, time() + 3600);

?>
ログイン後にコピー

2、面向过程封装

<?php

/**
 * 获取 Cookie
 * @param  string $name Cookie 名称
 * @return mixed       Cookie 值
 */
function cookie_get($name)
{
	return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null;
}

/**
 * 删除 Cookie
 * @param  string $name Cookie 名称
 */
function cookie_del($name)
{
	setcookie($name, &#39;&#39;, time() - 3600);
}

/**
 * 设置Cookie
 * @param  string  $name   Cookie 名称
 * @param  mixed  $value  Cookie 值
 * @param  integer $expire Cookie 过期时间
 * @param  string  $path   Cookie 有效路径
 * @param  string  $domian Cookie 有效域名/子域名
 */
function cookie_set($name, $value, $expire = 3600, $path = &#39;/&#39;, $domian = &#39;&#39;)
{
	setcookie($name, $value, time() + $expire);
}

/**
 * 检测 Cookie
 * @param  string  $name      Cookie 名称
 * @param  boolean $has_empty 检测为空
 * @return boolean             
 */
function cookie_has($name)
{
	return isset($_COOKIE[$name]);
}

?>
ログイン後にコピー

3、面向对象封装

<?php


class Cookie
{
    const OPTION_EXPIRE = &#39;expire&#39;;
    const OPTION_PATH = &#39;path&#39;;
    const OPTION_DOMAIN = &#39;domain&#39;;
    const OPTION_SECURE = &#39;secure&#39;;
    const OPTION_HTTPONLY = &#39;httponly&#39;;

    /**
     * Cookie 实例
     * @var null
     */
    private static $instance = null;

    /**
     * Cookie 选项
     * @var array
     */
    private $options = [
        self::OPTION_EXPIRE => 3600,
        self::OPTION_PATH => &#39;/&#39;,
        self::OPTION_DOMAIN => &#39;domain&#39;,
        self::OPTION_SECURE => false,
        self::OPTION_HTTPONLY => false
    ];

    /**
     * Cookie constructor.
     * @param $options
     */
    private function __construct($options)
    {
        $this->setOptions($options);
    }

    /**
     *  privated __clone
     */
    private function __clone()
    {

    }

    /**
     * 获取实例
     * @param $options
     * @return Cookie|null
     */
    public static function getInstance($options)
    {
        if (is_null(self::$instance)) {
            self::$instance = new self($options);
        }

        return self::$instance;
    }

    /**
     * 设置选项
     * @param $name
     * @param $value
     */
    public function setOption($name, $value)
    {
        if (isset($this->options[$name])) {
            $this->options[$name] = $value;
        }

        throw new InvalidArgumentException(&#39;Cookie option not exists:{$name}&#39;);
    }

    /**
     * 设置多个选项
     * @param $options
     */
    public function setOptions($options)
    {
        foreach ($options as $name => $value) {
            $this->setOption($name, $value);
        }
    }

    /**
     * 设置 Cookie
     * @param $name
     * @param $value
     * @param array $options
     */
    public function set($name, $value, $options = [])
    {
        $this->setOptions($options);

        if (is_array($value) || is_object($value)) {
            $value = json_encode($value);
        }

        setcookie(
            $name,
            $value,
            $this->options[self::OPTION_EXPIRE],
            $this->options[self::OPTION_PATH],
            $this->options[self::OPTION_DOMAIN],
            $this->options[self::OPTION_SECURE],
            $this->options[self::OPTION_HTTPONLY]
        );
    }

    /**
     * 获取 Cookie
     * @param $name
     * @return array|mixed
     */
    public function get($name)
    {
        $value = $_COOKIE[$name];

        if (is_array($value)) {
            $arr=[];
            foreach ($value as $k => $v) {
                $arr[$k] = substr($v, 0,1) == &#39;{&#39; ? json_decode($value) : $v;
            }
            return $arr;
        } else {
            return substr($value, 0,1) == &#39;{&#39; ? json_decode($value) : $value;
        }
    }

    /**
     * 删除 Cookie
     * @param $name
     * @param array $options
     */
    public function del($name, $options = [])
    {
        $this->setOptions($options);

        $value = $_COOKIE[$name];

        if ($value) {
            if (is_array($value)) {
                foreach ($value as $k => $v) {
                    setcookie(
                        $name . &#39;[&#39; . $k . &#39;]&#39;,
                        &#39;&#39;,
                        time() - 3600,
                        $this->options[self::OPTION_EXPIRE],
                        $this->options[self::OPTION_PATH],
                        $this->options[self::OPTION_DOMAIN],
                        $this->options[self::OPTION_SECURE],
                        $this->options[self::OPTION_HTTPONLY]
                    );
                    unset($v);
                }
            }else{
                setcookie(
                    $name,
                    &#39;&#39;,
                    time() - 3600,
                    $this->options[self::OPTION_EXPIRE],
                    $this->options[self::OPTION_PATH],
                    $this->options[self::OPTION_DOMAIN],
                    $this->options[self::OPTION_SECURE],
                    $this->options[self::OPTION_HTTPONLY]
                );
                unset($value);
            }
        }
    }
}
ログイン後にコピー

4、记住登录账号示例

<?php

function cookie_get_username()
{
    return isset($_COOKIE[&#39;username&#39;]) ? $_COOKIE[&#39;username&#39;] : null;
}

function cookie_get_password()
{
    return isset($_COOKIE[&#39;username&#39;]) ? $_COOKIE[&#39;username&#39;] : null;
}

function cookie_get_remember()
{
    return isset($_COOKIE[&#39;remember&#39;]) ? &#39;checked&#39; : null;
}


if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {

    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];

    if (isset($_POST[&#39;remember&#39;]) && $_POST[&#39;remember&#39;] === &#39;1&#39;) {
        setcookie(&#39;username&#39;, $username, time() + 3600);
        setcookie(&#39;password&#39;, $password, time() + 3600);
        setcookie(&#39;remember&#39;, &#39;1&#39;, time() + 3600);
    } else {
        setcookie(&#39;username&#39;, &#39;&#39;, time() - 3600);
        setcookie(&#39;password&#39;, &#39;&#39;, time() - 3600);
        setcookie(&#39;remember&#39;, &#39;&#39;, time() - 3600);
    }

    die(&#39;登录成功!&#39;);
}

?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<form action="" method="post">
    <table width="300" border="1" align="center" cellpadding="5" cellspacing="5">
        <thead>
        <tr>
            <td colspan="2" align="center"><b>登录</b></td>
        </tr>
        </thead>
        <tr align="center">
            <td>用 户 名</td>
            <td><input type="text" name="username" value="<?=cookie_get_username()?>"></td>
        </tr>
        <tr align="center">
            <td>密码</td>
            <td><input type="password" name="password" value="<?=cookie_get_password()?>"></td>
        </tr>
        <tr align="center">
            <td>记住账号</td>
            <td>
                <input type="checkbox" name="remember" value="1" <?=cookie_get_remember()?>>
            </td>
        </tr>
        <tr align="center">
            <td colspan="2"><input type="submit" name="Submit" value="提交" /></td>
        </tr>
    </table>
</form>
ログイン後にコピー

1 .PHP7中创建COOKIE和销毁COOKIE的方法

2. 如何设置cookie和删除cookie

3. PHP 中 Session 和 Cookie 区别?

4. PHP 怎么带着 Cookie 跳转?

5. 注意!Laravel删除Cookie的小坑

6. PHP会话控制:cookie和session区别与用法深入理解

7. PHP之你不得不知道的COOKIE含义及使用方式

8. 怎样关闭阻止第三方cookie

9. JS读取PHP中设置的中文cookie时出现乱码怎么办

10. ThinkPHP6.0:Session和Cookie机制的变化

1. PHP中cookie怎么记录及删除变量?(图文+视频)

2. PHP cookie实现记录用户登陆信息的方法(图文+视频)

3. PHP cookie实现判断用户是否登录的方法(图文+视频)

4. PHP基于Cookie的购物车模块设计

5. 预定义变量(二):$_COOKIE浏览器上的小甜点

これは Unix タイムスタンプで、Unix エポックからの秒数です。

言い換えると、基本的には time() 関数の結果に有効期限を設定する秒数を加えたものを使用できます。

Cookie 有効なサーバーのパス。 「/」に設定すると、Cookie はドメイン名ドメイン全体に対して有効になります。

「/foo/」に設定すると、Cookie はドメイン内の /foo/ ディレクトリとそのサブディレクトリに対してのみ有効になります。

デフォルト値は、Cookie が設定されているときの現在のディレクトリです。

Cookie の有効なドメイン/サブドメイン名。 これをサブドメイン名として設定すると、Cookie がこのサブドメイン名とその第 3 レベルのドメイン名に対して有効になります。

Cookie をドメイン名全体に対して有効にするには、Cookie をドメイン名に設定するだけです。

この Cookie が安全な HTTPS 接続を通じてのみクライアントに渡されるかどうかを設定します。 TRUE に設定すると、安全な接続が存在する場合にのみ Cookie が設定されます。

この要件がサーバー側で処理される場合、プログラマは安全な接続を介してそのような Cookie を送信するだけで済みます。

TRUE に設定すると、Cookie には HTTP プロトコル経由でのみアクセスできます。 これは、JavaScript などのスクリプト言語を介して Cookie にアクセスできないことを意味します。

XSS 攻撃中の個人情報の盗難を効果的に減らすには、この設定を使用することをお勧めしますが、この記述はしばしば物議を醸します。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google ChromeでRoblox 403 Forbiddenエラーを修正する方法 Google ChromeでRoblox 403 Forbiddenエラーを修正する方法 May 19, 2023 pm 01:49 PM

最近、多くの Windows ユーザーが、Google Chrome ブラウザで Web サイトの URL にアクセスしようとしているときに、Roblox403 Forbidden Error と呼ばれる異常なエラーに遭遇しました。 Chrome アプリを何度再起動しても、何もできませんでした。このエラーにはいくつかの潜在的な原因が考えられますが、そのうちのいくつかを以下に概説し、リストします。 Chrome の閲覧履歴やその他のキャッシュ、および破損したデータ 不安定なインターネット接続 間違った Web サイトの URL サードパーティのソースからインストールされた拡張機能 上記のすべての側面を考慮した結果、ユーザーがこの問題を解決できるようにいくつかの修正を考え出しました。同じ問題が発生した場合は、この記事の解決策を確認してください。修正1

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピュータ上の Cookie は、使用するブラウザとオペレーティング システムに応じて、ブラウザ上の特定の場所に保存されます。 1. Google Chrome、C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies に保存されます。等

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie は通常、ブラウザの Cookie フォルダに保存されます。ブラウザの Cookie ファイルは通常、バイナリ形式または SQLite 形式で保存されます。Cookie ファイルを直接開くと、文字化けしたり判読できないコンテンツが表示される可能性があるため、使用することをお勧めします。 Cookie を表示および管理するためにブラウザによって提供される Cookie 管理インターフェイス。

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

携帯電話上の Cookie は、モバイル デバイスのブラウザ アプリケーションに保存されます: 1. iOS デバイスでは、Cookie は Safari ブラウザの [設定] -> Safari -> [詳細] -> [Web サイト データ] に保存されます; 2. Android デバイスでは、Cookie は保存されますChromeブラウザの設定→サイト設定→Cookieなど

クッキーの仕組み クッキーの仕組み Sep 20, 2023 pm 05:57 PM

Cookie の動作原理には、サーバーが Cookie を送信し、ブラウザが Cookie を保存し、ブラウザが Cookie を処理して保存することが含まれます。詳細な紹介: 1. サーバーは Cookie を送信し、サーバーは Cookie を含む HTTP 応答ヘッダーをブラウザーに送信します。この Cookie には、ユーザーの本人認証、設定、ショッピング カートの内容などの情報が含まれており、ブラウザがこの Cookie を受信すると、ユーザーのコンピュータに保存されます。2. ブラウザは Cookie などを保存します。

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

Cookie 漏洩の危険性は何ですか? Cookie 漏洩の危険性は何ですか? Sep 20, 2023 pm 05:53 PM

Cookie 漏洩の危険には、個人識別情報の盗難、個人のオンライン行動の追跡、アカウントの盗難などが含まれます。詳細な導入: 1. 名前、電子メール アドレス、電話番号などの個人識別情報が盗まれます。この情報は、犯罪者によって個人情報の盗難、詐欺、その他の違法行為を実行するために使用される可能性があります。2. 個人のオンライン行動が追跡され、 Cookie を介して分析される アカウント内のデータを使用して、犯罪者はユーザーの閲覧履歴、ショッピングの好み、趣味などを知ることができます; 3. ログイン認証をバイパスし、ユーザーのアカウントに直接アクセスするなどして、アカウントが盗まれます。

Cookie をクリアすると何か影響がありますか? Cookie をクリアすると何か影響がありますか? Sep 20, 2023 pm 06:01 PM

Cookie をクリアすると、パーソナライズ設定と環境設定のリセット、広告エクスペリエンスへの影響、ログイン ステータスとパスワードの記憶機能の破壊などの影響が生じます。詳細な紹介: 1. 個人設定と環境設定をリセットします。Cookie をクリアすると、ショッピング カートが空にリセットされ、商品を再度追加する必要があります。Cookie をクリアすると、ソーシャル メディア プラットフォームでのログイン ステータスも失われるため、再追加. ユーザー名とパスワードを入力してください; 2. 広告エクスペリエンスに影響します. Cookie をクリアすると、Web サイトは私たちの興味や好みを理解できなくなり、無関係な広告などが表示されます。