¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

½ñÀÒ/¼ÂÎã¤Ç¿È¤Ë¤Ä¤±¤ë¡ªMySQL¡ßPHP¤Ë¤è¤ëËܳÊWeb¡ÝDB¥·¥¹¥Æ¥àÆþÌç ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×(No.2)


2006-09-20¡Á

½ñÀÒ¤ÎWeb¥Ú¡¼¥¸
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1730-7

chap3

http://localhost:50000/sample/WebDB-sample/chap3/sample1/index.html

sample1

formÆþÎÏ¥Ú¡¼¥¸¢ª³Îǧ¥Ú¡¼¥¸¢ªÅÐÏ¿´°Î»¥Ú¡¼¥¸ ¤Î´ðËÜ
ÆþÎÏÃͤΥÁ¥§¥Ã¥¯¤Ï̵¤·

  1. index.html ... formÆþÎÏ¥Ú¡¼¥¸
  2. confirm.php ... ³Îǧ¥Ú¡¼¥¸
    1. hidden¤òÍѤ¤¤¿ÆþÎÏÃͤμõ¤±ÅϤ·ÊýË¡
  3. regist.php ... ÅÐÏ¿´°Î»¥Ú¡¼¥¸
    1. MySQL¥¢¥¯¥»¥¹ÊýË¡

sample2

