Added new files from HEAD
[moodle.git] / lang / zh_cn / docs / coding.html
blob6154432a91e2ead0234e2c4c729794bea1b5dba7
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <title>Moodle°ïÖúÎĵµ: ³ÌÐò±àд׼Ôò</title>
6 <link rel="stylesheet" href="docstyles.css" type="TEXT/CSS" />
7 <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
8 </head>
9 <body bgcolor="#FFFFFF">
10 <h1>Moodle³ÌÐò±àд׼Ôò</h1>
11 <p class="normaltext">ÈκκÏ×÷µÄÏîÄ¿¶¼ÐèÒªÒ»ÖÂÐÔºÍÎȶ¨ÐÔ²ÅÄܱ£³ÖËüµÄǿ׳¡£</p>
12 <p class="normaltext">±àдÕâЩ׼ÔòµÄÄ¿µÄÊÇΪËùÓеÄMoodle´úÂëÌṩһ¸öŬÁ¦µÄÄ¿±ê¡£ÓÐһЩ±È½ÏÀϵÄÒѾ­´æÔڵĴúÂëÔÚ¼«Éٵķ½ÃæÉÐδ´ï±ê£¬µ«ËüÃÇ×îÖÕ½«»á±»ÐÞÕý¡£ËùÓÐеĴúÂ붼±ØÐ뾡¿ÉÄܵØ×ñÊØÕâЩ׼Ôò¡£</p>
13 <h2>Ò»°ã¹æ¶¨</h2>
14 <ol class="normaltext">
15 <li class="spaced">ËùÓдúÂëÎļþÓ¦µ±Ê¹Óà .php ×÷ΪÀ©Õ¹Ãû¡£</li>
16 <li class="spaced">ËùÓÐÄ£°åÎļþÓ¦µ±Ê¹Óà .html ×÷ΪÀ©Õ¹Ãû¡£</li>
17 <li class="spaced">ËùÓÐÎı¾ÎļþÓ¦µ±Ê¹ÓÃUnix·ç¸ñµÄÎı¾¸ñʽ(¶àÊýµÄÎı¾±à¼­Æ÷¶¼ÓÐÕâ¸öÑ¡Ïî)¡£</li>
18 <li class="spaced">ËùÓÐphp±ê¼Ç¶¼±ØÐëÊÇ¡°ÍêÕû¡±±ê¼Ç£¬Æ©Èç<font color="#339900">&lt;?php ?&gt;</font> ... ¶ø²»ÊÇÈç<font color="#339900">&lt;? ?&gt;</font>µÄ¡°¶Ì¡±±ê¼Ç¡£
19 </li>
20 <li class="spaced">ËùÓÐÒѾ­´æÔڵİæȨÉùÃ÷Ó¦µ±±»±£Áô¡£Èç¹ûÓбØÒª£¬Äú¿ÉÒÔ¼ÓÈë×Ô¼ºµÄ¡£</li>
21 <li class="spaced">ÿ¸öÎļþ¶¼Ó¦µ±°üº¬Ö÷config.phpÎļþ¡£</li>
22 <li class="spaced">ÿ¸öÎļþ¶¼Ó¦µ±¼ì²éÓû§µÄÉí·ÝÊÇ·ñÕýÈ·£¬¿ÉÒÔʹÓú¯Êýrequire_login()ºÍisadmin()¡¢isteacher()¡¢iscreator()»òÕßisstudent()¡£</li>
23 <li class="spaced">ËùÓзÃÎÊÊý¾Ý¿âµÄ²Ù×÷¶¼Ó¦µ±Ê¹ÓÃlib/datalib.phpÖеĺ¯Êý¨D¨DÕâÑù¿ÉÒÔ¼æÈݸü¶àµÄÊý¾Ý¿â·þÎñÆ÷¡£ËùÓеÄÊÂÇ鶼Ӧµ±ÊÇ¿ÉÒÔÓÃÕâЩº¯ÊýÀ´Íê³ÉµÄ£¬Èç¹ûÓöµ½±ØÐëҪдSQL´úÂëµÄÇé¿ö£¬Çë¼ÇסÕâЩ´úÂëÓ¦µ±ÊÇ¿çƽ̨µÄ£¬ÇÒ½ö½ö¶ÔÄú´úÂëÖеÄÌض¨º¯Êý(ͨ³£ÔÚÒ»¸ölib.phpÎļþÖÐ)ÓÐЧ£¬ÇÒ´úÂëÖÐÓÃ×¢ÊͽøÐÐÃ÷ȷ˵Ã÷¡£</li>
24 <li class="spaced">²»Òª½¨Á¢ºÍʹÓñê׼ȫ¾Ö±äÁ¿$CFG¡¢$SESSION¡¢$THEMEºÍ$USERÖ®ÍâµÄÈ«¾Ö±äÁ¿¡£</li>
25 <li class="spaced">ËùÓбäÁ¿¶¼Ó¦µ±±»³õʼ»¯»òÕßÖÁÉÙÔÚʹÓÃÇ°ÓÃisset()»òempty()µÈº¯Êý½øÐмì²â¡£</li>
26 <li class="spaced">ËùÓÐ×Ö·û´®¶¼Ó¦µ±¿É·­Òë¨D¨DÔÚ"lang/en"Ŀ¼Öд´½¨ÐµÄÎı¾Îļþ£¬×Ö·û´®Ó¦µ±Ê¹Óüò½àµÄÓ¢ÎÄСдÃû³Æ£¬²¢Í¨¹ýº¯Êýget_string()»òprint_string()À´È¡µÃ¡£</li>
27 <li class="spaced">ËùÓаïÖúÎļþÓ¦µ±¿É·­Òë¨D¨DÔÚ"en/help"Ŀ¼Öд´½¨Îı¾Îļþ²¢ÇÒͨ¹ýhelpbutton()º¯ÊýÀ´µ÷ÓÃËüÃÇ¡£
28 <p>Èç¹ûÐèÒªÉÏ´«Ò»¸ö°ïÖúÎļþ£º</p>
29 <ul>
30 <li>¶ÔÓÚСµÄÐ޸ģ¬¾ÉµÄ·­ÒëÎļþÈÔÈ»¿ÉÒÔ¼ÌÐøʹÓÃʱ£¬¿ÉÒÔÖ±½Ó½øÐÐÐ޸ģ¬µ«ÄúÓ¦µ±Í¨Öªtranslation@moodle.org</li>
31 <li>¶ÔÓÚ´óµÄÐ޸ģ¬Ó¦µ±´´½¨ÐµÄÎļþ£¬ÐÂÎļþµÄÎļþÃûÊÇÔÚÔ­ÎļþÃûµÄĩβÌí¼ÓÒ»¸öÊý×Ö£¬²¢ÔÚÒÔºóÖð½¥Ôö¼Ó(Èçfilename2.html)£¬ÕâÑù·­ÒëÈËÔ±¾Í¿ÉÒÔ·½±ãµØÖªµÀÎļþÓÐÁËÒ»¸öеİ汾¡£ºÜÏÔÈ»£¬ÐµĴúÂëºÍ°ïÖúË÷ÒýÎļþ¶¼±ØÐëÐÞ¸ÄÒÔÖ¸Ïòа汾µÄÎļþ¡£</li>
32 </ul>
33 </li>
34 <li class="spaced">´Óä¯ÀÀÆ÷·¢À´µÄÐÅÏ¢(ÒÔGET»òPOSTÐÎʽ·¢ËÍ)¶¼Ó¦ÓÃÁËmagic_quotes(ÎÞÂÛPHPµÄÉèÖÃÈçºÎ)£¬Òò´ËÖ±½Ó½«ËüÃDzåÈëµ½Êý¾Ý¿âÖÐÊÇ°²È«µÄ¡£ËùÓÐÆäËüµÄԭʼÊý¾Ý(À´×ÔÎļþ»òÊý¾Ý¿âµÄ)¶¼±ØÐëÔÚ²åÈëÊý¾Ý¿âǰʹÓÃ<font color="#339900">addslashes()</font>½øÐÐÔ¤´¦Àí¡£</li>
35 <li class="spaced">ÖØÒªµÄ£ºMoodleÖÐËùÓеÄÎı¾£¬ÌرðÊÇÓû§ÌṩµÄÎı¾£¬¶¼±ØÐëʹÓÃformat_text()º¯ÊýÀ´Êä³ö¡£ÕâÑù¾Í¿ÉÒÔÈ·±£Îı¾ÒѾ­ÕýÈ·µØ¹ýÂË¡£</li>
36 </ol>
37 <p> </p>
38 <h2>±àÂë·ç¸ñ</h2>
39 <p class="normaltext">ÎÒÖªµÀ£¬Èç¹ûÄúÒѾ­Ï°¹ßÁËÒ»ÖÖ±àÂë·ç¸ñ¶øÎÒÈ´ÈÃÄú¸Ä±äËüÊÇÓÐÒ»µãÌÖÑáµÄ£¬µ«±È½Ï¶øÑÔ£¬Õâ±ÈÈÕºóËùÓÐÈ˶¼ÐèҪȥ¸ãÇå»ìºÏ·ç¸ñµÄMoodle´úÂëÒªºÃһЩ¡£¶ÔÓÚÈËÃÇʹÓõÄÈκαàÂë·ç¸ñ¶¼ÓкܶàÖ§³ÖºÍ·´¶ÔµÄÒâ¼û£¬µ«ÏÖÔÚÕýÔÚʹÓõķç¸ñ<strong>ÒѾ­´æÔÚ</strong>ÁË£¬Òò´ËÇë¼á³ÖÏÂÈ¥¡£</p>
40 <ol class="normaltext">
41 <li class="spaced"><strong>Ëõ½ø</strong>Ó¦µ±ÊÇ4¸öÁ¬ÐøµÄ¿Õ¸ñ¡£¾ø¶Ô²»ÒªÊ¹ÓÃÖƱí·û¡£</li>
42 <li class="spaced"><strong>±äÁ¿Ãû</strong>Ó¦µ±ÊÇÈÝÒ×Àí½â¡¢Óк¬ÒåµÄСдӢÎĵ¥´Ê¡£Èç¹ûȷʵÐèÒªÁ½¸ö»òÒÔÉϵĵ¥´Ê£¬Çë°ÑËüÃÇÁ¬ÔÚÒ»Æ𣬵«Òª±£³ÖÃû³Æ¾¡¿ÉÄ̡ܶ£¶ÔÓÚÊý×é¶ÔÏó£¬ÇëʹÓø´ÊýÃû³Æ¡£
43 <p class="examplecode"><font color="#006600">ºÃµÄ: $quiz<br />
44 ºÃµÄ: $errorstring<br />
45 ºÃµÄ: $assignments (ÓÃÓÚÊý×é)<br />
46 ºÃµÄ: $i (½öÓÃÓÚСÐÍÑ­»·)<br />
47 <br />
48 »µµÄ: $Quiz <br />
49 »µµÄ: $aReallyLongVariableNameWithoutAGoodReason<br />
50 »µµÄ: $error_string</font></p>
51 </li>
52 <li class="spaced"><strong>³£Á¿</strong>Ó¦µ±×ÜÊÇ´óдµÄ£¬²¢×ÜÊÇÒÔÄ£¿éµÄÃû³Æ×÷Ϊǰ׺¡£µ¥´ÊÖ®¼äÓ¦µ±ÓÃÏ»®Ïß·Ö¸ô¡£
53 <p class="examplecode"><font color="#006600">define("FORUM_MODE_FLATOLDEST",
54 1);</font></p>
55 </li>
56 <li class="spaced"><strong>º¯ÊýÃû³Æ</strong>Ó¦µ±ÊǼòµ¥µÄÓ¢ÎÄСдµ¥´Ê£¬ÇÒ×ÜÊÇÒÔÄ£¿éÃû×÷Ϊǰ׺ÒÔ·Àֹģ¿éÖ®¼äµÄ³åÍ»¡£µ¥´ÊÖ®¼äÒÔÏ»®Ïß·Ö¸ô¡£±äÁ¿Èç¹û¿ÉÄÜÓ¦µ±×ÜÓкÏÀíµÄȱʡֵ¡£×¢ÒâÔÚº¯ÊýÃûºÍÆäºóµÄÀ¨ºÅÖ®¼äûÓпոñ¡£<br />
57 <p class="examplecode"> <font color="#007700">function </font><font color="#0000BB">forum_set_display_mode</font><font color="#007700">(</font><font color="#0000BB">$mode</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">)
58 {<br />
59 &nbsp;&nbsp;&nbsp;&nbsp;global </font><font color="#0000BB">$USER</font><font color="#007700">,
60 </font><font color="#0000BB">$CFG</font><font color="#007700">;<br />
61 <br />
62 &nbsp;&nbsp;&nbsp;&nbsp;if (</font><font color="#0000BB">$mode</font><font color="#007700">)
63 {<br />
64 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$USER</font><font color="#007700">-&gt;</font><font color="#0000BB">mode
65 </font><font color="#007700">= </font><font color="#0000BB">$mode</font><font color="#007700">;<br />
66 &nbsp;&nbsp;&nbsp;&nbsp;} else if (empty(</font><font color="#0000BB">$USER</font><font color="#007700">-&gt;</font><font color="#0000BB">mode</font><font color="#007700">))
67 {<br />
68 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$USER</font><font color="#007700">-&gt;</font><font color="#0000BB">mode
69 </font><font color="#007700">= </font><font color="#0000BB">$CFG</font><font color="#007700">-&gt;</font><font color="#0000BB">forum_displaymode</font><font color="#007700">;<br />
70 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
71 }</font></p>
72 </li>
73 <li class="spaced"><strong>Óï¾ä¿é</strong>±ØÐë×ÜÊÇʹÓôóÀ¨ºÅ(¼´±ãÊÇÖ»ÓÐÒ»ÐÐ)¡£MoodleʹÓÃÈçÏ·ç¸ñ:
74 <p class="examplecode"> <font color="#006600">if (</font><font color="#0000CC">$quiz</font><font color="#006600">-&gt;</font><font color="#0000CC">attempts</font><font color="#006600">)
75 {<br />
76 &nbsp;&nbsp;&nbsp;&nbsp;if (</font><font color="#0000CC">$numattempts </font><font color="#006600">&gt;
77 </font><font color="#0000CC">$quiz</font><font color="#006600">-&gt;</font><font color="#0000CC">attempts</font><font color="#006600">)
78 {<br />
79 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000CC">error</font><font color="#006600">(</font><font color="#0000BB">$strtoomanyattempts</font><font color="#006600">,
80 </font><font color="#CC0000">"view.php?id=$cm</font><font color="#006600">-&gt;</font><font color="#CC0000">id"</font><font color="#006600">);<br />
81 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
82 }</font></p>
83 </li>
84 <li class="spaced"><strong>×Ö·û´®</strong>Ó¦µ±¾¡¿ÉÄÜÓõ¥ÒýºÅ¶¨ÒåÒÔÌá¸ßËٶȡ£<br />
85 <p class="examplecode"> <font color="#006600">$var = 'some text without any
86 variables';<br />
87 $var = "with special characters like a new line n";<br />
88 $var = 'a very, very long string with a '.$single.' variable in it';<br />
89 $var = "some $text with $many variables $within it"; </font></p>
90 </li>
91 <li class="spaced">ʵÓõÄ<strong>×¢ÊÍ</strong>Ó¦µ±¾¡¿ÉÄÜÌîд£¬ÓÃÒÔ½âÊÍ´úÂëÁ÷³ÌºÍº¯ÊýÓë±äÁ¿µÄ¹¦ÄÜ¡£
92 <ul>
93 <li>ÿ¸öº¯ÊýºÍÀ඼Ӧ¸ÃʹÓÃÁ÷ÐеÄ<a target="_blank" href="http://www.phpdoc.org/">phpDoc¸ñʽ</a>±àд£¬ÒÔ±ã×Ô¶¯Éú³É´úÂëÎĵµ¡£</li>
94 <li>ÄÚǶעÊÍӦʹÓà // ·ç¸ñ£¬²¢ÇÒÕûÆë²¼¾Ö£¬Ê¹ÆäÄÜÈÚÈë´úÂëÖв¢ºÍ´úÂë¶ÔÆë¡£
95 </li>
96 </ul>
98 <p class="examplecode"><font color="#FF8000">
99 /**<br />
100 * The description should be first, with asterisks laid out exactly<br />
101 * like this example. If you want to refer to a another function,<br />
102 * do it like this: {@link clean_param()}. Then, add descriptions <br />
103 * for each parameter as follows.<br />
104 *<br />
105 * @param int $postid The PHP type is followed by the variable name<br />
106 * @param array $scale The PHP type is followed by the variable name<br />
107 * @param array $ratings The PHP type is followed by the variable name<br />
108 * @return mixed<br />
109 */</font><br />
110 <font color="#006600">function </font><font color="#0000BB">forum_get_ratings_mean</font><font color="#007700">(</font><font color="#0000BB">$postid</font><font color="#007700">,
111 </font><font color="#0000BB">$scale</font><font color="#007700">, </font><font color="#0000BB">$ratings</font><font color="#007700">=</font><font color="#0000BB">NULL</font><font color="#007700">)
112 {<br /></font>
113 &nbsp;&nbsp;&nbsp;&nbsp;<font color="#007700">if (!</font><font color="#0000BB">$ratings</font><font color="#007700">)
114 {<br />
115 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$ratings
116 </font><font color="#007700">= array(); &nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//
117 Initialize the empty array</font><font color="#007700"><br />
118 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (</font><font color="#0000BB">$rates
119 </font><font color="#007700">= </font><font color="#0000BB">get_records</font><font color="#007700">(</font><font color="#DD0000">"forum_ratings"</font><font color="#007700">,
120 </font><font color="#DD0000">"post"</font><font color="#007700">, </font><font color="#0000BB">$postid</font><font color="#007700">))
121 {<br />
122 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//
123 Process each rating in turn</font><font color="#007700"><br />
124 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach
125 (</font><font color="#0000BB">$rates </font><font color="#007700">as </font><font color="#0000BB">$rate</font><font color="#007700">)
126 {</font> <br />
127 ....etc </p>
128 </li>
130 <li class="spaced"><strong>»»ÐÐ</strong>¿ÉÒÔ±»´ó·½µØʹÓ᪡ª°Ñ¶«Î÷·ÖÉ¢¿ª¿´ÆðÀ´»á±È½ÏÇå³þ¡£Ò»°ãÇé¿öÏ£¬ÔÚ»¨À¨ºÅºÍÆÕͨÃüÁîÖ®¼äÓ¦µ±ÓÐÒ»¸ö»»Ðзû£¬µ«ÔÚ»¨À¨ºÅºÍ±äÁ¿»òº¯ÊýÖ®¼ä¿ÉÒÔûÓл»Ðзû:<br />
131 <p class="examplecode"> <font color="#007700">foreach (</font><font color="#0000BB">$objects
132 </font><font color="#007700">as </font><font color="#0000BB">$key </font><font color="#007700">=&gt;</font><font color="#0000BB">
133 $thing</font><font color="#007700">)</font><font color="#006600"> {<br />
134 </font><font color="#007700">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">process($thing);</font><font color="#006600">
135 <br />
136 } <br />
137 <br />
138 </font><font color="#007700">if (</font><font color="#0000BB">$x </font><font color="#007700">==
139 </font><font color="#0000BB">$y</font><font color="#007700">)</font><font color="#006600">
140 {<br />
141 </font><font color="#007700">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$a
142 </font><font color="#007700">= </font><font color="#0000BB">$b</font><font color="#007700">;</font><font color="#006600"><br />
143 } else if (</font><font color="#0000BB">$x </font><font color="#007700">==
144 </font><font color="#0000BB">$z</font><font color="#006600">) {<br />
145 </font><font color="#007700">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$a
146 </font><font color="#007700">= </font><font color="#0000BB">$c</font><font color="#007700">;</font><font color="#006600"><br />
147 } else {<br />
148 </font><font color="#007700">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$a
149 </font><font color="#007700">= </font><font color="#0000BB">$d</font><font color="#007700">;</font><font color="#006600"><br />
150 } </font></p>
151 </li>
152 </ol>
153 <p> </p>
154 <h2>Êý¾Ý¿â½á¹¹</h2>
155 <ol class="normaltext">
156 <li class="spaced">ÿ¸ö±í¸ñ¶¼±ØÐëÓÐÒ»¸ö×ÔÔöµÄ<strong>id</strong>×Ö¶Î(INT10)×÷ΪÖ÷¼ü¡£</li>
157 <li class="spaced">°üº¬×ÅÄ£¿éÖÐÊý¾ÝʵÀýµÄÖ÷±í¸ñ±ØÐëºÍÄ£¿éͬÃû(Æ©Èç<strong>widget</strong>)£¬²¢ÇÒÖÁÉÙ°üº¬ÈçÏÂ×Ö¶Î:
158 <ul>
159 <li><strong>id</strong> - ÈçÉÏÒ»ÌõËùÊö</li>
160 <li><strong>course</strong> - ÿ¸öʵÀýËùÊôµÄ¿Î³Ìid</li>
161 <li><strong>name</strong> - ÿ¸öʵÀýµÄÍêÕûÃû³Æ</li>
162 </ul>
163 </li>
164 <li class="spaced">ÓëÄ£¿éÏà¹ØµÄÆäËü±í¸ñµÄÃüÃû¹æÔòÊÇ£ºÈç¹ûËü°üº¬µÄÐÅÏ¢ÊǹØÓÚ¡°things¡±µÄ£¬ÔòËüµÄÃû×ÖÓ¦µ±ÊÇ<strong>widget_things</strong>(×¢Òâ²ÉÓø´ÊýÐÎʽ)¡£</li>
165 <li class="spaced">×Ö¶ÎÃû³ÆÓ¦µ±¼ò¶Ì£¬Óë±äÁ¿ÃûµÄ¹æÔòÏàͬ¡£</li>
166 <li class="spaced">ÔÚ¿ÉÄܵÄÇé¿öÏ£¬°üº¬×ŶÔÆäËü±í¸ñ(Èç<strong>widget</strong>)ÒýÓõÄ×Ö¶ÎÓ¦µ±ÃüÃûΪ<strong>widgetid</strong>¡£(×¢ÒâÕâÊǸöÐÂÔ¼¶¨£¬ÓÐһЩÀϵıí¸ñ²¢Î´×ñÊØ)</li>
167 <li class="spaced">²¼¶û×Ö¶ÎÓ¦µ±Ê¹ÓÃСÕûÊýÀàÐÍ(ÈçINT4)²¢´æ´¢Îª0»ò1£¬ÕâÑù¾Í¿ÉÒÔÔÚÐèҪʱÀ©Õ¹Ëü¡£</li>
168 <li class="spaced">¶àÊýµÄ±í¸ñÓ¦µ±ÓÐÒ»¸ö<strong>timemodified</strong>×Ö¶Î(INT10)£¬²¢ÓÃPHPµÄ<strong>time</strong>()º¯ÊýÈ¡µÃµÄµ±Ç°Ê±¼ä´ÁÀ´¸üÐÂËü¡£</li>
169 </ol>
170 <hr />
171 <p>&nbsp;</p>
172 <h2>°²È«ÎÊÌ⣨´¦Àí±íµ¥ºÍURLÊý¾Ý£©</h2>
173 <ol class="normaltext">
174 <li class="spaced">²»ÒªÒÀ¿¿¡°register_globals¡±¡£<strong>ÿ¸ö</strong>±äÁ¿±ØÐëÔÚ<strong>ÿ¸ö</strong>Ô´ÎļþÀïÕýÈ·³õʼ»¯¡£±äÁ¿µÄÀ´Ô´±ØÐëÏÔ¶øÒ×¼û</li>
175 <li class="spaced">³õʼ»¯ËùÓеÄÊý×éºÍ¶ÔÏ󣬼´Ê¹ËüÊǿյġ£<code>$a = array()</code>»ò<code>$obj = new stdClass();</code>¡£</li>
176 <li class="spaced">²»ÒªÊ¹ÓÃ<code>optional_variable()</code>º¯Êý¡£Ê¹ÓÃ<code>optional_param()</code>º¯ÊýÀ´Ìæ´ú¡£¸ù¾ÝÊý¾ÝÀàÐÍÑ¡ÔñÕýÈ·µÄPARAM_XXXXÖµ¡£Ê¹ÓÃ<code>set_default()</code>º¯Êý¼ì²éºÍÉèÖñäÁ¿µÄ¿ÉÑ¡Öµ¡£</li>
177 <li class="spaced">²»ÒªÊ¹ÓÃ<code>require_variable()</code>º¯Êý¡£Ê¹ÓÃ<code>required_param()</code>À´Ìæ´ú¡£¸ù¾ÝÊý¾ÝÀàÐÍÑ¡ÔñÕýÈ·µÄPARAM_XXXXÖµ¡£</li>
178 <li class="spaced">²»ÒªÊ¹ÓÃ<code>$_GET</code>¡¢<code>$_POST</code>»ò<code>$_REQUEST</code>¡£¸ù¾ÝÄúµÄÐèҪʹÓøüºÏÊʵÄ<code>required_param()</code>»ò<code>optional_param()</code></li>
179 <li class="spaced">¼ì²éÒ»¸ö¶¯×÷ʱ£¬²»ÒªÊ¹ÓÃÏñ<code>if (isset($_GET['something']))</code>ÕâÑùµÄ´úÂë¡£¿ÉÒÔʹÓÃÖîÈ磺<code>$something = optional_param( 'something','',PARAM_ALPHA )</code>£¬²¢ÇÒÓÃ<code>empty()</code>º¯Êý²âÊÔ</li>
180 <li class="spaced">ÔÚÈκοÉÄܵÄÇé¿öÏ£¬°ÑÄúËùÓеÄ<code>required_param()</code>¡¢<code>optional_param()</code>ºÍÆäËüµÄ±äÁ¿³õʼ»¯Ò»Æð·ÅÔÚÿ¸öÎļþµÄ¿ªÍ·£¬ÕâÑùËüÃÇ»á¸üÈÝÒ×±»ÕÒµ½¡£</li>
181 <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>
182 <li class="spaced">ËùÓÐÎļþÃû±ØÐëÓÃ<code>clean_filename()</code>º¯Êý¡°¹ýÂË¡±£¬µ«Èç¹ûÒѾ­Êʵ±µØʹÓÃ<code>required_param()</code>»ò<code>optional_param()×öÁË´ËÏ×÷£¬Ôò²»±ØÈç´Ë</code>
183 </li>
184 <li class="spaced">ÔÙ°ÑÈκδÓÊý¾Ý¿â¶Á³öµÄÊý¾Ýд»Ø֮ǰ£¬±ØÐëÏÈÓÃ<code>addslashes()</code>´¦Àí¡£Ò»¸öÍêÕûÊý¾Ý¶ÔÏó¿ÉÒÔÓÃ<code>addslashes_object()</code>Ò»´ÎÐÔÍêÈ«´¦ÀíÍê±Ï¡£</li>
185 <li class="spaced">ÔÚÈκοÉÄܵÄÇé¿öÏ£¬´æÈëÊý¾Ý¿âµÄÊý¾Ý±ØÐëÀ´×Ô<code>POST</code>Êý¾Ý£¨Ò²¾ÍÊÇÀ´×Ô±íµ¥µÄÊý¾Ý£©£¬¶ø²»ÄÜÀ´×Ô<code>GET</code>Êý¾Ý£¨Ò²¾ÍÊÇÀ´×ÔURLµÄÊý¾Ý£©¡£</li>
186 <li class="spaced">Èç¹ûÄܱÜÃâµÄ»°£¬²»ÒªÊ¹ÓÃÀ´×Ô<code>$_SERVER</code>µÄÊý¾Ý¡£Ëü»á¸øÒÆÖ²ÐÔ´øÀ´ÎÊÌâ</li>
187 <li class="spaced">ÔÚÆäËüµØ·½Ã»ÓÐ×öµÄÇé¿öÏ£¬È·±£ËùÓÐдÈëÊý¾Ý¿âµÄÊý¾ÝÒѾ­±»<code>clean_param</code> º¯Êý´¦Àí£¬²¢ÇÒÕë¶ÔÊý¾ÝÀàÐÍ£¬Ê¹ÓÃÁËÇ¡µ±µÄPARAM_XXXX¡£</li>
188 <li class="spaced">Èç¹ûÄú±àдÁË×Ô¶¨ÒåµÄSQL´úÂ룬ÇëÈ·±£ËüÊÇÕýÈ·µÄ¡£ÓÈÆäСÐÄÔÚÊýÖµÖÜΧ²»Òª¶ªÊ§ÒýºÅ£¬Õâ¿ÉÄÜ»á´øÀ´SQL¡°×¢È롱©¶´¡£</li>
189 <li class="spaced">ÔÚ<strong>ÿһ</strong>Ò³¼ì²éËùÓеÄÊý¾Ý£¨ÓÈÆäÊÇдµ½Êý¾Ý¿âµÄÊý¾Ý£©¡£²»ÒªÆÚÅλòÒÀÀµÆäËüµØ·½ÒѾ­¼ì²éÁË¡£</li>
190 </ol>
191 <p align="CENTER"><font size="1"><a href="." target="_top">MoodleÎĵµ</a></font></p>
192 <p align="center"><font size="1">Version: $Id$</font></p>
193 </body>
194 </html>