°Ë±¦Êé¿â > ÎÄѧÆäËûµç×ÓÊé > Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) >

µÚ147²¿·Ö

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ147²¿·Ö

С˵£º Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) ×ÖÊý£º ÿҳ4000×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




¡¡¡¡¡¡¡¡else¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡*qry¡¡=¡¡'0'£»¡¡//¡¡Terminate¡¡value¡¡string¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡qry£«£«£»¡¡//¡¡Move¡¡to¡¡next¡¡pair¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡Pair£¨name£»¡¡value£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý£»¡¡///£º~¡¡¡¡

¡¡¡¡

ÔÚ#include¡¡Óï¾äºó£¬¿É¿´µ½ÓÐÒ»ÐÐÊÇ£º¡¡¡¡

using¡¡namespace¡¡std£»¡¡¡¡

C£«£«Öеġ°ÃüÃû¿Õ¼ä¡±£¨Namespace£©½â¾öÁËÓÉJava¡¡µÄpackage¡¡¸ºÔðµÄÒ»¸öÎÊÌ⣺½«¿âÃûÒþ²ØÆðÀ´¡£stdÃüÃû¡¡

¿Õ¼äÒýÓõÄÊDZê×¼C£«£«¿â£¬¶ø¡¡vector¡¡¾ÍÔÚÕâ¸ö¿âÖУ¬ËùÒÔÕâÒ»ÐÐÊDZØÐèµÄ¡£¡¡¡¡

Pair¡¡Àà±íÃæ¿´Òì³£¼òµ¥£¬Ö»ÊÇÈÝÄÉÁËÁ½¸ö£¨private£©×Ö·ûÖ¸Õë¶øÒÑ¡ª¡ªÒ»¸öÓÃÓÚÃû×Ö£¬ÁíÒ»¸öÓÃÓÚÖµ¡£Ä¬¡¡

ÈϹ¹½¨Æ÷½«ÕâÁ½¸öÖ¸Õë¼òµ¥µØÉèΪÁã¡£ÕâÊÇÓÉÓÚÔÚ¡¡C£«£«ÖУ¬¶ÔÏóµÄÄÚ´æ²»»á×Ô¶¯ÖÃÁã¡£µÚ¶þ¸ö¹¹½¨Æ÷µ÷Ó÷½¡¡

·¨¡¡decodeURLString£¨£©£¬ÔÚзÖÅäµÄ¶ÑÄÚ´æÖÐÉú³ÉÒ»¸ö½âÂë¹ýºóµÄ×Ö´®¡£Õâ¸öÄÚ´æÇøÓò±ØÐëÓɶÔÏó¸ºÔð¹ÜÀí¡¡

¼°Çå³ý£¬ÕâÓë¡°ÆÆ»µÆ÷¡±Öмûµ½µÄÏàͬ¡£name£¨£©ºÍ¡¡value£¨£©·½·¨ÎªÏà¹ØµÄ×ֶβúÉúÖ»¶ÁÖ¸Õë¡£ÀûÓá¡empty£¨£©·½¡¡

·¨£¬ÎÒÃDzéѯPair¡¡¶ÔÏóËüµÄij¸ö×Ö¶ÎÊÇ·ñΪ¿Õ£»·µ»ØµÄ½á¹ûÊÇÒ»¸ö¡¡bool¡ª¡ªC£«£«ÄÚ½¨µÄ»ù±¾²¼¶ûÊý¾ÝÀàÐÍ¡£¡¡

operator¡¡bool£¨£©Ê¹ÓõÄÊÇ¡¡C£«£«¡¡¡°ÔËËã·û¹ýÔØ¡±µÄÒ»ÖÖÌØÊâÐÎʽ¡£ËüÔÊÐíÎÒÃÇ¿ØÖÆ×Ô¶¯ÀàÐÍת»»¡£Èç¹ûÓÐÒ»¸ö¡¡

ÃûΪp¡¡µÄPair¡¡¶ÔÏ󣬶øÇÒÔÚÒ»¸ö±¾À´Ï£ÍûÊDz¼¶û½á¹ûµÄ±í´ïʽÖÐʹÓ㬱ÈÈç¡¡if£¨p£©£û//¡£¡£¡££¬ÄÇô±àÒëÆ÷Äܱ桡