http://localhost:50000/sample/WebDB-sample/chap3/sample2/index.html

  1. index.html ... formÆþÎÏ¥Ú¡¼¥¸
  2. confirm.php ... ³Îǧ¥Ú¡¼¥¸
    ¼¡¤Î£²¥Õ¥¡¥¤¥ë¤òrequire¤·¤Æ¤¤¤Þ¤¹¡£
    1. function.php ... gpc_stripslashes, gpc_addslashes, secho¤ÎÄêµÁ
    2. check_values.php ... ³ÆpostÃͤò¥Á¥§¥Ã¥¯¤·¡¢¥¨¥é¡¼¤ÎÏ¢ÁÛÇÛÎó($error['fname']Åù)¤òºîÀ®¤¹¤ë½èÍý
      Shift JIS¤ÇPHP¥³¡¼¥É¤ò½ñ¤¯¾ì¹ç¡¢ ¡Ömb_regex_encoding("Shift_JIS"); ¡×¤È½ñ¤¤¤Æ¤ª¤«¤Ê¤¤¤È¡¢¡Ömb_ereg("^[¥¡-¥ö¡¼]+$", $fname)¡×¤È¤¤¤Ã¤¿Ê¸¤Ç¡¢ ¡Ömbregex compile err: empty char-class¡×¤È¤¤¤Ã¤¿·Ù¹ð¤¬½Ð¤ë¾ì¹ç¤¬Í­¤ê¤Þ¤¹¡£ ¡Ê¡Ö¡¼¡×¤ÎShift JIS¥³¡¼¥É¤Ï¡¢0x815B¤Ç¡¢¡Ö5B¡×¤¬¡Ö[¡×¤Î¤¿¤á·Ù¹ð¤¬½Ð¤Þ¤¹¡Ë
  3. regist.php ... ÅÐÏ¿´°Î»¥Ú¡¼¥¸
    1. ºÆ¥Á¥§¥Ã¥¯¤Î¤¿¤á¡¢¾å¤Î£²¥Õ¥¡¥¤¥ë¤òrequire¤·¤Æ¤¤¤Þ¤¹¡£
    2. ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ò¥Æ¥ó¥×¥ì¡¼¥È¤È¤·¤¿¥á¡¼¥ëÁ÷¿®¥µ¥ó¥×¥ë¤Ç¤¹¡£
      1. mail.txt ... regist.php¤«¤é»ÈÍѤµ¤ì¤ë¡¢ÅÐÏ¿´°Î»¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¤Ç¤¹¡£
  4. downlist.php ... ¥À¥¦¥ó¥í¡¼¥É²èÌÌ
    1. MySQL¤ÇÁí·ï¿ô¤òÄ´¤Ù¤Æ¡¢É½¼¨¤·¤Æ¤¤¤Þ¤¹¡£
    2. <a href="download.php?...">1-100</a>¤È¤¤¤Ã¤¿¡¢¤É¤ÎÈϰϤò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¤«¤òɽ¤¹¥ê¥ó¥¯¤Îµ­½ÒÊýË¡¤¬Ê¬¤«¤ê¤Þ¤¹¡£
    3. download.php ... tabʬ³ä¥Ç¡¼¥¿¤Î¥À¥¦¥ó¥í¡¼¥É¥×¥í¥°¥é¥à
      1. ¥Ö¥é¥¦¥¶¤Çtab¥Ç¡¼¥¿¤Î¥À¥¦¥ó¥í¡¼¥É¥À¥¤¥¢¥í¥°¤ò½Ð¤¹ÊýË¡¤¬Ê¬¤«¤ê¤Þ¤¹¡£
      2. MySQL¤Ç»ØÄêÈϰϤΥǡ¼¥¿¤ò¼èÆÀ¤¹¤ëÊýË¡¤¬Ê¬¤«¤ê¤Þ¤¹¡£

sample3

http://localhost:50000/sample/WebDB-sample/chap3/sample3/index.html

  1. index.html ... formÆþÎÏ¥Ú¡¼¥¸
    sample2¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¹¡£
  2. index.php ... formÆþÎÏ¥Ú¡¼¥¸PHPÈÇ
    POSTÃͤò¼õ¤±¼è¤ê¡¢formÁ°²óÆþÎÏÃͤòÉüµ¢¤·¤Þ¤¹¡£
    index.html¤È¼¡¤Î£³ÅÀ¤¬°ã¤¤¤Þ¤¹¡£
    1. <?php
      session_start();
      require("function.php");
      require("check_values.php");
      $_SESSION['register'] = 0;
      ?>
    2. <form method="post" action="confirm.php?<?=SID?>">
    3. <input type="text" name="name" value="<?php secho($name) ?>" /><br />
  3. confirm.php ... ³Îǧ¥Ú¡¼¥¸
    ¼¡¤Î¤è¤¦¤Ë¥»¥Ã¥·¥ç¥ó¤òÍѤ¤¤¿¥»¥­¥å¥ê¥Æ¥£¥³¡¼¥É¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£
    1. session_start();
    2. $_SESSION['register']¤¬Ì¤ÄêµÁ¤Þ¤¿¤Ï£°°Ê³°¤Î¾ì¹ç¡¢error.html¤òɽ¼¨¤·¤Þ¤¹¡£
    3. ¡ÖÌá¤ë¡×¤ò²¡¤·¤¿¤È¤­¤Ë¡¢¡Öaction="index.php?<?=SID?>"¡×¤ò¸Æ¤Ó½Ð¤·¡¢ÆþÎÏÃͤòÊÝ»ý¤·¤¿ÆþÎϲèÌ̤òÉüµ¢¤µ¤»¤Æ¤¤¤Þ¤¹¡£
  4. regist.php ... ÅÐÏ¿´°Î»¥Ú¡¼¥¸
    ¼¡¤Î¤è¤¦¤Ë¥»¥Ã¥·¥ç¥ó¤òÍѤ¤¤¿¥»¥­¥å¥ê¥Æ¥£¥³¡¼¥É¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£
    1. session_start();
    2. $_SESSION['register']¤¬Ì¤ÄêµÁ¤Þ¤¿¤Ï£°°Ê³°¤Î¾ì¹ç¡¢error.html¤òɽ¼¨¤·¤Þ¤¹¡£
    3. MySQL¤Ç¥Æ¡¼¥Ö¥ë¤ò¥í¥Ã¥¯¤·¤Æ¤¤¤Þ¤¹¡£
      mysql_query("lock tables members write");
    4. Ʊ¤¸ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿ºÑ¤ß¤Î¾ì¹ç¡¢·Ù¹ð¤òɽ¼¨¤·¤Æ¡¢ÅÐÏ¿¤òÈ´¤±¤Þ¤¹¡£
    5. MySQL¤ËÅÐÏ¿À®¸ù¸å¡¢¥»¥Ã¥·¥ç¥ó¤ÎÃͤò£²¤Ë¤·¤Æ¤¤¤Þ¤¹¡£

chap4

chap4.sql.txt

sample1

http://localhost:50000/sample/WebDB-sample/chap4/sample1/index.html

sample2

http://localhost:50000/sample/WebDB-sample/chap4/sample2/index.html

chap5

sample1

³¤³°Î¹¹ÔÀèÅêɼ¥·¥¹¥Æ¥à
http://localhost:50000/sample/WebDB-sample/chap5/sample1/index.html

  1. index.html
  2. index.php
  3. result.php

sample2

http://localhost:50000/sample/WebDB-sample/chap5/sample2/index.php

  1. index.php
  2. result.php

sample3

http://localhost:50000/sample/WebDB-sample/chap5/sample3/index.php

  1. index.php
  2. result.php
  3. 1¡Á7.png

sample4

  1. 1.png

ÊÙ¶¯¤·¤¿¤³¤È

  1. <input ... /><br />¤Î¤è¤¦¤Ë¡¢ÊĤ¸¤Ê¤¤¥¿¥°¤ÎºÇ¸å¤Ï¡¢É¬¤º¥¹¥é¥Ã¥·¥å¤òÆþ¤ì¤ë¡£
  2. PHP¤Ç¤Ïʸ»úÎó¤ÎÀÚ¤ìÌܤ¬Ê¬¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¢Ê¸»úÎó¤òÏ¢·ë¤¹¤ë¥É¥Ã¥È¤ÎÁ°¸å¤Ï¡¢¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤¿¤Û¤¦¤¬¸«¤ä¤¹¤½¤¦¡£
  3. SERVER_NAME¤ÈHTTP_HOST¤ÎÈæ³Ó
    $_SERVER["SERVER_NAME"];localhostÃͤò¼èÆÀ¤·¤Ê¤ó¤é¤«¤Î·Á¤ÇÍøÍѤ¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£¥ê¥¯¥¨¥¹¥È»þ¤Î host:〜 ¤ò»È¤¦¤â¤Î¤Î¡¢»ØÄ̵꤬¤¤¾ì¹ç¤Ï httpd.confÅù¤Ëµ­½Ò¤·¤¿ServerName¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤¬¥Ç¥Õ¥©¥ë¥È¤Ç»È¤ï¤ì¤Þ¤¹¡£htmlentities¤Ë¤è¤Ã¤Æ¥¨¥¹¥±¡¼¥×¤µ¤ì¤ë¤è¤¦¤Ç¤¹¡£
    $_SERVER["HTTP_HOST"];localhost:50000¥ê¥¯¥¨¥¹¥È¥Ø¥Ã¥À¡¼¤ÎÃͤò¤½¤Î¤Þ¤Þ¼è¤ê¤¿¤¤¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£¥ê¥¯¥¨¥¹¥È»þ¤Ë host:〜 ¤Ç»ØÄꤷ¤¿Ãͤ¬ÊÖ¤µ¤ì¤Þ¤¹¡£