ÍøÂçѧԺ w3popÉçÇø ÍøÂç×ÊÔ´ ITÐÂÎÅ

w3pop.com :: ÍøÂçѧԺ :: PHP :: PHP ·ÀÖ¹Óû§²Ù×Ý GET ±äÁ¿

»áÔ±µÇ½

ÕʺÅ

ÃÜÂë

»Ø´ð

¼ÇסÃÜÂë

Íü¼ÇÃÜÂë? ×¢²á

PHP
WINDOWSϰ²×°MyS..
PHP ÖÆ×÷ ÍøÕ¾/·þ..
ÓÃPHPºÍCSSÖÆ×÷»î..
PHP µ¥¼þģʽ
PHP MVCģʽ£¬Àà·..
PHP ÖÐʹÓÃÕýÔò±í..
PHP ·ÀÖ¹ SQL ×¢È..
PHP ¿çÕ¾µã½Å±¾¹¥..
PHP ·ÀÖ¹Óû§²Ù×Ý..
PHP ·ÀÖ¹Ô¶³Ì±íµ¥..

PHP ·ÀÖ¹Óû§²Ù×Ý GET ±äÁ¿


×÷Õß:ibm.com ·­Òë/ÕûÀí:w3pop.com ·¢²¼:2007-10-11 ä¯ÀÀ:1946 :: ::

ÔÚǰһ½ÚÖУ¬·ÀÖ¹ÁËÓû§Ê¹ÓûûÐεÄÃÜÂë½øÐеǼ¡£Èç¹ûÄúºÜ´ÏÃ÷£¬Ó¦¸ÃÓ¦ÓÃÄúѧµ½µÄ·½·¨£¬È·±£¶Ô SQL Óï¾äµÄËùÓÐÓû§ÊäÈë½øÐÐתÒå¡£

µ«ÊÇ£¬Óû§ÏÖÔÚÒѾ­°²È«µØµÇ¼ÁË¡£Óû§ÓµÓÐÓÐЧµÄÃÜÂ룬²¢²»Òâζ×ÅËû½«°´ÕÕ¹æÔòÐÐÊ —— ËûÓкܶà»ú»áÄܹ»Ôì³ÉË𺦡£ÀýÈ磬ӦÓóÌÐò¿ÉÄÜÔÊÐíÓû§²é¿´ÌØÊâµÄÄÚÈÝ¡£ËùÓÐÁ´½ÓÖ¸Ïò template.php?pid=33 »ò template.php?pid=321 ÕâÑùµÄλÖá£URL ÖÐÎʺźóÃæµÄ²¿·Ö³ÆÎª²éѯ×Ö·û´®¡£ÒòΪ²éѯ×Ö·û´®Ö±½Ó·ÅÔÚ URL ÖУ¬ËùÒÔÒ²³ÆÎª GET ²éѯ×Ö·û´®¡£

ÔÚ PHP ÖУ¬Èç¹û½ûÓÃÁË register_globals£¬ÄÇô¿ÉÒÔÓà $_GET['pid'] ·ÃÎÊÕâ¸ö×Ö·û´®¡£ÔÚ template.php Ò³ÃæÖУ¬¿ÉÄÜ»áÖ´ÐÐÓëÇåµ¥ 8 ÏàËÆµÄ²Ù×÷¡£


Çåµ¥ 8. ʾÀý template.php


<?php

$pid = $_GET['pid'];

//ÎÒÃÇÐé¹¹ÁËÒ»¸ö·ÖÒ³Àà¶ÔÏó
$obj = new Page;
$content = $obj->fetchPage($pid);
//ÏÔÊ¾Ò³ÃæÄÚÈݵÄPHP´úÂë¿é
//......
//......
?>

 