±ð³öËüÓÐÒ»¸öPair£¬¶øÇÒÐèÒªµÄÊǸö²¼¶ûÖµ£¬ËùÒÔ×Ô¶¯µ÷Óá¡operator¡¡bool£¨£©£¬½øÐбØÒªµÄת»»¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡569¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡571¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

½ÓÏÂÀ´µÄÈý¸ö·½·¨ÊôÓÚ³£¹æ±àÂ룬ÔÚC£«£«Öд´½¨Ààʱ±ØÐëÓõ½ËüÃÇ¡£¸ù¾ÝC£«£«Àà²ÉÓõÄËùν¡°¾­µäÐÎʽ¡±£¬ÎÒ¡¡

ÃDZØÐ붨Òå±ØÒªµÄ¡°Ô­Ê¼¡±¹¹½¨Æ÷£¬ÒÔ¼°Ò»¸ö¸±±¾¹¹½¨Æ÷ºÍ¸³ÖµÔËËã·û¡ª¡ªoperator=¡¡£¨ÒÔ¼°ÆÆ»µÆ÷£¬ÓÃÓÚÇå¡¡

³ýÄڴ棩¡£Ö®ËùÒÔÒª×÷ÕâÑùµÄ¶¨Ò壬ÊÇÓÉÓÚ±àÒëÆ÷»á¡°Ä¬Ä¬¡±µØµ÷ÓÃËüÃÇ¡£ÔÚ¶ÔÏó´«Èë¡¢´«³öÒ»¸öº¯ÊýµÄʱ¡¡

ºò£¬ÐèÒªµ÷Óø±±¾¹¹½¨Æ÷£»¶øÔÚ·ÖÅä¶ÔÏóʱ£¬ÐèÒªµ÷Óø³ÖµÔËËã·û¡£Ö»ÓÐÕæÕýÕÆÎÕÁ˸±±¾¹¹½¨Æ÷ºÍ¸³ÖµÔËËã¡¡

·ûµÄ¹¤×÷Ô­Àí£¬²ÅÄÜÔÚ¡¡C£«£«Àïд³öÕæÕý¡°½¡×³¡±µÄÀ࣬µ«ÕâÐèÒªÐèÒªÒ»¸ö±È½Ï¼è¿àµÄ¹ý³Ì£¨×¢Ê͢ݣ©¡£¡¡¡¡

¡¡¡¡

¢Ý£ºÎҵġ¶Thinking¡¡in¡¡C£«£«¡·£¨Prentice¡­Hall£»1995£©ÓÃÁËÒ»ÕûÕµĵط½À´ÌÖÂÛÕâ¸öÖ÷Ìâ¡£ÈôÐè¸ü¶àµÄ°ï¡¡

Öú£¬ÇëÎñ±Ø¿´¿´ÄÇÒ»Õ¡£¡¡¡¡

¡¡¡¡

Ö»Òª½«Ò»¸ö¶ÔÏó°´Öµ´«Èë»ò´«³öº¯Êý£¬¾Í»á×Ô¶¯µ÷Óø±±¾¹¹½¨Æ÷Pair£¨const¡¡Pair&£©¡£Ò²¾ÍÊÇ˵£¬¶ÔÓÚ×¼±¸¡¡

ΪÆäÖÆ×÷Ò»¸öÍêÕû¸±±¾µÄÄǸö¶ÔÏó£¬ÎÒÃDz»×¼±¸ÔÚº¯Êý¿ò¼ÜÖд«µÝËüµÄµØÖ·¡£Õâ²¢²»ÊÇJava¡¡ÌṩµÄÒ»¸öÑ¡¡¡

ÏÓÉÓÚÎÒÃÇÖ»ÄÜ´«µÝ¾ä±ú£¬ËùÒÔÔÚJava¡¡ÀïûÓÐËùνµÄ¸±±¾¹¹½¨Æ÷£¨Èç¹ûÏëÖÆ×÷Ò»¸ö±¾µØ¸±±¾£¬¿ÉÒÔ¡°¿Ë¡¡

