Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

bug fix by sunner at hit

  • Loading branch information...
commit 162bbb06efd7b4079ea2d57c14663f9cac6f0bfd 1 parent 9acb281
lonecatz authored
View
9 lang/zh_cn_utf8/docs/coding.html
@@ -176,9 +176,9 @@
<li class="spaced">不要使用<code>optional_variable()</code>函数。使用<code>optional_param()</code>函数来替代。根据数据类型选择正确的PARAM_XXXX值。使用<code>set_default()</code>函数检查和设置变量的可选值。</li>
<li class="spaced">不要使用<code>require_variable()</code>函数。使用<code>required_param()</code>来替代。根据数据类型选择正确的PARAM_XXXX值。</li>
<li class="spaced">不要使用<code>$_GET</code>、<code>$_POST</code>或<code>$_REQUEST</code>。根据您的需要使用更合适的<code>required_param()</code>或<code>optional_param()</code></li>
- <li class="spaced">检查一个动作时,不要使用像<code>if (isset($_GET['something']))</code>这样的代码。可以使用诸如:<code>$something = optional_param( 'something','',PARAM_ALPHA )</code>,并且用<code>empty()</code>函数测试</li>
+ <li class="spaced">检查一个动作时,不要使用像<code>if (isset($_GET['something']))</code>这样的代码。可以使用诸如:<code>$something = optional_param( 'something','',PARAM_ALPHA )</code>,并且用<code>empty()</code>函数或(如果'empty'也是一个合法值)<code>isset_param()</code>函数测试</li>
<li class="spaced">在任何可能的情况下,把您所有的<code>required_param()</code>、<code>optional_param()</code>和其它的变量初始化一起放在每个文件的开头,这样它们会更容易被找到。</li>
- <li class="spaced">使用“sesskey”机制保护表单处理函数不被攻击。当生成表单的时候,要包含<code>&lt;input type="hidden" name="sesskey" value="&lt;?php echo sesskey(); ?&gt" /&gt;</code>。使用表单时用<code>if (!confirm_sesskey()) {error('Bad Session Key');}</code>检查。</li>
+ <li class="spaced">使用“sesskey”机制保护表单处理函数不被攻击。简单示例:当生成表单的时候,要包含<code>&lt;input type="hidden" name="sesskey" value="&lt;?php echo sesskey(); ?&gt" /&gt;</code>。使用表单时用<code>if (!confirm_sesskey()) {error('Bad Session Key');}</code>检查。</li>
<li class="spaced">所有文件名必须用<code>clean_filename()</code>函数“过滤”,但如果已经适当地使用<code>required_param()</code>或<code>optional_param()做了此项工作,则不必如此</code>
</li>
<li class="spaced">再把任何从数据库读出的数据写回之前,必须先用<code>addslashes()</code>处理。一个完整数据对象可以用<code>addslashes_object()</code>一次性完全处理完毕。</li>
@@ -186,9 +186,10 @@
<li class="spaced">如果能避免的话,不要使用来自<code>$_SERVER</code>的数据。它会给移植性带来问题</li>
<li class="spaced">在其它地方没有做的情况下,确保所有写入数据库的数据已经被<code>clean_param</code> 函数处理,并且针对数据类型,使用了恰当的PARAM_XXXX。</li>
<li class="spaced">如果您编写了自定义的SQL代码,请确保它是正确的。尤其小心在数值周围不要丢失引号,这可能会带来SQL“注入”漏洞。</li>
- <li class="spaced">在<strong>每一</strong>页检查所有的数据(尤其是写到数据库的数据)。不要期盼或依赖其它地方已经检查了。</li>
+ <li class="spaced"><strong>每个</strong>文件内都要检查它使用的所有数据(尤其是写到数据库的数据)的合法性。不要期盼或依赖其它地方已经检查了。</li>
+ <li class="spaced">被其它文件包含的代码块应当有确切定义的PHP结构(例如类的声明、函数定义等)——直接执行的代码块建议使用变量时不要初始化。</li>
</ol>
<p align="CENTER"><font size="1"><a href="." target="_top">Moodle文档</a></font></p>
<p align="center"><font size="1">Version: $Id$</font></p>
</body>
-</html>
+</html>
View
1  lang/zh_cn_utf8/docs/features.html
@@ -110,7 +110,6 @@ <h3 >测验模块</h3>
<li>题目和答案可以乱序(随机)显示,减少作弊</li>
<li>题目可以包含HTML和图片</li>
<li>题目可以从外部文本文件倒入</li>
- <li>Quizzes can be attempted multiple times, if desired</li>
<li>如果愿意,可以分多次完成试答,每次的结果被自动累积。</li>
<li>选择题支持一个或多个答案</li>
<li>填空题(词或短语)</li>
Please sign in to comment.
Something went wrong with that request. Please try again.