ÕâÀïÓÐʲô´íÂð£¿Ê×ÏÈ£¬ÕâÀïÒþº¬µØÏàÐÅÀ´×Ôä¯ÀÀÆ÷µÄ GET ±äÁ¿ pid Êǰ²È«µÄ¡£Õâ»áÔõôÑùÄØ£¿´ó¶àÊýÓû§Ã»ÄÇô´ÏÃ÷£¬ÎÞ·¨¹¹Ôì³öÓïÒå¹¥»÷¡£µ«ÊÇ£¬Èç¹ûËûÃÇ×¢Òâµ½ä¯ÀÀÆ÷µÄ URL λÖÃÓòÖÐµÄ pid=33£¬¾Í¿ÉÄÜ¿ªÊ¼µ·ÂÒ¡£Èç¹ûËûÃÇÊäÈëÁíÒ»¸öÊý×Ö£¬ÄÇô¿ÉÄÜûÎÊÌ⣻µ«ÊÇÈç¹ûÊäÈë±ðµÄ¶«Î÷£¬±ÈÈçÊäÈë SQL ÃüÁî»òij¸öÎļþµÄÃû³Æ£¨±ÈÈç /etc/passwd£©£¬»òÕ߸ã±ðµÄ¶ñ×÷¾ç£¬±ÈÈçÊäÈ볤´ï 3,000 ¸ö×Ö·ûµÄÊýÖµ£¬ÄÇô»á·¢ÉúÊ²Ã´ÄØ£¿

ÔÚÕâÖÖÇé¿öÏ£¬Òª¼Çס»ù±¾¹æÔò£¬²»ÒªÐÅÈÎÓû§ÊäÈë¡£Ó¦ÓóÌÐò¿ª·¢ÈËÔ±ÖªµÀ template.php ½ÓÊܵĸöÈ˱êʶ·û£¨PID£©Ó¦¸ÃÊÇÊý×Ö£¬ËùÒÔ¿ÉÒÔʹÓà PHP µÄ is_numeric() º¯ÊýÈ·±£²»½ÓÊÜ·ÇÊý×ÖµÄ PID£¬ÈçÏÂËùʾ£º


Çåµ¥ 9. ʹÓà is_numeric() À´ÏÞÖÆ GET ±äÁ¿


<?php

$pid = $_GET['pid'];

if (is_numeric($pid)){

//we create an object of a fictional class Page
$obj = new Page;
$content = $obj->fetchPage($pid);
//and now we have a bunch of PHP that displays the page
//......
//......
}else{
//ûͨ¹ýis_numeric()µÄ´¦Àí
}?>

 

Õâ¸ö·½·¨ËƺõÊÇÓÐЧµÄ£¬µ«ÊÇÒÔÏÂÕâЩÊäÈë¶¼Äܹ»ÇáËɵØÍ¨¹ý is_numeric() µÄ¼ì²é£º

  • 100 £¨ÓÐЧ£©
  • 100.1 £¨²»Ó¦¸ÃÓÐСÊý룩
  • +0123.45e6 £¨¿ÆÑ§¼ÆÊý·¨ —— ²»ºÃ£©
  • 0xff33669f £¨Ê®Áù½øÖÆ —— ΣÏÕ£¡Î£ÏÕ£¡£©

ÄÇô£¬Óа²È«ÒâʶµÄ PHP ¿ª·¢ÈËÔ±Ó¦¸ÃÔõô×öÄØ£¿¶àÄêµÄ¾­Ñé±íÃ÷£¬×îºÃµÄ×ö·¨ÊÇʹÓÃÕýÔò±í´ïʽÀ´È·±£Õû¸ö GET ±äÁ¿ÓÉÊý×Ö×é³É£¬ÈçÏÂËùʾ£º


Çåµ¥ 10. ʹÓÃÕýÔò±í´ïʽÏÞÖÆ GET ±äÁ¿


<?php
$pid = $_GET['pid'];
<b>
if (strlen($pid)){
if (!ereg("^[0-9]+$",$pid)){
//do something appropriate, like maybe logging \
them out or sending them back to home page
}
}else{
//empty $pid, so send them back to the home page
}
</b>
//we create an object of a fictional class Page, which is now
//moderately protected from evil user input
$obj = new Page;
$content = $obj->fetchPage($pid);
//and now we have a bunch of PHP that displays the page
//......
//......
?>

 