¡¡±ÄǸö¶ÔÏ󡪡ªÊ¹Óá¡clone£¨£©£¬²Î¼ûµÚ12¡¡Õ£©¡£ÀàËƵأ¬Èç¹ûÔÚ¡¡Java¡¡Àï·ÖÅäÒ»¸ö¾ä±ú£¬Ëü»á¼òµ¥µØ¸´¡¡

ÖÆ¡£µ«¡¡C£«£«Öеĸ³ÖµÒâζ×ÅÕû¸ö¶ÔÏ󶼻ḴÖÆ¡£ÔÚ¸±±¾¹¹½¨Æ÷ÖУ¬ÎÒÃÇ´´½¨ÐµĴ洢¿Õ¼ä£¬²¢¸´ÖÆԭʼÊý¡¡

¾Ý¡£µ«¶ÔÓÚ¸³ÖµÔËËã·û£¬ÎÒÃDZØÐëÔÚ·ÖÅäд洢¿Õ¼ä֮ǰÊÍ·ÅÀÏ´æ´¢¿Õ¼ä¡£ÎÒÃÇÒª¼ûµ½µÄÒ²ÐíÊÇ¡¡C£«£«Àà×¡¡

ÔÓµÄÒ»ÖÖÇé¿ö£¬µ«ÄÇÕýÊÇJava¡¡µÄÖ§³ÖÕßÃÇÂÛÖ¤Java¡¡±ÈC£«£«¼òµ¥µÃ¶àµÄÓÐÁ¦Ö¤¾Ý¡£ÔÚ¡¡Java¡¡ÖУ¬ÎÒÃÇ¿ÉÒÔ×ÔÓÉ¡¡

´«µÝ¾ä±ú£¬Éƺó¹¤×÷ÔòÓÉÀ¬»øÊÕ¼¯Æ÷¸ºÔð£¬ËùÒÔ¿ÉÒÔÇáËÉÐí¶à¡£¡¡¡¡

µ«ÊÂÇ鲢ûÓÐÍê¡£Pair¡¡ÀàΪnm¡¡ºÍ¡¡val¡¡Ê¹ÓõÄÊÇchar*£¬×ÔÓµÄÇé¿öÖ÷ÒªÊÇΧÈÆÖ¸ÕëÕ¹¿ªµÄ¡£Èç¹ûÓýÏʱ÷Ö¡¡

µÄC£«£«¡¡string¡¡ÀàÀ´´úÌæchar*£¬ÊÂÇé¾ÍÒª±äµÃ¼òµ¥µÃ¶à£¨µ±È»£¬²¢²»ÊÇËùÓбàÒëÆ÷¶¼ÌṩÁ˶ԡ¡string¡¡µÄÖ§¡¡

³Ö£©¡£ÄÇô£¬Pair¡¡µÄµÚÒ»²¿·Ö¿´ÆðÀ´¾ÍÏóÏÂÃæÕâÑù£º¡¡¡¡

¡¡¡¡

class¡¡Pair¡¡£û¡¡¡¡

¡¡¡¡string¡¡nm£»¡¡¡¡

¡¡¡¡string¡¡val£»¡¡¡¡

public£º¡¡¡¡

¡¡¡¡Pair£¨£©¡¡£û¡¡£ý¡¡¡¡

¡¡¡¡Pair£¨char*¡¡name£»¡¡char*¡¡value£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡nm¡¡=¡¡decodeURLString£¨name£©£»¡¡¡¡

¡¡¡¡¡¡¡¡val¡¡=¡¡decodeURLString£¨value£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡const¡¡char*¡¡name£¨£©¡¡const¡¡£û¡¡return¡¡nm¡£c_str£¨£©£»¡¡£ý¡¡¡¡

¡¡¡¡const¡¡char*¡¡value£¨£©¡¡const¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡val¡£c_str£¨£©£»¡¡¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡Test¡¡for¡¡¡¨emptiness¡¨¡¡¡¡

¡¡¡¡bool¡¡empty£¨£©¡¡const¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡£¨nm¡£length£¨£©¡¡==¡¡0£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ü£ü¡¡£¨val¡£length£¨£©¡¡==¡¡0£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡Automatic¡¡type¡¡conversion¡¡for¡¡boolean¡¡test£º¡¡¡¡

¡¡¡¡operator¡¡bool£¨£©¡¡const¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡£¨nm¡£length£¨£©¡¡£¡=¡¡0£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡&&¡¡£¨val¡£length£¨£©¡¡£¡=¡¡0£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡

