Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Nachrichtensystem (2)

PHP-Nachrichtensystem (2)

WBOY
Freigeben: 2016-08-08 09:27:53
Original
1520 Leute haben es durchsucht

1. Nach der Bestimmung des Gesamtrahmens unter Bezugnahme auf das Vorherige (Zusammenfassung des MVC-Rahmens) lauten die Standardparameter der Anfrage:

<span>//</span><span>默认请求首页:
    </span><span>//</span><span>P=front
    </span><span>//</span><span>C=fIndex
    </span><span>//</span><span>A=show</span>
Nach dem Login kopieren

1.1 Suchen Sie die Aktion unter dem Controller fIndexController:

<span>//</span><span>首页展示动作</span>
        <span>public</span><span> function showAction()
        {
            </span><span>//</span><span>防止恶意调用</span>
            $<span>this</span>-><span>checkAuthority();
            </span><span>//</span><span>不需要具体模型,直接载入模版</span>
            require CUR_VIE_PATH.<span>'</span><span>index.html</span><span>'</span><span>;
        }</span>
Nach dem Login kopieren

2. Die Verhinderung böswilliger Anrufe wird in fast allen Modellen verwendet und ist daher im Basismodell enthalten

<span>/*</span><span>
     * 防止恶意调用方法,适用于全部方法
     </span><span>*/</span>
    <span>protected</span><span> function checkAuthority()
    {
        </span><span>if</span>(!defined(<span>'</span><span>IN_NG</span><span>'</span><span>))
        {
            exit(</span><span>"</span><span>you no authority</span><span>"</span><span>);
        }
    }</span>
Nach dem Login kopieren
Rufen Sie diese Methode jederzeit auf

3. Lehnen Sie die niedrigere Version von PHP ab, da sie immer ausgeführt wird, und fügen Sie sie direkt in die ursprüngliche Datei Framework.class.php ein.

4.1 Machen Sie CSS zu einer Include-Datei

Jede Seite muss CSS importieren, was wirklich mühsam ist. Definieren wir eine Datei title.inc.html.

Aber jede Seite hat ein anderes CSS, sodass Sie eine Konstante definieren können, um diese Seite zu beweisen.

define('SCRIPT','index');

<title>Your Title</title>
    <?<span>php
        require </span><span>'</span><span>application/view/front/title.inc.html</span><span>'</span>
    ?>
</head>
Nach dem Login kopieren

wobei title.inc.html-Code

<link rel=<span>"</span><span>shortcut icon</span><span>"</span> href=<span>"</span><span>favicon.ico</span><span>"</span> />
<link rel=<span>"</span><span>stylesheet</span><span>"</span> type=<span>"</span><span>text/css</span><span>"</span> href=<span>"</span><span>public/front/css/1/basic.css</span><span>"</span> />
<link rel=<span>"</span><span>stylesheet</span><span>"</span> type=<span>"</span><span>text/css</span><span>"</span> href=<span>"</span><span>public/front/css/1/<?php echo SCRIPT?>.css<span>"</span> />
Nach dem Login kopieren
5.2 Registrierungsseite register.html erstellen

<span>参数请求为:
    请求注册页
        P</span>=<span>front
        C</span>=<span>fRegister
        A</span>=show
Nach dem Login kopieren
Der Code lautet:

<div id=<span>"</span><span>register</span><span>"</span>>
        <h2>会员注册</h2>
        <form method=<span>"</span><span>post</span><span>"</span> action=<span>"</span><span>post.php</span><span>"</span>>
            <dl>
                <dt>请认真填写一下内容</dt>
                <dd><span>
                    用 户 名:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>username</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位)
                </span></dd>
                <dd><span>
                    密 码:</span><input type=<span>"</span><span>password</span><span>"</span> name=<span>"</span><span>password</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少六位)
                </span></dd>
                <dd><span>
                    确认密码:</span><input type=<span>"</span><span>password</span><span>"</span> name=<span>"</span><span>notpassword</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,同上)
                </span></dd>
                <dd><span>
                    密码提示:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>passt</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位)
                </span></dd>
                <dd><span>
                    密码回答:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>passd</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位)
                </span></dd>
                <dd><span>
                    性 别:</span><input type=<span>"</span><span>radio</span><span>"</span> name=<span>"</span><span>sex</span><span>"</span> value=<span>"</span><span>男</span><span>"</span> <span>checked</span>=<span>"</span><span>checked</span><span>"</span> /><span>男
                    </span><input type=<span>"</span><span>radio</span><span>"</span> name=<span>"</span><span>sex</span><span>"</span> value=<span>"</span><span>女</span><span>"</span> /><span>女
                </span></dd>
                <dd <span>class</span>=<span>"</span><span>face</span><span>"</span>>
                    <img src=<span>"</span><span>public/front/face/m01.gif</span><span>"</span> alt=<span>"</span><span>头像选择</span><span>"</span><span>
                        onclick</span>=<span>"</span><span>javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')</span><span>"</span> />
                </dd>
                <dd><span>
                    电子邮件:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>email</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />
                </dd>
                <dd><span>
                    Q Q :</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>qq</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />
                </dd>
                <dd><span>
                    主页地址:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>url</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> value=<span>"</span><span>http://</span><span>"</span> />
                </dd>
                <dd><span>
                    验 证 码:</span><input type=<span>"</span><span>text</span><span>"</span> name=<span>"</span><span>yzm</span><span>"</span> <span>class</span>=<span>"</span><span>text yzm</span><span>"</span> />
                </dd>
                <dd>
                    <input type=<span>"</span><span>submit</span><span>"</span> <span>class</span>=<span>"</span><span>submit</span><span>"</span> value=<span>"</span><span>注册</span><span>"</span> />
                </dd>
            </dl>
        </form>
    </div>
