膃・53腴PHP・・TML

PHP・・TML・・訓・・≫・・—・・„・障™鐚šPHP・・TML・’・Ÿ・・—・HTML・・・HP・・€篆・ ・•・Œ・‹・…・宴Œ荐˜菴違•・Œ・・„・障™・‚ 篁ヤ・・・AQ・’茯㏍‚€・・・€・・†・„・c・A HREF="language.variables.external.html" > PHP・・・・・‹・‰・ャ‚‹紊‰・乿/A >・’・–緇—・™・‹・‹・・’茯㏍‚“・сŠ・・“・・・‡荀・с™・‚ ・“・・ƒž・‹・ャ‚≪ƒ・・・“・・ƒˆ・”・ƒ・・・–≪™・‹・ˆ・„箴‹・Œ・‚・Š・障™・‚ register_globals・・„・潟™・‹・・“・・・‚‚ 羈・„・’・•・c・・・•・„・‚

1. ・•・・ƒ若ƒ・‹・‰・・‚・—・・・RL・‹・‰・ゃ‚’羝<™・翫ˆ・・・・†・„・cŸ・・ƒ潟‚潟ƒ・ ・‰/・‡・潟ƒ若ƒ‰・Œ綽…荀・・・с™・‹鐚Ÿ
2. <input type="image">・帥‚違‚’篏帥Š・†・・—・・„・‹・・с™・Œ・紊‰・・ $foo.x・・foo.y・Œ篏帥ˆ・障›・“・‚・・†・™・Œ・違‚ˆ・„・・с™・‹鐚Ÿ
3. HTML・•・・ƒ若ƒ・ч…・—・’篏睡”・™・‹・・・・†・™・Œ・違‚ˆ・„・с™・‹鐚Ÿ
4. "select multiple"・帥‚違ч御Šž・•・Œ・Ÿ・・・・・・œ・’・–緇—・™・‹・・・・†・™ ・Œ・違‚ˆ・„・с™・‹鐚Ÿ
5. Javascript・‹・‰PHP・・・・違‚’羝<™・・・・

1. ・•・・ƒ若ƒ・‹・‰・・‚・—・・・RL・‹・‰・ゃ‚’羝<™・翫ˆ・・・・†・„・cŸ・・ƒ潟‚潟ƒ・ ・‰/・‡・潟ƒ若ƒ‰・Œ綽…荀・・・с™・‹鐚Ÿ

・・ƒ潟‚潟ƒ若ƒ‰・Œ・荀・・・‚‹・顔≪・„・・ゃ‹・‚・Š・障™・‚ string $data・・„・†・・ƒ潟‚潟ƒ若ƒ‰・•・Œ ・・„・・„・‡絖—・—・‡・若‚帥‚’羝<™・翫ˆ・・ゃ„・・€ƒ・ˆ・・帥‚‹・・・

  • HTML・’・š・˜・・検・™・翫ˆ鐚š ・‡絖—・—・・・・・‚ˆ・†・・€ゃŒ・・障‚Œ・‹・‹・†・‹ ・‰・・„・・с€・‡・若‚帥・SPAN CLASS="emphasis" >綽…・šhtmlspecialchars・’茵Œ・„・ ・€・–・・‚・‚・ƒ若ƒˆ・у›蚊障・‘・Œ・違・‚Š・障›・“・‚

  • URL・’・š・˜・・検・™・翫ˆ: URL・・„・・ゃ‹・・ƒ‘・若ƒ„・‹・‰・・Š腴‹・<障™・‚ ・“・・ƒ‡・若‚帥‚’・・・ƒ‘・若ƒ„・・†・<・・・ゃс‚・‹・・В・ˆ・•・›・Ÿ・„・・‚‰・違€ urlencode()・с‚・ƒ潟‚潟ƒ若ƒ‰・—・・‘・Œ ・違・‚Š・障›・“・‚

箴‹ 53-1. HTML・・idden荀膣

<?php
    
echo "<input type=hidden value=\"" . htmlspecialchars($data) . "\">\n";
?>

羈・„: $data・’urlencode()・’・—・・ ・・„・‘・障›・“・‚・・œ・・‚‰・・・・・罐㏍・ƒ–・・‚・‚吟・算・•・Œ・・„・‹・‹・‰・・ ・™・‚筝€・・・™・Š・—・・„・‹・・・・ƒ–・・‚・‚吟・③・—・・“・・‡・†・’茵Œ・c・ ・Œ・障™・‚・Ÿ・・・“・・‡・†・・ƒ<‚純ƒƒ・‰(GET・„POST)・Œ篏•・с‚・‹・‹・・‹・‹ ・・‰・š・・・・・Œ・‹・・・„・†・“・・・・・’・ゃ‘・・・・•・„・‚・“・・‡・†・・・ ・ャ・・・ET・・‚・‚・‚鴻ƒˆ・・・・・‘・・・‚‹・с—・‡・†・‚・・œ・・‚‰POST・・ ・・‚・‚鴻ƒˆ・・†…絎鴻・€š絽悟›・・Е・Œ・‹・“・・・„<„・‹・‰・с™・‚