¡¡£¨´ËÍ⣬¶ÔÕâ¸öÀàdecodeURLString£¨£©»á·µ»ØÒ»¸ö¡¡string£¬¶ø²»ÊÇÒ»¸öchar*£©¡£ÎÒÃDz»±Ø¶¨Ò帱±¾¹¹½¨¡¡

Æ÷¡¢operator=»òÕßÆÆ»µÆ÷£¬ÒòΪ±àÒëÆ÷ÒÑ°ïÎÒÃÇ×öÁË£¬¶øÇÒ×öµÃ·Ç³£ºÃ¡£µ«¼´Ê¹ÓÐЩÊÂÇéÊÇ×Ô¶¯½øÐеģ¬¡¡

C£«£«³ÌÐòÔ±Ò²±ØÐëÁ˽⸱±¾¹¹½¨ÒÔ¼°¸³ÖµµÄϸ½Ú¡£¡¡¡¡

Pair¡¡ÀàʣϵIJ¿·ÖÓÉÁ½¸ö·½·¨¹¹³É£ºdecodeURLString£¨£©ÒÔ¼°Ò»¸ö¡°°ïÖúÆ÷¡±·½·¨translateHex£¨£©¡ª¡ª½«ÓÉ¡¡

decodeURLString£¨£©Ê¹Óá£×¢Òâ¡¡translateHex£¨£©²¢²»ÄÜ·À·¶Óû§µÄ¶ñÒâÊäÈ룬±ÈÈç¡°£¥1H¡±¡£·ÖÅäºÃ×ã¹»µÄ´æ¡¡

´¢¿Õ¼äºó£¨±ØÐëÓÉÆÆ»µÆ÷ÊÍ·Å£©£¬decodeURLString£¨£©¾Í»áÆäÖбéÀú£¬½«ËùÓС°£«¡±¶¼»»³ÉÒ»¸ö¿Õ¸ñ£»½«ËùÓС¡

Ê®Áù½øÖÆ´úÂ루ÒÔÒ»¸ö¡°£¥¡±´òÍ·£©»»³É¶ÔÓ¦µÄ×Ö·û¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡570¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡572¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

CGI_vector¡¡ÓÃÓÚ½âÎöºÍÈÝÄÉÕû¸ö¡¡CGI¡¡GET¡¡ÃüÁî¡£ËüÊÇ´Ó¡¡STL¡¡vector¡¡Àï¼Ì³ÐµÄ£¬ºóÕßÀýʾΪÈÝÄÉPair¡¡¡£C£«£«ÖС¡

µÄ¼Ì³ÐÊÇÓÃÒ»¸öðºÅ±íʾ£¬ÔÚJava¡¡ÖÐÔòÒªÓÃextends¡£´ËÍ⣬¼Ì³ÐĬÈÏΪprivate¡¡ÊôÐÔ£¬ËùÒÔ¼¸ºõ¿Ï¶¨ÐèÒª¡¡

Óõ½public¡¡¹Ø¼ü×Ö£¬¾ÍÏóÕâÑù×öµÄÄÇÑù¡£´ó¼ÒÒ²»á·¢ÏÖ¡¡CGI_vector¡¡ÓÐÒ»¸ö¸±±¾¹¹½¨Æ÷ÒÔ¼°Ò»¸ö¡¡

operator=£¬µ«ËüÃǶ¼ÉùÃ÷³Éprivate¡£ÕâÑù×öÊÇΪÁË·ÀÖ¹±àÒëÆ÷ͬ²½Á½¸öº¯Êý£¨Èç¹û²»×Ô¼ºÉùÃ÷ËüÃÇ£¬Á½Õß¡¡

¾Í»áͬ²½£©¡£µ«ÕâͬʱҲ½ûÖ¹ÁË¿Í»§³ÌÐòÔ±°´Öµ»òÕßͨ¹ý¸³Öµ´«µÝÒ»¸öCGI_vector¡£¡¡¡¡

CGI_vector¡¡µÄ¹¤×÷ÊÇ»ñÈ¡QUERY_STRING£¬²¢°ÑËü½âÎö³É¡°Ãû³Æ£¯Öµ¡±¶Ô£¬ÕâÐèÒªÔÚPair¡¡µÄ°ïÖúÏÂÍê³É¡£Ëü¡¡

