ホームページ  >  記事  >  バックエンド開発  >  PHP演習プロジェクトノートのCOOKIES

PHP演習プロジェクトノートのCOOKIES

WBOY
WBOYオリジナル
2016-06-13 12:23:26817ブラウズ

PHP実践プロジェクトメモのCOOKIES

は主にログイン時とログアウト時にCookieを設定します。ログインを保存して安全に終了するには

1: ログイン ページで設定します

//Cookie の値を設定します
_setcookies($_rows['tg_username'], $_rows['tg_uniqid '] ,$_clean['time']);
_location(null,'index.php');

ステップ 2: Cookie を生成します、

<span style="color: #008000;">/*</span><span style="color: #008000;">* * _setcookies * @param unknown $_username * @param unknown $_uniqid </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span> _setcookies(<span style="color: #800080;">$_username</span>,<span style="color: #800080;">$_uniqid</span>,<span style="color: #800080;">$_time</span><span style="color: #000000;">){    </span><span style="color: #008080;">setcookie</span>('username',<span style="color: #800080;">$_username</span><span style="color: #000000;">);    </span><span style="color: #008080;">setcookie</span>('uniqid',<span style="color: #800080;">$_uniqid</span><span style="color: #000000;">);    </span><span style="color: #0000ff;">switch</span> (<span style="color: #800080;">$_time</span><span style="color: #000000;">) {        </span><span style="color: #0000ff;">case</span> '0' : <span style="color: #008000;">//</span><span style="color: #008000;"> 设置浏览器进程</span>            <span style="color: #008080;">setcookie</span> ( 'username', <span style="color: #800080;">$_username</span><span style="color: #000000;"> );            </span><span style="color: #008080;">setcookie</span> ( 'uniqid', <span style="color: #800080;">$_uniqid</span><span style="color: #000000;"> );            </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;        </span><span style="color: #0000ff;">case</span> '1' : <span style="color: #008000;">//</span><span style="color: #008000;"> 一天的进程</span>            <span style="color: #008080;">setcookie</span> ( 'username', <span style="color: #800080;">$_username</span>, <span style="color: #800080;">$_time</span> () + 86400<span style="color: #000000;"> );            </span><span style="color: #008080;">setcookie</span> ( 'uniqid', <span style="color: #800080;">$_uniqid</span>, <span style="color: #800080;">$_time</span> () + 86400<span style="color: #000000;"> );            </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;        </span><span style="color: #0000ff;">case</span> '2' : <span style="color: #008000;">//</span><span style="color: #008000;"> 一周的进程</span>            <span style="color: #008080;">setcookie</span> ( 'username', <span style="color: #800080;">$_username</span>, <span style="color: #800080;">$_time</span> () + 604800<span style="color: #000000;"> );            </span><span style="color: #008080;">setcookie</span> ( 'uniqid', <span style="color: #800080;">$_uniqid</span>, <span style="color: #800080;">$_time</span> () + 604800<span style="color: #000000;"> );            </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;        </span><span style="color: #0000ff;">case</span> '0' : <span style="color: #008000;">//</span><span style="color: #008000;"> 一个月的进程</span>            <span style="color: #008080;">setcookie</span> ( 'username', <span style="color: #800080;">$_username</span>, <span style="color: #800080;">$_time</span> () + 2592000<span style="color: #000000;"> );            </span><span style="color: #008080;">setcookie</span> ( 'uniqid', <span style="color: #800080;">$_uniqid</span>, <span style="color: #800080;">$_time</span> () + 2592000<span style="color: #000000;"> );            </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;    }}</span>

3 番目のステップ: ログイン状態に

<span style="color: #008000;">//</span><span style="color: #008000;">登录的情况,就是防止登陆后通过在浏览器中直接连接再次登录</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> _login_state(){    </span><span style="color: #0000ff;">if</span> (!<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_COOKIE</span>['username'<span style="color: #000000;">])) {        _alert_back(</span>"登录状态无法就行本操作!"<span style="color: #000000;">);    }}</span>
<span style="color: #008000;">//</span><span style="color: #008000;">删除cookies</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> _unsetcookies(){    </span><span style="color: #008080;">setcookie</span>('username','',<span style="color: #008080;">time</span>()-1<span style="color: #000000;">);    </span><span style="color: #008080;">setcookie</span>('uniqid','',<span style="color: #008080;">time</span>()-1<span style="color: #000000;">);    _session_destroy();</span><span style="color: #008000;">//</span><span style="color: #008000;">删除session</span>    _location(<span style="color: #0000ff;">null</span>,'index.php'); <span style="color: #008000;">//</span><span style="color: #008000;">做跳转</span>}

を設定します。4 番目のステップは、

<span style="color: #008000;">//</span><span style="color: #008000;">登录状态</span>    _login_state();
データを表示する 2 つの方法: データ構成ファイルで設定します。私の場合は mysql.func.php

<span style="color: #008000;">/*</span><span style="color: #008000;">* * _fetch_array 只能获取一条数据组 * @param $_sql </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span> _fetch_array(<span style="color: #800080;">$_sql</span><span style="color: #000000;">) {    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">mysql_fetch_array</span>(_query(<span style="color: #800080;">$_sql</span>),<span style="color: #000000;">MYSQL_ASSOC);}</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * _fetch_array_list可以返回指定数据集的所有数据 * @param unknown $_result * @return multitype: </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span> _fetch_array_list(<span style="color: #800080;">$_result</span><span style="color: #000000;">){    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">mysql_fetch_array</span>(<span style="color: #800080;">$_result</span>,<span style="color: #000000;">MYSQL_ASSOC);}</span>
最後にページの中の課題

<span style="color: #008000;">//</span><span style="color: #008000;">从数据库里提取数据获取结果集//我们必须每次重新读取结果集,而不是从新去执行SQL语句。</span><span style="color: #800080;">$_result</span> = _query("SELECT tg_username,tg_sex,tg_face FROM tg_user ORDER BY tg_reg_time DESC"<span style="color: #000000;">);</span><?php <span style="color: #0000ff;">while</span> (!!<span style="color: #800080;">$_rows</span> = _fetch_array_list(<span style="color: #800080;">$_result</span>)) {?>    <<span style="color: #008080;">dl</span>>        <dd <span style="color: #0000ff;">class</span>="user"><?php <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_rows</span>['tg_username']?><?php <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_rows</span>['tg_sex']?></dd>        <dt><img src="<?php echo <span style="color: #800080;">$_rows</span>['tg_face']?>" alt="" /></dt>

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