箴‹ 53-2. ・・ƒ若‚吟・‚ˆ・c・隈・†・™・‹・‡・若‚扖/B >

<?php
    
echo "<textarea name=mydata>\n";
    echo
htmlspecialchars($data)."\n";
    echo
"</textarea>";
?>

羈・„: ・–・・‚・‚吟・‚・‚鴻‚宴ƒ若ƒ—・•・Œ・Ÿ・激ƒ潟ƒœ・・‚’茹i‡ˆ・™・‹・・с€data・・„・潟— ・Ÿ・・Š・Š・・;腓冴•・Œ・障™・‚

・•・・ƒ若ƒ・・†…絎鴻‚’・篆<™・‹・・・GET・‹POST・‹・・‹・‹・・‰・šdata・・ƒ– ・・‚・‚吟・‚ˆ・c・RL・・ƒ潟‚潟ƒ若ƒ‰・•・Œ・PHP・・‚ˆ・c・RL・‡・潟ƒ若ƒ‰・•・Œ・・ ・™・‚荀・・€URL・・ƒ潟‚潟ƒ若ƒ‰/・‡・潟ƒ若ƒ‰・’・・ˆ†・ц・・†綽…荀・・・・・“・Œ・‰ ・・‡・†・・…・・‡・‹•・„・・・・・Œ・‹・・・・・†・“・・с™・‚

箴‹ 53-3. URL筝㏍・翫ˆ

<?php
    
echo "<a href=\"" . htmlspecialchars("/nexpage.php?stage=23&data=" .
        
urlencode($data)) . "\">\n";
?>

羈・„: ・“・・・・с・€絎Ÿ・・ET・・‚・‚・‚鴻ƒˆ・’・御“・—・・„・障™・‚・“・・Ÿ・・data ・’・‹・•・・A HREF="function.urlencode.html" >urlencode()・™・‹綽…荀・Œ・‚・Š・障™・‚

羈・„: ・・・・RL・’htmlspecialchars()・™・‹綽…荀・Œ・‚・Š・障™・‚ ・・œ・・‚‰・・“・・RL・・TML・・alue絮ž・с・—・・‰宴‚・Œ・‹・‹・‰・с™・‚・“・・ ・翫ˆ・・€・–・・‚・‚吟・障šhtmlspecialchars()・•・Œ・Ÿ・‡・・ ・帥‚’・ƒ・・ˆ祉—・・・Œ・‹・‰URL・’羝<—・障™・‚URL・・ urlencode()・•・Œ・・„・‹・・с€PHP・・“・Œ・’罩c— ・茹i‡ˆ・™・‹・“・・Œ・с・障™・‚

URL筝㏍・VAR CLASS="literal" >&・Œ&amp; ・・舟・・›・ˆ・‰・Œ・・„・‹・“・・・・・ャ・с—・‡・†・‚・‚・—・‚・・Ÿ・Œ・“・Œ・’綽˜ ・Œ・・‚‚・・祉・‚“・・・ƒ–・・‚・‚吟・…ƒ・・ˆ祉—・・・Œ・障™・Œ・綽…・š・・†・—・・ ・・Œ・‹・・・™・Š・障›・“・・с€URL・Œ・•・„・・・・眼•・Œ・‹・‚・・с・・・‚‚ URL・・A HREF="function.htmlspecialchars.html" >htmlspecialchars()・•・Œ・‹・鴻 ・с™・‚

2. <input type="image">・帥‚違‚’篏帥Š・†・・—・・„・‹・・с™・Œ・紊‰・・ $foo.x・・foo.y・Œ篏帥ˆ・障›・“・‚・・†・™・Œ・違‚ˆ・„・・с™・‹鐚Ÿ

