トップページ⇒php
1001コメント269KB

【PHP】下らねぇ質問はここに書き込みやがれ 52

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/08/11(土) 10:08:03ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0231nobodyさん2007/08/14(火) 12:53:30ID:???
レベル低いねね
0232nobodyさん2007/08/14(火) 12:54:39ID:???
それだと閉じタグやxhtmlとhtmlの場合などに対応できないよ
0233nobodyさん2007/08/14(火) 12:59:07ID:???
「もし$demoの最初の文字がtestであれば」実行したいんだけど・・・
0234nobodyさん2007/08/14(火) 13:25:24ID:???
substr使えばできるだろ
0235nobodyさん2007/08/14(火) 13:26:35ID:???
>>228
>タグ削除の正規表現
そんなのも思いつかないなんて馬鹿なんじゃないの?w
0236nobodyさん2007/08/14(火) 13:40:41ID:???
substrの継ぎ接ぎのようなプログラムってなんか嫌だよね
0237nobodyさん2007/08/14(火) 13:49:13ID:???
正規表現もつかえないやつは入門書で勉強しろよ
0238nobodyさん2007/08/14(火) 13:50:55ID:???
if (strpos($subject, "find", 0) === 0) {}
0239nobodyさん2007/08/14(火) 14:06:34ID:???
正規表現なんてあんまり使わないけどね
0240nobodyさん2007/08/14(火) 14:08:35ID:???
そういうレベルしか組まない人には縁がないだろうね
0241nobodyさん2007/08/14(火) 14:10:51ID:???
終了
0242nobodyさん2007/08/14(火) 14:12:19ID:???
> そういうレベルしか組まない人には縁がないだろうね

0243nobodyさん2007/08/14(火) 14:22:15ID:???
正規表現がレベル高いってどんだけ〜
0244nobodyさん2007/08/14(火) 15:04:50ID:???
ちんこ
0245nobodyさん2007/08/14(火) 16:20:15ID:???
正規表現でごりごりやるのってどうかねー
タグ削除?普通htmlspecialcharsで出力しね?
0246nobodyさん2007/08/14(火) 16:25:02ID:???
apacheの設定でUAやIPを判定するのと
PHPでそれやるのでは
どっちがパフォーマンスいいですか?
0247nobodyさん2007/08/14(火) 16:29:53ID:5SXtCF6M
他サイトの仕組みについての質問です

画像サイトのpya!の画像表示画面に、
「いい」か「悪い」かの投票が出来るのですが、

例えば、
http://pya.cc/pyaimg/pimg.php?imgid=46090
で「いい」に投票をするとアドレスバーは

http://pya.cc/pyaimg/iiwaru.php?ppid=(長いので略
になると思ったのですが、

http://pya.cc/pyaimg/pimg.php?imgid=46090
のままですよね

これは、どのように実装しているのでしょうか?
宜しくお願いします
0248nobodyさん2007/08/14(火) 16:30:48ID:???
(本文長過ぎのエラーが出たので2回に分けますがよろしくお願いします。)
こんにちわ

くだ質ですいませんがA.php→B.phpページ間を遷移する際に、
押下されたボタンによって振る舞いを変えたいのですが2個設置したボタンの内、