Ê×ÏȽ«×Ö´®¸´ÖƵ½±¾µØ·ÖÅäµÄÄڴ棬²¢Óó£ÊýÖ¸Õë¡¡start¡¡¸ú×ÙÆðʼµØÖ·£¨ÉÔºó»áÔÚÆÆ»µÆ÷ÖÐÓÃÓÚÊÍ·ÅÄÚ¡¡

´æ£©¡£Ëæºó£¬ËüÓÃ×Ô¼ºµÄnextPair£¨£©·½·¨½«×Ö´®½âÎö³ÉԭʼµÄ¡°Ãû³Æ£¯Öµ¡±¶Ô£¬¸÷¸ö¶ÔÖ®¼äÓÃÒ»¸ö¡°=¡±ºÍ¡¡

¡¡¡°&¡±·ûºÅ·Ö¸ô¡£ÕâЩ¶ÔÓÉ¡¡nextPair£¨£©´«µÝ¸ø¡¡Pair¡¡¹¹½¨Æ÷£¬ËùÒÔnextPair£¨£©·µ»ØµÄÊÇÒ»¸öPair¡¡¶ÔÏó¡£Ëæºó¡¡

ÓÃpush_back£¨£©½«¸Ã¶ÔÏó¼ÓÈëvector¡£nextPair£¨£©±éÀúÍêÕû¸ö¡¡QUERY_STRING¡¡ºó£¬»á·µ»ØÒ»¸öÁãÖµ¡£¡¡¡¡

ÏÖÔÚ»ù±¾¹¤¾ßÒѶ¨ÒåºÃ£¬ËüÃÇ¿ÉÒÔ¼òµ¥µØÔÚÒ»¸öCGI¡¡³ÌÐòÖÐʹÓ㬾ÍÏóÏÂÃæÕâÑù£º¡¡¡¡

¡¡¡¡

//£º¡¡Listmgr2¡£cpp¡¡¡¡

//¡¡CGI¡¡version¡¡of¡¡Listmgr¡£c¡¡in¡¡C£«£«£»¡¡which¡¡¡¡¡¡

//¡¡extracts¡¡its¡¡input¡¡via¡¡the¡¡GET¡¡submission¡¡¡¡¡¡

//¡¡from¡¡the¡¡associated¡¡applet¡£¡¡Also¡¡works¡¡as¡¡¡¡

//¡¡an¡¡ordinary¡¡CGI¡¡program¡¡with¡¡HTML¡¡forms¡£¡¡¡¡

#include¡¡¡¡¡¡

#include¡¡¡¨CGITools¡£h¡¨¡¡¡¡

const¡¡char*¡¡dataFile¡¡=¡¡¡¨list2¡£txt¡¨£»¡¡¡¡

const¡¡char*¡¡notify¡¡=¡¡¡¨Bruce@EckelObjects¡£¡¨£»¡¡¡¡

#undef¡¡DEBUG¡¡¡¡

¡¡¡¡

//¡¡Similar¡¡code¡¡as¡¡before£»¡¡except¡¡that¡¡it¡¡looks¡¡¡¡

//¡¡for¡¡the¡¡email¡¡name¡¡inside¡¡of¡¡''£º¡¡¡¡

int¡¡inList£¨FILE*¡¡list£»¡¡const¡¡char*¡¡emailName£©¡¡£û¡¡¡¡

¡¡¡¡const¡¡int¡¡BSIZE¡¡=¡¡255£»¡¡¡¡

¡¡¡¡char¡¡lbuf£§BSIZE£§£»¡¡¡¡

¡¡¡¡char¡¡emname£§BSIZE£§£»¡¡¡¡

¡¡¡¡//¡¡Put¡¡the¡¡email¡¡name¡¡in¡¡''¡¡so¡¡there's¡¡no¡¡¡¡

¡¡¡¡//¡¡possibility¡¡of¡¡a¡¡match¡¡within¡¡another¡¡name£º¡¡¡¡

¡¡¡¡sprintf£¨emname£»¡¡¡¨¡¨£»¡¡emailName£©£»¡¡¡¡

¡¡¡¡//¡¡Go¡¡to¡¡the¡¡beginning¡¡of¡¡the¡¡list£º¡¡¡¡

¡¡¡¡fseek£¨list£»¡¡0£»¡¡SEEK_SET£©£»¡¡¡¡

¡¡¡¡//¡¡Read¡¡each¡¡line¡¡in¡¡the¡¡list£º¡¡¡¡

¡¡¡¡while£¨fgets£¨lbuf£»¡¡BSIZE£»¡¡list£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Strip¡¡off¡¡the¡¡newline£º¡¡¡¡¡¡

¡¡¡¡¡¡¡¡char¡¡*¡¡newline¡¡=¡¡strchr£¨lbuf£»¡¡'n'£©£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨newline¡¡£¡=¡¡0£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡*newline¡¡=¡¡'0'£»¡¡¡¡

¡¡¡¡¡¡¡¡if£¨strstr£¨lbuf£»¡¡emname£©¡¡£¡=¡¡0£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡return¡¡1£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡return¡¡0£»¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

void¡¡main£¨£©¡¡£û¡¡¡¡

¡¡¡¡//¡¡You¡¡MUST¡¡print¡¡this¡¡out£»¡¡otherwise¡¡the¡¡¡¡¡¡

¡¡¡¡//¡¡server¡¡will¡¡not¡¡send¡¡the¡¡response£º¡¡¡¡

¡¡¡¡printf£¨¡¨Content¡­type£º¡¡text/plainnn¡¨£©£»¡¡¡¡

¡¡¡¡FILE*¡¡list¡¡=¡¡fopen£¨dataFile£»¡¡¡¨a£«t¡¨£©£»¡¡¡¡

¡¡¡¡if£¨list¡¡==¡¡0£©¡¡£û¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡571¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡573¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡printf£¨¡¨error£º¡¡could¡¡not¡¡open¡¡database¡£¡¡¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡printf£¨¡¨Notify¡¡£¥s¡¨£»¡¡notify£©£»¡¡¡¡

¡¡¡¡¡¡¡¡return£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡For¡¡a¡¡CGI¡¡¡¨GET£»¡¨¡¡the¡¡server¡¡puts¡¡the¡¡data¡¡¡¡

¡¡¡¡//¡¡in¡¡the¡¡environment¡¡variable¡¡QUERY_STRING£º¡¡¡¡

¡¡¡¡CGI_vector¡¡query£¨getenv£¨¡¨QUERY_STRING¡¨£©£©£»¡¡¡¡

¡¡¡¡#if¡¡defined£¨DEBUG£©¡¡¡¡

¡¡¡¡//¡¡Test£º¡¡dump¡¡all¡¡names¡¡and¡¡values¡¡¡¡

¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡query¡£size£¨£©£»¡¡i£«£«£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡printf£¨¡¨query£§£¥d£§¡£name£¨£©¡¡=¡¡£§£¥s£§£»¡¡¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£»¡¡query£§i£§¡£name£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡printf£¨¡¨query£§£¥d£§¡£value£¨£©¡¡=¡¡£§£¥s£§¡¡n¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£»¡¡query£§i£§¡£value£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡#endif£¨DEBUG£©¡¡¡¡

¡¡¡¡Pair¡¡name¡¡=¡¡query£§0£§£»¡¡¡¡

¡¡¡¡Pair¡¡email¡¡=¡¡query£§1£§£»¡¡¡¡

¡¡¡¡if£¨name¡£empty£¨£©¡¡£ü£ü¡¡email¡£empty£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡printf£¨¡¨error£º¡¡null¡¡name¡¡or¡¡email¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡return£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡¡¡

¡¡¡¡if£¨inList£¨list£»¡¡email¡£value£¨£©£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡printf£¨¡¨Already¡¡in¡¡list£º¡¡£¥s¡¨£»¡¡email¡£value£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡return£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡It's¡¡not¡¡in¡¡the¡¡list£»¡¡add¡¡it£º¡¡¡¡

¡¡¡¡fseek£¨list£»¡¡0£»¡¡SEEK_END£©£»¡¡¡¡

¡¡¡¡fprintf£¨list£»¡¡¡¨£¥s¡¡£»n¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡name¡£value£¨£©£»¡¡email¡£value£¨£©£©£»¡¡¡¡

¡¡¡¡fflush£¨list£©£»¡¡¡¡

¡¡¡¡fclose£¨list£©£»¡¡¡¡

¡¡¡¡printf£¨¡¨£¥s¡¡¡¡added¡¡to¡¡listn¡¨£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡name¡£value£¨£©£»¡¡email¡£value£¨£©£©£»¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

alreadyInList£¨£©º¯ÊýÓëÇ°Ò»¸ö°æ±¾¼¸ºõÊÇÍêÈ«ÏàͬµÄ£¬Ö»ÊÇËü¼Ù¶¨ËùÓеç×Óº¯¼þµØÖ·¶¼ÔÚÒ»¸ö¡°¡±ÄÚ¡£¡¡¡¡

ÔÚʹÓá¡GET¡¡·½·¨Ê±£¨Í¨¹ýÔÚFORM¡¡Òýµ¼ÃüÁîµÄMETHOD¡¡±ê¼ÇÄÚ²¿ÉèÖ㬵«ÕâÔÚÕâÀïÓÉÊý¾Ý·¢Ë͵ķ½Ê½¿ØÖÆ£©£¬¡¡

Web¡¡·þÎñÆ÷»áÊÕ¼¯Î»ÓÚ¡°£¿¡±ºóÃæµÄËùÓÐÐÅÏ¢£¬²¢°ÑËüÃÇÖÃÈë»·¾³±äÁ¿QUERY_STRING¡¡£¨²éѯ×Ö´®£©Àï¡£ËùÒÔΪ¡¡

Á˶ÁÈ¡ÄÇЩÐÅÏ¢£¬±ØÐë»ñµÃQUERY_STRING¡¡µÄÖµ£¬ÕâÊÇÓñê×¼µÄC¡¡¿âº¯Êý¡¡getnv£¨£©Íê³ÉµÄ¡£ÔÚ¡¡main£¨£©ÖУ¬×¢Òâ¡¡

¶ÔQUERY_STRING¡¡µÄ½âÎöÓжàôÈÝÒ×£ºÖ»Ðè°ÑËü´«µÝ¸øÓÃÓÚCGI_vector¡¡¶ÔÏóµÄ¹¹½¨Æ÷£¨ÃûΪquery£©£¬Ê£Ï¡¡

µÄËùÓй¤×÷¶¼»á×Ô¶¯½øÐС£´ÓÕâʱ¿ªÊ¼£¬ÎÒÃǾͿÉÒÔ´Óquery¡¡ÖÐÈ¡³öÃû³ÆºÍÖµ£¬°ÑËüÃǵ±×÷Êý×é¿´´ý£¨ÕâÊÇ¡¡

ÓÉÓÚoperator£§£§ÔÚvector¡¡ÀïÒѾ­¹ýÔØÁË£©¡£ÔÚµ÷ÊÔ´úÂëÖУ¬´ó¼Ò¿É¿´µ½ÕâÒ»ÇÐÊÇÈçºÎÔË×÷µÄ£»µ÷ÊÔ´úÂë·â¡¡

×°ÔÚÔ¤´¦ÀíÆ÷Òýµ¼ÃüÁî#if¡¡defined£¨DEBUG£©ºÍ#endif£¨DEBUG£©¡¡Ö®¼ä¡£¡¡¡¡

ÏÖÔÚ£¬ÎÒÃÇÆÈÇÐÐèÒªÕÆÎÕһЩÓëCGI¡¡ÓйصĶ«Î÷¡£CGI¡¡³ÌÐòÓÃÁ½¸ö·½Ê½Ö®Ò»´«µÝËüÃǵÄÊäÈ룺ÔÚ¡¡GET¡¡Ö´ÐÐÆÚ¡¡

¼äͨ¹ýQUERY_STRING¡¡´«µÝ£¨Ä¿Ç°ÓõÄÕâÖÖ·½Ê½£©£¬»òÕßÔÚPOST¡¡ÆÚ¼äͨ¹ý±ê×¼ÊäÈë¡£µ«¡¡CGI¡¡³ÌÐòͨ¹ý±ê×¼Êä¡¡