篁ヤ・・・‚ˆ・†・・‚帥‚違‚’篏帥ˆ・違€罔™羣–・・ƒœ・帥ƒ潟・撮・・Š・・”糸ƒ・’篏睡”・—・・ ・•・・ƒ若ƒ・’・篆<™・‹・“・・Œ・с・障™鐚š
<input type="image" src="image.gif" name="foo">
・・ƒ若‚吟Œ・糸ƒ・・・“・‹・’・・ƒ・ƒƒ・・™・‹・・€・・・ƒ•・・ƒ若ƒ・・†…絎鴻ŭoo.x ・・oo.y・・„・†2・ゃ・・・違Œ菴遵Š・•・Œ・・泣ƒ若ƒ・・€篆<•・Œ・障™・‚

PHP・с・foo.x・・foo.y・・„・†・・・・・・医・・—・・③・—・・・„・・с€・・ ・•・„・âfoo_x・・foo_y・・„・†・・・・・・›・•・Œ・障™・‚荀・・€・”・・‚・ƒ‰・Œ・・ ・潟ƒ€・若‚鴻‚潟‚≪・舟・・›・ˆ・‰・Œ・‹・・・・・†・“・・с™・‚ So, you'd access these variables like any other described within the section on retrieving variables from outside of PHP. For example, $_GET['foo_x'].

3. HTML・•・・ƒ若ƒ・ч…・—・’篏睡”・™・‹・・・・†・™・Œ・違‚ˆ・„・с™・‹鐚Ÿ

・•・・ƒ若ƒ・・†…絎鴻‚’PHP・鴻‚・ƒ・ƒ—・ˆ・・A HREF="language.types.array.html" >・・—・・—・・—・‘・–・‹・・・€ <input>, <select> or <textarea>・・„・cŸ荀膣・・ame・’篁・ 筝‹・・‚ˆ・†・・Œ‡絎š・—・障™鐚š
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
紊‰・医・・œ€緇Œ・・‚・‹・–・・‚宴ƒƒ・ˆ・・絵・・—・・・・•・„・‚・“・Œ・・‚ˆ・Š・・•・・ƒ・ ・・・†…絎鴻Œ・・—・・—・・‰宴‚・Œ・障™・‚・違・‚‹荀膣・・Œ・˜・・・’・ゃ‘・‹・“・・ ・ц・膣・’・・—・・‚違ƒ・ƒ若ƒ—・†・‘・™・‹・“・・Œ・с・障™・‚
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyOtherArray[]">
<input name="MyOtherArray[]">
筝Š荐˜・・TML・・翫ˆ・MyArray・・yOtherArray・・„・†2・ゃ・…・—・Œ・Ÿ・・•・Œ・ PHP・鴻‚・ƒ・ƒ—・ˆ・・€篆<•・Œ・障™・‚・障Ÿ・・・—・・‰劫・・・‚㏍ƒ若‚’荐㊤・・™・‹・“ ・・‚‚・с・障™・‚
<input name="AnotherArray[]">
<input name="AnotherArray[]">
<input name="AnotherArray[email]">
<input name="AnotherArray[phone]">
・“・・翫ˆ・・・—AnotherArray・・‚㏍ƒ若・, 1, email・・—・・hone・・・‚Š・障™・‚

羈・„: HTML・・…・—・・‚㏍ƒ若‚’・‡絎š・™・‹・‹・・†・‹・・‡・”宴с™・‚・㏍ƒ若‚’・‡絎š・—・・‹・・ ・Ÿ・翫ˆ・・ƒ•・・ƒ若ƒ・・障‚Œ・‹・†・・・•・激Œ・ゃ‘・‰・Œ・障™・‚・€・・・・・・・€ ・㏍ƒ若・, 1, 2, 3・・・‚Š・障™・‚

・・—・∽•乿/A >・・ PHP・・・・・‹・‰・ャ‚‹紊‰・・ ・‚・‚・с—・・・・•・„・‚

4. "select multiple"・帥‚違ч御Šž・•・Œ・Ÿ・・・・・・œ・’・–緇—・™・‹・・・・†・™ ・Œ・違‚ˆ・„・с™・‹鐚Ÿ

"select multiple"・帥‚違‚’篏帥†・・€・・ƒ若‚吟・ƒ・‚鴻ƒˆ・‹・‰茲‡・違・…・・‚’・・ ・ž・™・‹・“・・Œ・с・‹・ˆ・†・・・‚Š・障™・‚・御Šž・•・Œ・Ÿ・…・・・ƒ•・・ƒ若ƒ・・ action・фŒ‡絎š・•・Œ・Ÿ・・潟ƒ‰・・・検・•・Œ・障™・‚・蕁Œ・・€・“・Œ・‰・・€ゃŒ・・・ ・Œ・˜・・・ф検・•・Œ・‹・“・・с™・‚・ゃ障‚Š・
<select name="var" multiple>
・御Šž・•・Œ・Ÿ・・Œ・ž・Œ・・…・・・ction・・ƒ・潟ƒ‰・・・・・・‚ˆ・†・・検・•・Œ・障™鐚š
var=option1
var=option2
var=option3
・・Œ・ž・Œ・・…・・・‰・・・・乿VAR CLASS="varname" >$var・・€ゃ‚’筝Š・吾・—・・ ・—・障„・障™・‚・“・・•蕁Œ・’茹f浦・™・‹・・・€PHP・・・•・・ƒ若ƒ・・€ゃ‚’・・—・・™ ・‹"罘Ÿ・純‚’篏帥„・障™・‚篁ヤ・・・‚ˆ・†・・™・‹・・‚ˆ・„・с—・‡・†・‚
<select name="var[]" multiple>
・“・†・™・Œ・仾HP・・VAR CLASS="varname" >$var・’・・—・・—・・‰宴†・ˆ・†・・Ÿャ‚‰ ・›・‹・“・・Œ・с・・„・…・・・alue・・€ゃ・…・—・・・膣・・—・ΐar[]・・申・・• ・Œ・障™・‚・€・・・…・・・VAR CLASS="varname" >$var[0]・・・‚Š・罨<・…・・・ $var[1]...・・„・†・ˆ・†・・・‚Š・障™・‚ count()・∽•違‚’篏帥ˆ・育御Šž・•・Œ・Ÿ・…・・・•違‚’・ャ‚‹・“ ・・Œ・с・障™・‚・障Ÿ・‚・—綽…荀・・‚‰sort()・∽•違‚’篏帥・ ・・‚純ƒ若ƒˆ・’茵Œ・†・“・・‚‚・с・障™・‚

JavaScript・’篏帥c・„・‹・翫ˆ・・•・・ƒ若ƒ荀膣・・・膣・・’篏帥c・荐恰絵鐚š document.myform.myelement.value膈‰・・・・å・≪‚・‚祉‚鴻—・ˆ・†・・™・‹・・€ 荀膣・・・・障‚Œ・‹[]・Œ・蕁Œ・・・‚‹・“・・Œ・‚・‹・・・ 羂—・’・ゃ‘・・・・•・„・‚・“・・翫ˆ・・€・医・・ц;・•・Œ・‹・•・・ƒ若ƒ荀膣・・D・’ 篏睡”・™・‹・‹・・激ƒ潟‚違ƒ・‚・‚・ƒ若ƒˆ・ц・膣・・’・蚊‚“・сƒ•・・ƒ若ƒ荀膣・・…・—・・ ・ゃƒ潟ƒ‡・ƒ・・‚鴻・—・・‚≪‚・‚祉‚鴻—・・・・•・„・‚箴‹・ˆ・違€篁ヤ・・・‚ˆ・†・・—・障™鐚š
variable = documents.forms[0].elements['var[]'];

5. Javascript・‹・‰PHP・・・・違‚’羝<™・・・・

Javascript・・・・・€š・・・・・ƒ・‚ゃ‚≪ƒ潟ƒˆ・泣‚ゃƒ‰・€茵“・с‚・Š筝€・娎HP・・・・・€š・・・ ・泣ƒ若ƒ・若‚泣‚ゃƒ‰・€茵“・с™・‚・障ŸHTTP・・・鴻ƒ†・若ƒˆ・・‚鴻À・—・㏍ƒˆ・潟ƒ・с™・‚ ・・・Ÿ・・・“・・・・ゃ・・茯ž・・ƒ€・ゃƒ・‚・ƒˆ・・・・違‚’・掩œ‰・™・‹・“・・Œ・с・障›・“・‚

・—・‹・—・・Œ・‰・・“・・・・ゃ・・茯ž・・–“・у・・違‚’羝<™・“・・・・ƒ純с™・‚ 筝€・ゃ・–号・・・HP・・・膩’・ĺavascript・・‚潟ƒ若ƒ‰・’・Ÿ・・—・ ・–・・‚・‚吟・‡・‹•・„・・ƒ・ƒ•・・ƒƒ・激ƒワ・・・㏍ƒ若ƒ‰鐚‰・•・›・‹・“・・с™・‚ 篁ヤ・・・・・・障•・・・Œ・с€PHP・・”脂≪・・・•・・・・’茯茘˜・•・›・・„・障™・‚ ・“・Œ・・€š絽吾・‚・ƒ・‚ゃ‚≪ƒ潟ƒˆ・泣‚ゃƒ‰・с—・‹・с・・„・“・・с™・‚

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //   -- post variables will need to handled differently)

  echo "<script language=\"javascript\">\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>