ÐèÒª×öµÄÖ»ÊÇʹÓà strlen() ¼ì²é±äÁ¿µÄ³¤¶ÈÊÇ·ñ·ÇÁ㣻Èç¹ûÊÇ£¬¾ÍʹÓÃÒ»¸öÈ«Êý×ÖÕýÔò±í´ïʽÀ´È·±£Êý¾ÝÔªËØÊÇÓÐЧµÄ¡£Èç¹û PID °üº¬×Öĸ¡¢Ð±Ïß¡¢µãºÅ»òÈκÎÓëÊ®Áù½øÖÆÏàËÆµÄÄÚÈÝ£¬ÄÇôÕâ¸öÀý³Ì²¶»ñËü²¢½«Ò³Ãæ´ÓÓû§»î¶¯ÖÐÆÁ±Î¡£Èç¹û¿´Ò»Ï Page ÀàÄ»ºóµÄÇé¿ö£¬¾Í»á¿´µ½Óа²È«ÒâʶµÄ PHP ¿ª·¢ÈËÔ±ÒѾ­¶ÔÓû§ÊäÈë $pid ½øÐÐÁËתÒ壬´Ó¶ø±£»¤ÁË fetchPage() ·½·¨£¬ÈçÏÂËùʾ£º


Çåµ¥ 11. ¶Ô fetchPage() ·½·¨½øÐÐתÒå


<?php
class Page{
function fetchPage($pid){
$sql = "select pid,title,desc,kw,content,\
status from page where pid='
".mysql_real_escape_string($pid)."'";
//etc, etc....

}

}
?>

 

Äú¿ÉÄÜ»áÎÊ£¬“¼ÈÈ»ÒѾ­È·±£ PID ÊÇÊý×Ö£¬ÄÇôΪʲô»¹Òª½øÐÐתÒ壿” ÒòΪ²»ÖªµÀÔÚ¶àÉÙ²»Í¬µÄÉÏÏÂÎĺÍÇé¿öÖлáʹÓà fetchPage() ·½·¨¡£±ØÐëÔÚµ÷ÓÃÕâ¸ö·½·¨µÄËùÓеط½½øÐб£»¤£¬¶ø·½·¨ÖеÄתÒåÌåÏÖÁË×ÝÉî·ÀÓùµÄÒâÒå¡£

Èç¹ûÓû§³¢ÊÔÊäÈë·Ç³£³¤µÄÊýÖµ£¬±ÈÈ糤´ï 1000 ¸ö×Ö·û£¬ÊÔͼ·¢Æð»º³åÇøÒç³ö¹¥»÷£¬ÄÇô»á·¢ÉúÊ²Ã´ÄØ£¿ÏÂÒ»½Ú¸üÏêϸµØÌÖÂÛÕâ¸öÎÊÌ⣬µ«ÊÇĿǰ¿ÉÒÔÌí¼ÓÁíÒ»¸ö¼ì²é£¬È·±£ÊäÈëµÄ PID ¾ßÓÐÕýÈ·µÄ³¤¶È¡£ÄúÖªµÀÊý¾Ý¿âµÄ pid ×ֶεÄ×î´ó³¤¶ÈÊÇ 5 룬ËùÒÔ¿ÉÒÔÌí¼ÓÏÂÃæµÄ¼ì²é¡£


Çåµ¥ 12. ʹÓÃÕýÔò±í´ïʽºÍ³¤¶È¼ì²éÀ´ÏÞÖÆ GET ±äÁ¿


<?php
$pid = $_GET['pid'];

if (strlen($pid)){
if (!ereg("^[0-9]+$",$pid) && strlen($pid) > 5){
//do something appropriate, like maybe logging \
them out or sending them back to home page
}
}else{
//empty $pid, so send them back to the home page
}
//we create an object of a fictional class Page, which is now
//even more protected from evil user input
$obj = new Page;
$content = $obj->fetchPage($pid);
//and now we have a bunch of PHP that displays the page
//......
//......
?>

 

ÏÖÔÚ£¬ÈκÎÈ˶¼ÎÞ·¨ÔÚÊý¾Ý¿âÓ¦ÓóÌÐòÖÐÈû½øÒ»¸ö 5,000 λµÄÊýÖµ —— ÖÁÉÙÔÚÉæ¼° GET ×Ö·û´®µÄµØ·½²»»áÓÐÕâÖÖÇé¿ö¡£ÏëÏñһϺڿÍÔÚÊÔÍ¼Í»ÆÆÄúµÄÓ¦ÓóÌÐò¶øÔâµ½´ìÕÛʱҧÑÀÇгݵÄÑù×Ó°É£¡¶øÇÒÒòΪ¹Ø±ÕÁË´íÎ󱨸棬ºÚ¿Í¸üÄѽøÐÐÕì²ì¡£

ÆÀÂÛ (0) All