Nach dem Login kopieren

5.3 Klicken Sie auf den Avatar, um das Avatar-Auswahlfeld aufzurufen:

<img src=<span>"</span><span>public/front/face/m01.gif</span><span>"</span> alt=<span>"</span><span>头像选择</span><span>"</span><span>
                        onclick</span>=<span>"</span><span>javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')</span><span>"</span> />
Nach dem Login kopieren

Diese Seite speichert 64 Avatar-Seiten, die über eine Array-Schleife aufgelistet werden können

<?php <span>foreach</span> (range(<span>1</span>,<span>9</span>) <span>as</span> $number) {?>
<dd><img src=<span>"</span><span>face/m0<?php echo $number?>.gif<span>"</span> /></dd>
<?php }?>
Nach dem Login kopieren
6. Daten übermitteln

Um Daten an diese Seite zu übermitteln, muss ein Name-Wert-Paar erstellt werden, um festzustellen, ob die Daten übermittelt wurden.

?action=<span>register
也可以设计一个隐藏字段来做名值对
</span><<span>input
type</span>=<span>"</span><span>hidden</span><span>"</span><span>
name</span>=<span>"</span><span>action</span><span>"</span><span>
value</span>=<span>"</span><span>register</span><span>"</span>
/>
Nach dem Login kopieren
6.1 Überprüfen Sie den Bestätigungscode

Der Zweck des Bestätigungscodes besteht darin, böswillige Registrierungen und einige standortübergreifende Angriffe mit Formularfälschung zu verhindern.
Der Bestätigungscode wird in der Sitzung gespeichert, anhand derer festgestellt werden kann, ob das aktuelle Formular gesendet wird. Nach einer einmaligen Aktualisierung ändert sich der Bestätigungscode mit
, wodurch auch mehrfache böswillige Registrierungen verhindert werden können.

<span>if</span> (!($_POST[<span>'</span><span>yzm</span><span>'</span>] == $_SESSION[<span>'</span><span>code</span><span>'</span><span>])) {
_alert_back(</span><span>'</span><span>验证码有误,请重新输入!</span><span>'</span><span>);
}</span>
Nach dem Login kopieren
6.2. Daten akzeptieren

<span>设计变量,将数据提交出来赋值给变量
$_username
</span>=<span>
$_POST[</span><span>'</span><span>username</span><span>'</span><span>];
也可以通过一个数组来存放提交过来的值
$_clean
</span>=<span>
array();
$_clean[</span><span>'</span><span>username</span><span>'</span><span>]
</span>=<span>
$_POST[</span><span>'</span><span>username</span><span>'</span>]
Nach dem Login kopieren
6.3 Verschiedene Einschränkungen und Filterung

<span>1.首先,必须去掉两边的空格
$_string </span>= trim($_string);
Nach dem Login kopieren

<span>2.其次长度限制
</span><span>if</span> (mb_strlen($_string,<span>'</span><span>utf-8</span><span>'</span>) < $_min_num || mb_strlen($_string,<span>'</span><span>utf-8</span><span>'</span>) > $_max_num)
Nach dem Login kopieren

<span>3.敏感字符限制
$_char_pattern </span>= <span>'</span><span>/[<>\'\"\ \ ]/</span><span>'</span><span>;
</span><span>if</span> (preg_match($_char_pattern,$_string)) {}
Nach dem Login kopieren

<span>4.敏感用户名限制
$_mg[</span><span>0</span>] = <span>'</span><span>22</span><span>'</span><span>;
$_mg[</span><span>1</span>] = <span>'</span><span>11</span><span>'</span><span>;
$_mg[</span><span>2</span>] = <span>'</span><span>33</span><span>'</span><span>;
</span><span>foreach</span> ($_mg <span>as</span><span> $value) {
$_mg_string .</span>= <span>'</span><span>[</span><span>'</span>.$value.<span>'</span><span>]</span><span>'</span>.<span>'</span><span>\n</span><span>'</span><span>;
}
</span><span>if</span><span> (in_array($_string,$_mg)) {
_alert_back($_mg_string.</span><span>'</span><span>以上敏感用户名不得注册!</span><span>'</span><span>);
}</span>
Nach dem Login kopieren

<span>5.转义输入,有效防止SQL 注入问题
</span><span>//</span><span>mysql_escape_string();
</span><span>//</span><span>addslashes()</span>
<span>return</span> mysql_real_escape_string($_string); <span>//</span><span>这个mysql_是需要连接数据库的</span>
Nach dem Login kopieren
Das Obige stellt das PHP-Nachrichtensystem (2) vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage