【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/19(水) 03:33:51ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0153nobodyさん
2007/12/22(土) 15:54:32ID:???PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw
0154nobodyさん
2007/12/22(土) 15:54:49ID:???evalで実行してます。
(計算機のようなものです)
でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。
なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。
0155nobodyさん
2007/12/22(土) 15:55:21ID:???動物本でも読んだら?
0156nobodyさん
2007/12/22(土) 16:00:36ID:???で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど
0158nobodyさん
2007/12/22(土) 16:23:32ID:???自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。
簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
http://jp2.php.net/tokenizer
0160nobodyさん
2007/12/22(土) 18:52:20ID:???>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0161148
2007/12/22(土) 19:01:21ID:???しかし、ソースを打ちたい。。
>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。
お二方、お礼が遅くなりすみませんでした。ありがとうございました。
0164nobodyさん
2007/12/23(日) 01:20:47ID:???0165nobodyさん
2007/12/23(日) 01:28:41ID:???というか違う事が書いてあったら困る。
0166nobodyさん
2007/12/23(日) 02:11:39ID:???もう少しで新しいバージョンのが出るらしい。
今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。
もったいない。
この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style,
K&R style のそれぞれの説明とかがある。
あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」
なんて章があって、SAPIで使ってる構造体から説明してる。
データベースマッピングの複数のデザインパターンの説明もあって、
The Active Record Pattern とかいろいろ書いてある。
もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、
キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。
なんて言うか、本格的。
なんで日本語訳されてないんだろう。
0167nobodyさん
2007/12/23(日) 03:32:32ID:KIQSv7/M<?
$hoge = 'a';
〜インクルードここまで
$hoge = 'b';
?>
[include.php]
<?
include 'a.php';
echo $hoge;
?>
$hoge = a にしたい場合、ifで制御する方法はありませんか?
include_break();みたいな
0168167
2007/12/23(日) 03:33:34ID:KIQSv7/M0169nobodyさん
2007/12/23(日) 04:06:10ID:???0170nobodyさん
2007/12/23(日) 04:16:30ID:???わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ
0171nobodyさん
2007/12/23(日) 04:57:03ID:???htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。
process('test',false)としてfunction test($values)と受け取るのですが、
具体的にvaluesが何の値を受け取っているのかがよく分からないのです。
下のコードでいうと
function mail($values)
{
mb_send_mail(??????????????);
}
のところで、「valuesって一体何?」と思うわけです。
直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、
0172nobodyさん
2007/12/23(日) 04:57:57ID:???$form->addElement('header',NULL,'お問い合わせ');
$form->addElement('text','name','名前');
$form->addElement('text','mail','メールアドレス');
$form->addElement('text','subject','件名');
$form->addElement('text','body','本文');
$form->addElement('submit','sbm','送信');
$form->addRule('name','名前を入力してください。','required','client');
$form->addRule('mail','メールアドレスを入力してください。','required','client');
$form->addRule('mail','メールアドレスを正しく入力してください。','email','client');
$form->addRule('body','本文を入力してください。','required','client');
$form->setRequiredNote('<font color="Red">*</font> 必須項目です。');
$form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。');
if($form->validate())
{
$form->process('mail',FALSE);
}
else
{
$form->display();
}
function mail($values)
{
mb_send_mail(??????????????);
}
?>
0173nobodyさん
2007/12/23(日) 05:00:50ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0174nobodyさん
2007/12/23(日) 06:07:25ID:???<data>
aaa
<p>bbb</p>
ddd
</data>
てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ
0175nobodyさん
2007/12/23(日) 06:23:36ID:/N04QiDASimpleXMLElementで、
<data>
aaa
<p>bbb</p>
ddd
</data>
てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ
1つ思いついたのは、
$dom = dom_import_simplexml($xml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
とやる。
ってこれじゃーSimpleXMLの意味がない
0176nobodyさん
2007/12/23(日) 07:02:39ID:???単独のテキストノードなの?
aaa〜dddまでひとつのノードじゃないかって気がするんだけど。
<data></data>しかないじゃん。
さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、
"aaa"や"ddd"へのアクセスってのとの関連がよくわからん。
0177nobodyさん
2007/12/23(日) 07:13:23ID:???<?xml version='1.0' standalone='yes'?>
<data>
<content>aaa</content>
<content><p>bbb</p></content>
<content>ddd</content>
</data>
ってことになるのかな。
$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。
後半意味が分からんのは変わらんので、
http://jp2.php.net/manual/ja/ref.simplexml.php
ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。
あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。
0178nobodyさん
2007/12/23(日) 07:19:03ID:???ここ紛らわしいかな。
$xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る
$content0 = $xml->content[0]; // aaa
$content2 = $xml->content[2]; // ddd
ってことね。
0179175
2007/12/23(日) 07:45:21ID:/N04QiDAaaa
<p>bbb</p>
ddd
</data>
この状態でXMLとして正しくてDOMで厳密にいうと、
Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。
2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。
んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。
$sXML = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
ってやると、結果は
<data>zzz<p>bbb</p>
ddd
</data>
となる。
'zzz'の部分を"\nzzz\n"とすれば、
<data>
zzz
<p>bbb</p>
ddd
</data>
こうなる。
0180175
2007/12/23(日) 07:49:19ID:/N04QiDAちゃんと書くとこう。
<?
$xml = <<<XML
<data>
aaa
<p>bbb</p>
ddd
</data>
XML;
$sXml = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
echo $sXml->asXML();
?>
0181nobodyさん
2007/12/23(日) 10:36:41ID:???というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に
持ち込めない状況です
$address1_PD = $callData->makeKenPd("address1",$address1,1);
(↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします)
echo <<<DOC
<select name="address1">
$address1_PD;
</select>
DOC;
とやってもうまくいきません $address1_PD = print($callData〜 なども
試したんですがダメでした
お手数をおかけしますが、回答お願いします php5 apache2 winxpです
0182nobodyさん
2007/12/23(日) 10:37:51ID:6DPIzhWOアドバイスよろしくお願いします
0183nobodyさん
2007/12/23(日) 11:22:06ID:???0184nobodyさん
2007/12/23(日) 11:42:34ID:MvcJEZMNA,B,C,D,E
F,G,H,I,J
K,L,M,N,O
という内容のテキストファイルcount.txtから
$handle = fopen("count.txt", "r");
$data = fgetcsv($handle);
for ($c=0; $c < 5; $c++) {
echo $data[$c];
}
fclose($handle);
というコードを用いてファイル内容を表示させようとしてるのですが
一行目までのABCDEまでしか値を取得出来ません。
二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。
PHPManualを見ても、どの条件が該当するのか分からなかったので
よろしくお願いします。
0185nobodyさん
2007/12/23(日) 11:53:45ID:???http://jp2.php.net/manual/ja/function.fgetcsv.php
例をよく見ろ
0186nobodyさん
2007/12/23(日) 12:12:21ID:MvcJEZMNすみません、質問が悪かったですね。
Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。
0188nobodyさん
2007/12/23(日) 13:01:34ID:MvcJEZMNwhileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。
0189nobodyさん
2007/12/23(日) 13:06:40ID:Dd+txFZ/変換するコマンド、をexecさせたいのですが、
どうしても引数を受け取る関数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが引数のファイル
$hugaがconvertした後のファイル
としたいのですが、失敗してしまいます。
0190nobodyさん
2007/12/23(日) 13:25:53ID:???0191nobodyさん
2007/12/23(日) 13:37:38ID:???FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが
どうしても出力を受け取る第二引数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが変換するファイル名
$hugaが変換後のファイル名
としたいのですが、失敗してしまいます。
0192nobodyさん
2007/12/23(日) 13:39:07ID:j7tEfXX4PHP+PostgresqlまたはPHP+mysqlでシステム
を作ろうと思うのですが、PHP5が認識をしてくれません。
PHP info();でその部分がでてきません。
なんのパッケージをインストールしたらいいのでしょうか?
OSはFedora core4です。
板違いかもしれませんが、よろしくお願いします。
0194nobodyさん
2007/12/23(日) 13:48:06ID:???0195194
2007/12/23(日) 13:48:45ID:???0197nobodyさん
2007/12/23(日) 14:55:33ID:???普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね
0198176
2007/12/23(日) 15:49:32ID:???そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。
くらいしかやっぱりないような気がするけどなあ。
0199nobodyさん
2007/12/23(日) 16:13:53ID:???\naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。
0200nobodyさん
2007/12/23(日) 17:04:49ID:4Xlz9Mdeif (empty($var1) && empty($var2) && empty($var3))
今こんな風になってます。
0201nobodyさん
2007/12/23(日) 17:13:25ID:???0202nobodyさん
2007/12/23(日) 17:52:07ID:???0204175
2007/12/23(日) 18:08:04ID:/N04QiDAXPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ
>>198
それについては、>>179-180に
結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな〜て気はしてたんだ
それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい
0205175
2007/12/23(日) 18:11:12ID:/N04QiDA>>204において
>>175 → >>198
>>198 → >>199
です。
0206nobodyさん
2007/12/23(日) 18:11:19ID:???変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。
0208nobodyさん
2007/12/23(日) 19:56:37ID:Lt3D3ribサンプル集を買ってきたんですが
$select = "select * from hoge where name = $hage";
$query = mysql_query($select);
$result = mysql_result($query,0,0);
などと書いてた事が
$db = new mysqli(-------);
$aa = $db->prepare("select * from hoge where name = ?");
$aa->bind_param("s",$jakld);
みたいな文に変わってるのですが、結局どっちでもいいのでしょうか?
かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。
0210nobodyさん
2007/12/23(日) 20:04:09ID:???mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。
0211nobodyさん
2007/12/23(日) 20:23:13ID:???練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。
0212nobodyさん
2007/12/23(日) 20:24:33ID:2UmaE0fQ0213208
2007/12/23(日) 20:38:27ID:Lt3D3ribありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。
>>211
参考になります。ありがとうございました。
>>212
PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。
0214208
2007/12/23(日) 20:51:51ID:Lt3D3ribmysql4.1移行はmysqliを使わないとだめなんですね。。
サーバーが4.1以降だからmysqli使わないと・・・。
勉強しなおしか・・・。
0215nobodyさん
2007/12/23(日) 21:04:06ID:???0216208
2007/12/23(日) 21:34:13ID:Lt3D3ribえ?
試してみましたがエラーになってしまいます・・。
0217nobodyさん
2007/12/23(日) 21:38:57ID:???エラーを晒さないと解らないな
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
0218208
2007/12/23(日) 21:44:48ID:Lt3D3rib大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。
なんか凡ミスしてるっぽいなぁ・・・。
0219nobodyさん
2007/12/23(日) 21:56:53ID:???0220nobodyさん
2007/12/23(日) 22:15:35ID:???エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。
0221208
2007/12/23(日) 22:18:13ID:Lt3D3ribあなたの言うとおり!
ありがと。
0222nobodyさん
2007/12/23(日) 22:20:25ID:???0223nobodyさん
2007/12/23(日) 23:00:41ID:???0224nobodyさん
2007/12/24(月) 00:05:58ID:???0225nobodyさん
2007/12/24(月) 00:48:15ID:sRF6QhUmfedora core4 php mysql インストールで
ググッてみたんですが、でてきません。
また、今後はどこの板で聞けばいいでしょうか?
後postgresqlも認識してくれないのですが。
php-mysqlと同じでいいのでしょうか。
すいませんが、よろしくお願いします。
このことに関するサイトがあれば教えてください。
0226221
2007/12/24(月) 00:59:41ID:PecBMOMkここじゃだめかしら?
http://www.fedoraz.com/
0228nobodyさん
2007/12/24(月) 02:52:04ID:???その内容が画面に出た際、xxx.incの何行目のエラーとか出た。
試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、
その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。
こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、
面白い天誅の食らわし方ない?
知っている人も結構多い、大きめのサイトなんだが。
0229nobodyさん
2007/12/24(月) 03:11:37ID:???は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから
一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある
0230192です。
2007/12/24(月) 03:19:58ID:sRF6QhUmpostgresqlも使いたいのですが、yumでphp側のインストール
はなにをすればよいでしょうか?
サイトがあれば、サイトはありがたくブックマークしました。
0231208
2007/12/24(月) 05:28:08ID:PecBMOMk「リアル天誅」ウケたwwwww
>>230
ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。
0233nobodyさん
2007/12/24(月) 08:41:55ID:???じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?
0234nobodyさん
2007/12/24(月) 09:30:50ID:P1UMzL+uCSVのフィールド囲み記号は「"」で指定すると、
データの数値で「"」で囲まれていない部分があると読み込んでくれません。
(「フィールド数が合わない」とエラーが出ます。)
もともとこういう仕様なのでしょうか・・・?
それだと、ダウンロードしてきたデータが読み込めなくて大変です
(基本的に「"」で囲まれているのは文字列だけなので)
0235nobodyさん
2007/12/24(月) 09:49:55ID:???やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな
忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ
0236nobodyさん
2007/12/24(月) 10:14:28ID:???詳しくサンクス。参考になった。
最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。
こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。
0237nobodyさん
2007/12/24(月) 10:17:04ID:???一時期毎日のようにサラ金業者から電話に掛かってきた。
テレビで報道されているのを知って、苦情言っても、
謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。
0238nobodyさん
2007/12/24(月) 10:34:27ID:???もっと理性的な説諭の手段がありそうなもんだが。
ま、ただの感想だ。流してくれや
0239192
2007/12/24(月) 11:13:48ID:sRF6QhUmこれがみつかった。
ほかにないかな?
0240192
2007/12/24(月) 11:14:47ID:sRF6QhUm上記のがみつかったのですが、
ほかにもっと詳しく書いてあるサイトはないかな?
知っている人よろしくです。
0241nobodyさん
2007/12/24(月) 11:23:36ID:???どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな
只でさえfcな人がどんだけ見てるのか判らんのだし。
linux板とか当たってみるのもありかも
0242nobodyさん
2007/12/24(月) 12:32:11ID:???ブラウザはFireFoxを使ってるんだけどアドレスバーから「http://localhost/abc.php」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)
どうしたらいいんですか・・・・?
0244nobodyさん
2007/12/24(月) 15:48:25ID:tHEPo1ls<input type="text" name="text">
<input type="submit" value="test1" name="test1">
<input type="submit" value="test2" name="test2">
</form>
こんな感じでformの中にinput-submitのボタンが複数あって、
押したボタンによってPHP側で"text"の処理分けしたいんですが、
valueの値で判定するしかないんでしょうか。
valueだとボタンの名前として表示されるため他の方法を探しています。
0246nobodyさん
2007/12/24(月) 16:27:38ID:???0247244
2007/12/24(月) 17:11:12ID:tHEPo1lsvalueの値だけは違いがありますね。
input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。
0248nobodyさん
2007/12/24(月) 17:19:57ID:???本当にありg(ry
0249244
2007/12/24(月) 17:29:41ID:tHEPo1ls本当にありがとうございました…。
0250244
2007/12/24(月) 17:54:23ID:tHEPo1ls<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。
>>248さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。
0251nobodyさん
2007/12/24(月) 18:18:44ID:???嘘だろうと思って動作確認したらIE7では確かにそう動いた。
ちなみにFireFox2 Opera9 ではvalue値が送信されてる。(IE7と動作が異なる)
PHPの話題じゃないけど、RFC的にはどうなんだろ。
<html>
<head><title>test</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<?php print_r($_GET); ?>
<hr/>
<form action="test.php" method="get">
<button type="submit" value="test" name="test1">内容</button>
</form></body></html>
0252245,248
2007/12/24(月) 19:02:38ID:???以下のコードで、
・name1 name2 のいずれかをクリックした時に、3,4は送信されるべきでは無い
・name3 name4 のいずれかをクリックした時に、value3またはvalue4が送信されるべき
DOMの扱い時にも同様の支障がでてくる。
なので、buttonを使うより、input type=button を使う方が良い。(buttonに比べて表示の自由度は落ちる)
検証用コード
<html><body><form>
<input type="submit" name="name1" value="value1"></input>
<input type="submit" name="name2" value="value2"></input>
<button type="submit" name="name3" value="value3">3</button>
<button type="submit" name="name4" value="value4">4</button>
</form><p>
<?php
var_export($_GET);
?>
</p></body></html>
■ このスレッドは過去ログ倉庫に格納されています