片方のボタンの名前しか取得できないのですがそんな物なのでしょうか?
B.phpのソース----------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";>
(略
<form id="form1" name="form1" method="post" action="A.php">
(略
<table style="width:auto">
<tr>
<td><input name="bt-mod" type="image" id="bt-mod" onmouseover="MM_swapImage('bt-mod','','../../common/images/bt-data_mod_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-data_mod.gif" alt="戻る" /></td>
<td><img src="../../common/images/spacer.gif" width="16" height="5" /></td>
<td><input name="bt-od" type="image" id="bt-od" onmouseover="MM_swapImage('bt-od','','../../common/images/bt-order_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-order.gif" alt="進む" /></td>
</tr>
</table>
(略
</form>
----------------------------------------------------------
0249nobodyさん2007/08/14(火) 16:34:15ID:???
A.phpのソース----------------------------------------------------------
print_r($_REQUEST);
exit;
----------------------------------------------------------

以上のソースで「戻る」方のボタンを押すと
[bt-mod_x] => 148
[bt-mod_y] => 16
[__utmz] => 115658906.1175589544.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
[PHPSESSID] => 8a7d736760f011508007af99df64c15e
[pageHit] => 2
[__utma] => 115658906.1447484033.1175589544.1175759302.1182926936.16
という値がセットされているのですが、「進む」のボタンだと
[__utmz] => 115658906.1175589544.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
[PHPSESSID] => 8a7d736760f011508007af99df64c15e
[pageHit] => 2
[__utma] => 115658906.1447484033.1175589544.1175759302.1182926936.16
しかセットされておらず、進むのボタンが押された判定ができません。
何か回避策etcありますでしょうか?
@
PHP 4.4.4 (cli)
RedHatEL
0250nobodyさん2007/08/14(火) 16:40:38ID:???
>>247
iiwaru.phpに
▼作品のID
▼「いい」のか「わるい」のか
等の情報を渡して投票処理をした後に
header("Location: 元のページ"); exit;
とかしてるようです。
2回目は投票できないので$_SESSIONに書込みもしてるみたいです
0251nobodyさん2007/08/14(火) 17:03:37ID:???
>>248
もうちょっと一般化してモノを話してくれ。見るのめんどい。(つか$_POSTでいいじゃん)
ちなみにこっちの環境でやってみたところbt-od_xとbt-od_y出ました。
02522472007/08/14(火) 17:29:48ID:gTawfVuS
>>250
ありがとうございます。
非常に参考になりました。
0253nobodyさん2007/08/14(火) 17:34:11ID:???
>>251
長くてすいません、要は、1つの<form></form>の中に
<input name="bt-mod" type="image" id="bt-mod" onmouseover="MM_swapImage('bt-mod','','../../common/images/bt-data_mod_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-data_mod.gif" alt="戻る" />
<input name="bt-od" type="image" id="bt-od" onmouseover="MM_swapImage('bt-od','','../../common/images/bt-order_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-order.gif" alt="進む" />
とボタンが2つあって片方は遷移先で値が取れるのに片方は値が取れないので、
何かこんな経験がある方がいたら…、と思いまして。
ロールオーバー画像の所為でやたら<input>が長くなってるんですが
昔は<input type="image">でロールオーバー何かできなかった気がしますが今は出来るんですね。
0254nobodyさん2007/08/14(火) 17:43:34ID:???
だからさ、
<form id="form1" name="form1" method="post" action="">
<table style="width:auto"><tr>
<td><input name="bt-mod" type="image" src="../../common/images/bt-data_mod.gif" id="bt-mod" alt="戻る" /></td>
<td><input name="bt-od" type="image" src="../../common/images/bt-order.gif" id="bt-od" alt="進む" /></td>
</tr></table></form>
<?php var_dump($_POST); ?>
を実行してみて座標が出るか試してみればいいじゃん。
出るならjavascriptやその他のコードの問題で、
出ないなら環境の問題かな、って予想つけられる。
0255nobodyさん2007/08/14(火) 17:45:48ID:???
一般化って、文章の分量減らすことじゃないぞ。
0256nobodyさん2007/08/14(火) 19:14:44ID:???
質問はタグを正規表現でタグを削るって書いてあるんだから
わかるやつだけ回答しろ
わからないやつはレスいらないから。マジでそういうの邪魔でしかない。
0257nobodyさん2007/08/14(火) 19:27:58ID:JRyEN1Pm
Xdebug、WinCacheGrindに慣れてないので間違っているかもしれませんが、
Xdebugと下記コードを使って、test.php, test.txt, mb_〜encoding の文字コードを合わせて
速度チェックをしてみた所、SJIS-win が一番速い結果になりました。
マルチバイト文字を検索する場合は SJIS-win で保存するのが良いのでしょうか?

mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
$body = file_get_contents('C:\usr\local\php\test.txt');
if (mb_eregi('はひふへほ', $body)) {}
0258nobodyさん2007/08/14(火) 20:00:01ID:???
>>256
無限ループって怖くね?
0259nobodyさん2007/08/14(火) 20:13:25ID:???
>>257
たいして変わらんだろ
0260nobodyさん2007/08/14(火) 20:43:17ID:???
こんな感じで結構違いました PHP4.4.7
mb_eregi で日本語を検索(検索対象文字列は日本語と英語の混合ページ)
対象は真ん中らへん
SJIS-win 2.66
EUC-JP 5.27
UTF-8 5.39

mb_eregi で日本語以外を検索(検索対象文字列は同じ)
対象は一番最後
SJIS-win 7.4
EUC-JP 7.1
UTF-8 7.4
0261nobodyさん2007/08/14(火) 20:45:33ID:???
2.66とかって何なの?大体予測はつくけどこういう時は単位も正確に書いてよ
0262nobodyさん2007/08/14(火) 20:48:13ID:???
msです 忘れてました
0263nobodyさん2007/08/14(火) 20:49:00ID:???
はひふへほなんて調べるんだったらmb_strpos使え
0264nobodyさん2007/08/14(火) 20:55:06ID:???
いや、実際はもっとややこしい正規表現です
0265nobodyさん2007/08/14(火) 21:06:09ID:???
3msが惜しいと感じるならShift-JISにすればいいんじゃね
0266nobodyさん2007/08/14(火) 21:18:09ID:???
>>256
>>1
0267nobodyさん2007/08/14(火) 21:20:13ID:???
>>257
で、そのtest.txtの文字コードは?
0268nobodyさん2007/08/14(火) 21:29:35ID:???
何でこんなに速度差が出るんだろう
0269nobodyさん2007/08/14(火) 21:59:06ID:???
http://dbug.ospinto.com/
これ初めて知ったけど面白いね
0270nobodyさん2007/08/14(火) 23:40:37ID:???
>>266
そういうのあきた
0271nobodyさん2007/08/14(火) 23:41:07ID:???
>>270
>>1
0272nobodyさん2007/08/15(水) 00:33:29ID:0gBl3hm4
モジュール/CLIの各phpは、読み込むphp.iniを
どうやって決めてるのでしょうか?
0273nobodyさん2007/08/15(水) 00:38:26ID:???
>>272
コンパイルオプション
0274nobodyさん2007/08/15(水) 00:40:56ID:???
あ、cliは、引数指定可能
0275nobodyさん2007/08/15(水) 01:01:49ID:???
>>271
めんどうだからあぼ〜ん
0276nobodyさん2007/08/15(水) 01:03:39ID:???
>>273
ありがとうございます
libphp5.soや/usr/local/bin/phpに
静的な情報として書き込まれるという認識でよろしいでしょうか?
それを後から知るにはどうすればいいですか?
0277nobodyさん2007/08/15(水) 01:08:47ID:???
>>276
php -i | grep php.ini
モジュールならphpinfo();
0278nobodyさん2007/08/15(水) 01:34:41ID:???
リンクの作り方が分かりません

$a = image.jpg//ファイルの名前

http://localhost/ここに$aを代入して http://localhost/image.jpgに飛ばすリンク作りたいです

0279nobodyさん2007/08/15(水) 01:35:45ID:2T+vTVUL
age
0280nobodyさん2007/08/15(水) 01:37:05ID:???
>>277
ありがとうございました
0281nobodyさん2007/08/15(水) 01:40:43ID:???
>>278
文字列連結は.(ドット)です
0282nobodyさん2007/08/15(水) 01:58:10ID:???
PHPのextentionを格納するディレクトリ名が
no-debug-non-zts-20050922
なんですが、このディレクトリ名はどうやって決められているのでしょうか?
0283nobodyさん2007/08/15(水) 02:14:07ID:???
ただ単にPHP(extension含む)のバージョンでしょ。
ちがうバージョンをインスコしたときにちがうバージョンのextensionが上書きされたらまずいっしょ
02842822007/08/15(水) 02:15:31ID:???
php.iniの中でそう指定してるだけで
別にディレクトリ名は何でもいいようですね
ecceleratorを入れた時に、
何故かこういう名前のディレクトリが作られたようです
0285nobodyさん2007/08/15(水) 02:18:12ID:???
>>283
時間差でずれました
eacceleratorが問題だったのではなく
PHP側が作ったのでしょうか?
このあたりなんかややこしいですね
0286nobodyさん2007/08/15(水) 02:22:36ID:???
http://simplate.blogtribe.org/archive-200511.html
symplateの中の人のブログに

php extensionのデフォルトの置き場所も、
php-5.0.X系の/usr/local/lib/php/extensions/no-debug- non-zts-20041030から、
no-debug-non-zts-20050922に変わっています。

とありました。
バージョンが0.1以上変わる時に変えられるみたいですね
0287nobodyさん2007/08/15(水) 02:24:33ID:???
include_pathって複数のディレクトリを指定出来ますか?
0288nobodyさん2007/08/15(水) 02:26:04ID:???
できるお
0289nobodyさん2007/08/15(水) 02:33:00ID:???
>>287
Winなら ; で区切る
Unix系なら : で区切る
0290nobodyさん2007/08/15(水) 02:47:19ID:???
no-debug-non-ztsの数字は、
5.0系は20041030
5.1系は20050922
5.2系は20060613
のようです。
simplateの中の方によると、
このディレクトリが変わるごとにextensionの再コンパイルも必要とのことですが、
これはどんなextensionでもそうなのでしょうか?
0291nobodyさん2007/08/15(水) 04:07:52ID:???
Apacheのバージョンアップをした時にも
libphp5.so等の再コンパイルは必要でしょうか?
0292nobodyさん2007/08/15(水) 04:14:46ID:???
何で最近の質問者は全くID出さないようになっちゃったんかね
0293nobodyさん2007/08/15(水) 04:52:08ID:???
夏だから
02942912007/08/15(水) 06:47:19ID:???
いろいろ調べたところAPIが変わってなければokみたいですね
2.0→2.2はやばいけど
2.0.xx→2.0.xxならokみたいな感じでしょうか
0295nobodyさん2007/08/15(水) 08:53:47ID:???
ID出さないのは1日に何度も質問してるからですよ
0296nobodyさん2007/08/15(水) 11:23:50ID:???
if($testの文字列が10byteを超えていれば){

}
どうすればいいかな
0297nobodyさん2007/08/15(水) 11:32:01ID:???
>>296
if(strlen($test)>10){

}
0298nobodyさん2007/08/15(水) 11:37:27ID:???
>>297
ありがとうございます
0299nobodyさん2007/08/15(水) 12:56:15ID:H4J4ZPX3
cookieを名前"value"で値"hello"ってセットして

print_r($_COOKIE);

すると
Array( [PHPSESSID] => xxxx [value] => hello)

とちゃんと表示されるんだけど

$_COOKIE["value"]

じゃ何も表示されないんだ
でも

foreach($_COOKIE as $key => $value){
print $_COOKIE[$key];
}

だとhelloって表示されるんだ。

こんなことってあるのかね・・・
原因がさっぱりわからねえ

スペルミスとかの類ではないです
0300nobodyさん2007/08/15(水) 13:06:09ID:d7dcIP3f
ちょい質問なんですがビット演算子ってどういう時に使用するんでしょう??
使ってる人いますか?
0301nobodyさん2007/08/15(水) 13:13:54ID:???
>>299
>$_COOKIE["value"]
>じゃ何も表示されないんだ

まさか、$_COOKIE["value"] とだけ書いているわけではないですよね?

echo $_COOKIE['value'];
でも表示されない?
0302nobodyさん2007/08/15(水) 13:15:16ID:???
>>301
おっと失礼
それで何も表示されないです
0303nobodyさん2007/08/15(水) 13:20:11ID:???
質問者はID出してくれ。
コードを提示する場合はここで新しく書かずにコピペするようにしてくれ。

少しは回答者の立場になってくれ。
0304nobodyさん2007/08/15(水) 13:22:05ID:???
echo $_COOKIE['value'];

で表示されました
print $_COOKIE["value"];

で今までやってて、表示されずに
echo $_COOKIE['value'];

で表示されたら、再び
print $_COOKIE["value"];

でも表示されるようになりました
何がなんだか分かりません・・・(ノд`)゜・。
0305nobodyさん2007/08/15(水) 13:23:41ID:???
>>300
最たる例はビットフラグとかかな。
0306nobodyさん2007/08/15(水) 13:29:10ID:mG1HWMPN
聞きたいんだけどさ、アップローダーのアップされたファイルって
webのrootより上の階層に保存できないのかな?
よくナントカファイルが流出したってニュース聞くたびに疑問だったんだけどさ
0307nobodyさん2007/08/15(水) 13:47:24ID:???
>>306
>保存
できる
>流出
root云々と直接関係しない

>>304
ID出せよ
0308nobodyさん2007/08/15(水) 13:50:27ID:???
>>306
フォルダの権限を緩和すればいくらでもできる
0309nobodyさん2007/08/15(水) 13:57:59ID:???
>>308
>フォルダの権限を緩和すればいくらでもできる
いくらでも出来ねーだろ。マウントサイズを越えて保存することは無理。
0310nobodyさん2007/08/15(水) 14:05:41ID:???
>>309
そんなところツッコンでもしかたないかと
0311nobodyさん2007/08/15(水) 14:07:02ID:???
>>310
すまん。脱いで詫びる
http://thumb2.uploda.org/file/uporg963415.jpg
0312nobodyさん2007/08/15(水) 14:08:50ID:???
>>311
アタシも脱いでワビるわ
http://www.vipper.net/vip307740.jpg
0313nobodyさん2007/08/15(水) 15:37:36ID:gxFf8K1o
掲示板まがいなものを作っていてHTMLタグを入れられたくないので
strip_tagsでストリップにしてしていたのですが
テストを行なってみたところ (>_<) みたいな顔文字を入れたら
(>_ 以降が消されてしまいました
そこで先にエンティティ化してみたのですが
これだとHTMLタグも残ってしまいます(当たり前ですが・・・)
このような場合どのように処理したら良いんでしょうか?
0314nobodyさん2007/08/15(水) 15:40:06ID:???
>>304
本当は、

>まさか、$_COOKIE["value"] とだけ書いているわけではないですよね?

これが正解だったんでしょ?
0315nobodyさん2007/08/15(水) 15:41:44ID:???
>>313
なんのために消すのか理解してる?
0316nobodyさん2007/08/15(水) 15:43:05ID:???
>>313
まじかよ。strip_tags使えないな。
タグかどうか判定してからじゃなくって問答無用に置換するんだな…
0317nobodyさん2007/08/15(水) 15:44:50ID:???
タグかどうかの判定が<以降という仕様な訳なんだが。
0318nobodyさん2007/08/15(水) 15:48:12ID:???
だから正規表現があるんだろ
0319nobodyさん2007/08/15(水) 15:48:57ID:gxFf8K1o
>>315
理解したうえで既存のものから修正してテストしたらそうなりました

>>317
仕様という事は対策なしという事でしょうか?
0320nobodyさん2007/08/15(水) 15:49:08ID:???
>>317
だからその仕様がクソじゃん
<font color=red> (>_<) </font>
こんな感じだったらタグだけ無効化するべきだろ

>>313
正規表現とかで
>のあとの>は>に置換、<のまえの<は<に置換してから
strip_tagsして、最後に>と<を元に戻すとか。
0321nobodyさん2007/08/15(水) 15:53:24ID:???
>>319
エンティティ化って何だか理解してる?
0322nobodyさん2007/08/15(水) 15:54:55ID:???
>>314
突っ込んでやるなよw
0323nobodyさん2007/08/15(水) 15:59:18ID:gxFf8K1o
>>320
確かに正規表現の置き換えしかなさそうですね
先に正規表現使って
>のあとの>は&lt;に置換、<のまえの&gt;はに置換してから
0324nobodyさん2007/08/15(水) 16:00:16ID:???
>>320
>だからその仕様がクソじゃん

>タグかどうか判定してからじゃなくって
って言ってたから「ちゃんとは判定してますよ」って返しただけなんだが
0325nobodyさん2007/08/15(水) 16:00:38ID:???
>>321
むしろそれは、偉そうで分ってない320の方に
言ってやったほうがいいんじゃないの?
0326nobodyさん2007/08/15(水) 16:00:51ID:gxFf8K1o
途中で送信してしまった

とりあえず必要な部分だけ置き換えるようにします
ありがとうございます

>>321
理解してます?
0327nobodyさん2007/08/15(水) 16:00:57ID:???
「ちゃんと判定はしてますよ」だった
0328nobodyさん2007/08/15(水) 16:03:41ID:???
>>323
何度も遠回りな質問して悪いんだけど、何のためにHTMLタグを消すんだ?
XSSを防ぐためだろ?
だったらstrip_tagsとか正規表現とか迂遠で余計な負荷がかかる方法もいいとこだろ。
0329nobodyさん2007/08/15(水) 16:05:08ID:???
>>326
何そのレス?
0330nobodyさん2007/08/15(水) 16:05:31ID:???
なんでXSS限定なのか分からん
0331nobodyさん2007/08/15(水) 16:07:21ID:???
なんで限定と判断したのかが意味不明
313を読んでそれ以外に何を考えてるのかも意味不明
■ このスレッドは過去ログ倉庫に格納されています