³ö·¢ËÍ×Ô¼ºµÄÊä³ö£¬Õâͨ³£ÊÇÓÃC¡¡³ÌÐòµÄ¡¡printf£¨£©¡¡ÃüÁîʵÏֵġ£ÄÇôÕâ¸öÊä³öµ½ÄÄÀïÈ¥ÁËÄØ£¿Ëü»Øµ½ÁËWeb¡¡

·þÎñÆ÷£¬ÓÉ·þÎñÆ÷¾ö¶¨¸ÃÈçºÎ´¦ÀíËü¡£·þÎñÆ÷×÷³ö¾ö¶¨µÄÒÀ¾ÝÊÇcontent¡­type¡¡£¨ÄÚÈÝÀàÐÍ£©Í·Êý¾Ý¡£ÕâÒâζ¡¡

׿ÙÈç¡¡content¡­type¡¡Í·²»ÊÇËü¿´µ½µÄµÚÒ»¼þ¶«Î÷£¬¾Í²»ÖªµÀ¸ÃÈçºÎ´¦ÀíÊÕµ½µÄÊý¾Ý¡£Òò´Ë£¬ÎÒÃÇÎÞÂÛÈçºÎÒ²¡¡

ҪʹËùÓÐCGI¡¡³ÌÐò¶¼´Ó¡¡content¡­type¡¡Í·¿ªÊ¼Êä³ö¡£¡¡¡¡

ÔÚÄ¿Ç°ÕâÖÖÇé¿öÏ£¬ÎÒÃÇÏ£Íû·þÎñÆ÷½«ËùÓÐÐÅÏ¢¶¼Ö±½Ó·´À¡»Ø¿Í»§³ÌÐò£¨Ò༴ÎÒÃǵijÌÐòƬ£¬ËüÃÇÕýÔڵȺò¡¡

¸ø×Ô¼ºµÄ»Ø¸´£©¡£ÐÅÏ¢Ó¦¸ÃÔ­·â²»¶¯£¬ËùÒÔcontent¡­type¡¡ÉèΪtext/plain¡¡£¨´¿Îı¾£©¡£Ò»µ©·þÎñÆ÷¿´µ½Õâ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡572¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡574¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¸öÍ·£¬¾Í»á½«ËùÓÐ×Ö´®¶¼Ö±½Ó·¢»¹¸ø¿Í»§¡£ËùÒÔÿ¸ö×Ö´®£¨Èý¸öÓÃÓÚ³ö´íÌõ¼þ£¬Ò»¸öÓÃÓڳɹ¦µÄ¼ÓÈ룩¶¼»á¡¡

·µ»Ø³ÌÐòƬ¡£¡¡¡¡

ÎÒÃÇÓÃÏàͬµÄ´úÂëÌí¼Óµç×Óº¯¼þÃû³Æ£¨Óû§µÄÐÕÃû£©¡£µ«ÔÚCGI¡¡½Å±¾µÄÇé¿öÏ£¬²¢²»´æÔÚÎÞÏÞÑ­»·¡ª¡ª³ÌÐò¡¡

Ö»ÊǼòµ¥µØÏìÓ¦£¬È»ºó¾ÍÖжϡ£Ã¿´ÎÓÐÒ»¸öCGI¡¡ÇëÇóµÖ´ïʱ£¬³ÌÐò¶¼»áÆô¶¯£¬¶ÔÄǸöÇëÇó×÷³ö·´Ó¦£¬È»ºó×Ô¡¡

Ðйرա£ËùÒÔCPU¡¡²»¿ÉÄÜÏÝÈë¿ÕµÈ´ýµÄÞÏÞξ³µØ£¬Ö»ÓÐÆô¶¯³ÌÐòºÍ´ò¿ªÎļþʱ²Å´æÔÚÐÔÄÜÉϵÄÒþ»¼¡£Web¡¡·þ¡¡

ÎñÆ÷¶ÔCGI¡¡ÇëÇó½øÐпØÖÆʱ£¬ËüµÄ¿ªÏú»á½«ÕâÖÖÒþ»¼¼õÇáµ½×îµÍ³Ì¶È¡£¡¡¡¡

ÕâÖÖÉè¼ÆµÄÁíÒ»¸öºÃ´¦Ê

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨1£©

Äã¿ÉÄÜϲ»¶µÄ