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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0455nobodyさん2008/01/31(木) 17:56:07ID:???
ttp://gihyo.jp/dev/serial/01/php-security/0005?page=3
を参考にテストしてみたんですが、再現出来ません。
php4です。
このサイトに書いてある、この正規表現では二行目は無視するっていうのは本当なのでしょうか?

/*----------------------------------
<?php
$_GET['id'] = "6666". PHP_EOL . "aaa";

var_dump($_GET['id']);
if (preg_match('/^[0-9]+$/', $_GET['id'])) {
var_dump($_GET['id']);
}
?>
----------------------------------*/
0456nobodyさん2008/01/31(木) 18:01:43ID:???
本当だよ。一行ずつ正規表現で表したい時もあるべ
0457nobodyさん2008/01/31(木) 18:03:54ID:B+pFj7HJ
>>454
すると404とかも判断できるということですね!
レスポンスヘッダとかわからないので調べてきます
ありがとうございました
04584552008/01/31(木) 18:04:48ID:5Z05+qC0
すいません、id表示忘れていました

>>456
だとすると>>455のコードでは再現出来ていないという事でしょうか・・。
このコードでTRUEが得られるつもりで書いたのですが、駄目なようです。
0459nobodyさん2008/01/31(木) 18:15:18ID:???
>>458
ずばり言うわよ。

Smartyを使えば、もっと簡単。
0460nobodyさん2008/01/31(木) 18:17:40ID:5Z05+qC0
>>459
smartyも興味あるのですが。
何故再現できないか知りたいんです・・。
0461nobodyさん2008/01/31(木) 18:20:59ID:???
>>452
参照で渡してるんだろ?
お前の好きな現実の世界に例えると
クリーニング屋にシャツ出したのに
汚れが落ちてるとブツブツ言ってるようなもの。
0462nobodyさん2008/01/31(木) 18:34:36ID:???
いつのまにか$が改行関係なく最後のにしかマッチしなくなってんな
PCRE_DOLLAR_ENDONLYがどーとか書いてあったからその辺かもね
0463nobodyさん2008/01/31(木) 18:37:12ID:5Z05+qC0
>>462
なるほど、昔の仕様ということですね。
ありがとうございます。

こういう細かい仕様変更はちょっと怖いですね・・。
0464nobodyさん2008/01/31(木) 19:13:51ID:???
Smarty厨うぜえw オールドタイプは市ね
04654482008/01/31(木) 19:51:16ID:Zzvt9fFU
>>448 の正規表現を /\\\\(.)/ から /\\\\(\C)/ や /\\\\(.{1})/
に変えたり、関数名を全てシングルクオートの 'testesc(\'$1\')' 囲んだりもしましたが
やはり文字の \" が分割されず $1 に \" が2文字渡されてしまいます。
\ に続くASCIIコードの半角記号も一通り試してみましたが \" のときだけ2文字になります。

原因どなたか分かる方おられないでしょうか。
0466nobodyさん2008/01/31(木) 20:50:27ID:VNDK0Dvo
再度質問申し訳ありません。

php4で動作するスクリプトをphp5でも動かせるようにソースを書き換えてくれるソフトなどないでしょうか?
ソースが長いので書き換えるのが。
0467nobodyさん2008/01/31(木) 20:54:16ID:???
こんばんは。
ブラウザをリロードさせる関数ってありますか?
よろしくです。
0468nobodyさん2008/01/31(木) 21:00:25ID:???
>>467
>>1
0469nobodyさん2008/01/31(木) 21:03:01ID:???
>>466
ない

というかphp4で動作するならphp5でも動作するだろ
逆は動かない場合もあるが
0470nobodyさん2008/01/31(木) 21:04:12ID:???
>>466
普通に書いてたら5でも動くよ。

>>467
reload()

ブラウザを操作できたら嫌がらせやり放題やん
0471nobodyさん2008/01/31(木) 21:06:27ID:VNDK0Dvo
>>469-470
レスありがとうございます。
関数の問題で動いてないみたいです。

$rssurl = array() ;
$rssurl[] = "○○";
$rssurl[] = "○○";

arrayと[]はphp5では読みこまないと記事にありました。
この関数をどのように変えてあげればいいのでしょうか?
○○はrssのURLになります。
0472nobodyさん2008/01/31(木) 21:07:48ID:???
どこの記事だよw
0473nobodyさん2008/01/31(木) 21:15:27ID:???
>>471
さっきから普通に4を書いてたら5でも動くって言われてるのに。
釣りか。。。
0474nobodyさん2008/01/31(木) 21:21:29ID:???
文字列から特定の文字があるか分からない状態でもしあったらそれを置換するには何の関数がいいかな?
0475nobodyさん2008/01/31(木) 21:23:39ID:VNDK0Dvo
http://gihyo.jp/dev/feature/01/php-migration/0002
ここですよ 記事は
0476nobodyさん2008/01/31(木) 21:32:26ID:???
>>475
>>471のコードとそこのコードの違いってわかる?
0477nobodyさん2008/01/31(木) 21:42:44ID:???
わかってないだろ。記事もロクに読んでないと思う。
0478nobodyさん2008/01/31(木) 21:50:45ID:???
        ∬ ∬    ∬ ∬    ∬ ∬  +
   +     人      人      人     +
         (__)    (__)    (__)
  +    (__)   (__)   (__)     +
.   +   ( __ )  ( __ )  ( __ )  +
      ( ´∀`∩ (´∀`∩) ( ´∀`)
 +  (( (つ   ノ (つ  丿 (つ  つ ))  +
       ヽ  ( ノ  ( ヽノ   ) ) )
       (_)し'  し(_)  (_)_)
0479nobodyさん2008/01/31(木) 21:52:14ID:MssSyn6A
質問です。
http://○○○○○.jp/php?a=1&b=2
とあったとしてお気に入りからアクセスするのとhtmlページからアクセスするので
サーベーへの負荷が変わったりするんですか?
前に「負荷がかかるから直でくるな」みたいなことを書いてあるのを見たのですが。
0480nobodyさん2008/01/31(木) 21:56:55ID:???
日本語でおk
0481nobodyさん2008/01/31(木) 22:04:18ID:???
その質問の答えだけならかわらん。
0482nobodyさん2008/01/31(木) 22:08:12ID:???
>>479
一般論としては、直でアクセスしても、htmlからアクセスしても同じ。
だけど、そのプログラム自体がリファラの取得をし、何らかの処理を
している場合は、負荷は違うだろう。
04834792008/01/31(木) 22:15:38ID:MssSyn6A
うまくまとまってなくて済みません。

>>482
うちに置いてあるものでは
a=1ならコンテンツのXXでb=2ならページの2を読む(XXの2ページ目を表示)
のようにしています。
0484nobodyさん2008/01/31(木) 22:20:01ID:???
日本語でおk
0485nobodyさん2008/01/31(木) 22:31:57ID:???
> 前に「負荷がかかるから直でくるな」みたいなことを書いてあるのを見たのですが。
いっているやつがバカ。

2ちゃんねるでもhttpをttpとか書くやつがいるが、
あれもばか。

2ちゃんねるブラウザ使うと直リンクになっている。
0486nobodyさん2008/01/31(木) 22:37:37ID:???
ブラウザ依存の振舞いを当然のように語る人の方が馬鹿かと
0487nobodyさん2008/01/31(木) 22:38:06ID:???
http://zapanet.info/blog/item/1217 に
> PHP使ってるヤツらって
> htmlspecialchars($_GET['text']);
> こんなコード書いてる!
> m9(^Д^)プギャー

とありますが、上のコードの何が問題なんでしょうか?
教えて下さい。
0488nobodyさん2008/01/31(木) 22:41:13ID:???
>>487
引数にENT_QUOTESがない
0489nobodyさん2008/01/31(木) 22:42:19ID:???
「htmlspecialchars 危険」とかですぐ見つかる質問をするってのも問題の一端ではある気がする
0490nobodyさん2008/01/31(木) 22:47:30ID:???
>>487
ずばり言うわよ。

Smartyを使っていないから。
0491nobodyさん2008/01/31(木) 22:49:30ID:???
それだけ?
0492nobodyさん2008/01/31(木) 22:51:06ID:???
それだけ、ってどんだけぇ〜
0493nobodyさん2008/01/31(木) 22:52:19ID:???
フレームワークが使えないSmarty厨はほっとけw
0494nobodyさん2008/01/31(木) 22:53:36ID:VNDK0Dvo
php4で動いたありますがphp5では動きませんでしたよw
なんでだろう
真白だよ;;
arrayがおかしいと思ったんだけど、arrayで外部記事をひっぱってきてるだけなので;;
0495nobodyさん2008/01/31(木) 22:55:57ID:???
ちゃんとdebugしませう
0496nobodyさん2008/01/31(木) 22:56:45ID:???
>>494
全角でセミコロン書くから真白だよ
0497nobodyさん2008/01/31(木) 22:57:16ID:???
>>487
CakePHPを使っていないことが問題です
0498nobodyさん2008/01/31(木) 22:58:39ID:???
最近CakePHPを推していたのは私ですが、>>497は私ではありません。
Smarty厨でしょう?w
0499nobodyさん2008/01/31(木) 22:58:51ID:???
>>494
CakePHPで
htmlspecialchars($_GET['text']);
って書いたけど脆弱性ありまくりでした
0500nobodyさん2008/01/31(木) 22:59:25ID:???
>>494
とりあえずstrictでログを出せ
話はそれからだ
05014992008/01/31(木) 23:00:03ID:???
>>494 → >>497
やってもた
05024982008/01/31(木) 23:02:52ID:???
Smarty厨のいうことを聞くからですよw
あいつは何もわからずに適当に言っているだけです。
0503nobodyさん2008/01/31(木) 23:07:17ID:???
>>487のレスって4回目だけど
やっとENT_QUOTESが出た。
けど、文字コードの問題とか、
そもそも$_GET['text']にhtmlspecialcharsって
違和感を感じないのか?

0504nobodyさん2008/01/31(木) 23:09:50ID:???
>>487のレスって4回目だけど
やっとhtmlspecialcharsがわかってないやつがきた
0505nobodyさん2008/01/31(木) 23:10:15ID:???
後出しジャンケン大会w
0506nobodyさん2008/01/31(木) 23:11:10ID:???
>>487のレスって4回目だけど
やっとつれた
0507nobodyさん2008/01/31(木) 23:11:31ID:???
くだスレでそんなこと言ってたら生き残れなねーぞおめー
0508nobodyさん2008/01/31(木) 23:12:39ID:VNDK0Dvo
coreサーバー事態がおかしいのかも知れません。
どなたかphp5の環境で私のソースが動くかチェックしてもらえる方いないでしょうか?
YAHOOニュースのRSSをMagpieRSSを使って取得しているだけです。

どうかお願いします。
0509nobodyさん2008/01/31(木) 23:15:15ID:???
>>503
シングルクオートをhtmlエンティティ化しないとどんな脆弱性があんの?
0510nobodyさん2008/01/31(木) 23:20:42ID:VNDK0Dvo
ごめんなさい 違う鯖では動作しました。
サーバーが原因だったようです。
なんだよcore鯖
0511nobodyさん2008/01/31(木) 23:21:49ID:???
>>508
ソースがないのにどうやってできる
その前に普通に書けば動くって!
0512nobodyさん2008/01/31(木) 23:21:51ID:???
>>503
その例題を書いた奴が部分的すぎる
後からどうにでも上げ足をとれるように、作為的なものを感じるが

一旦、変数に取り込んでから加工したいのだろうが、コーディング規約で決める部分で作法の範疇じゃね?
0513nobodyさん2008/01/31(木) 23:22:13ID:???
core鯖って何?
0514nobodyさん2008/01/31(木) 23:24:13ID:???
CORESERVER.JP Part8
http://pc11.2ch.net/test/read.cgi/hosting/1201260968/

これです。
0515nobodyさん2008/01/31(木) 23:25:58ID:???
鯖が原因って、、、それは原因を知ったことにはならないだろ
まずE_NOTICE、E_STRICTレベルのログくらい読むべき
変数に期待する値が来てないなら、どこでコケてるのかエコーしながら
遡って探っていく、そうやってコードのどこで問題が起きてるか特定する
そうすれば状況が見えてくるし、質問するにしても回答が得やすくなる
0516nobodyさん2008/01/31(木) 23:27:16ID:???
>>514
そこの>>1で
お前はお断りって書いてあるよ。
0517nobodyさん2008/01/31(木) 23:28:18ID:???
うっせいよぼけどもしばくぞ
0518nobodyさん2008/01/31(木) 23:28:53ID:???
>>513
よくわからんけど、
Googleでの検索結果
Fedra Core鯖 946件
hard Core鯖 962件
ハードゲイ 鯖 54,500件
ってことでハードゲイのことと思われ
0519nobodyさん2008/01/31(木) 23:29:15ID:???
PHP5でMySQLも5なのか
値段もなかなかw
0520nobodyさん2008/01/31(木) 23:29:23ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
おまえ100点>>513
0521nobodyさん2008/01/31(木) 23:30:46ID:???
じゃあ後はxreaのサポートBBSで回答を待つということで
0522nobodyさん2008/01/31(木) 23:35:13ID:???
わからんなぁ、どっちも同じじゃん。
ENT_QUOTESすることで何を防げるんだ?

<a onclick="alert('&#39;+alert(4989)+&#39;')">CLICK</a>

<a onclick="alert(''+alert(4989)+'')">CLICK</a>
0523nobodyさん2008/01/31(木) 23:45:32ID:???
>>509
textをhtml中に出力している、という前提だと

・HTMLのタグの内側かつ属性値の引用符の外側を出力中である
・HTMLのタグの内側を出力中で、属性値を引用符でくくっていない
・HTMLの属性値の出力中かつ、引用符にシングルクウォートを採用している

こういうケース以外では無問題?
05244482008/01/31(木) 23:58:27ID:Zzvt9fFU
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
0525nobodyさん2008/02/01(金) 00:03:13ID:???
$txt = htmlsp..($_GET["text"]);
echo "<a href='#hoge' $txt>"; //そりゃ死亡だろ。
echo "<a href='#hoge' title='$txt'>"; //うっかり死亡。
あとはjsコードジェネレーション中に同様の問題あり
htmlspecialchars忘れる可能性のほうがずっと高い気がしてきたw

あと、>>487の元記事はENT_QUOTESしてないとか、その断片的なコードの問題を
指摘してるものじゃないから、「コードの問題は何か」という質問自体が回答側の
ミスリードをさそってる。
0526nobodyさん2008/02/01(金) 00:14:33ID:???
シングルクオーテーションもタグやJavaScriptの囲みに使われるからこれも退避しないと悪用可能って話か。
0527nobodyさん2008/02/01(金) 00:17:35ID:???
いや、JavaScriptの囲みに使われるからと
囲みの中の'を&#39;にしたところで
何も変わってないよ。

>>522を見ればわかるけど、囲みの中を&#39;にしても
動作は変わらない。
0528nobodyさん2008/02/01(金) 00:20:44ID:???
括弧やセミコロンや演算子禁じたほうがよさげだな。
0529nobodyさん2008/02/01(金) 00:24:48ID:???
>>528
もうこうなってくると
htmlspecialchars の問題じゃなくて
使い方の問題だな。

んで、大本のmatzの記事には使い方が書いていない。
0530nobodyさん2008/02/01(金) 00:35:01ID:???
>>529
そういう表層的な問題じゃないと思うよ。
長男は嫌だとか、年収は1000万円以上じゃないと嫌だと女がいるが、
そういう女は本気の恋愛をしてことがない女。
0531nobodyさん2008/02/01(金) 00:35:35ID:???
要するに釣りってことか
0532nobodyさん2008/02/01(金) 00:43:40ID:???
いっそ英数字以外全部?nnn;にするくらいでないと起きそう。
そしてそこまでやってるのは言語に関わらずろくにいないだろうな。
文字の退避はしてても文字コード指定しない方がはるかに多いだろうし。
0533nobodyさん2008/02/01(金) 00:45:10ID:???
釣りも社会勉強の一つで、色々な釣りにどのような反応を示すかを見て、
社会復帰のための勉強をしている人も俺を含めて結構居ると思うよ。
いつか、社会復帰できるようお付き合い下さい。
0534nobodyさん2008/02/01(金) 00:45:46ID:???
いきなり定義されてないかもしれない変数渡すなやΗεΗεΗε

てこと
0535nobodyさん2008/02/01(金) 00:48:43ID:???
どこから引用したコードか知らんが、100行程度のトイアプリでPHPで語ってたら笑うな
0536nobodyさん2008/02/01(金) 00:49:51ID:???
トイアプリって何のこと?
0537nobodyさん2008/02/01(金) 01:17:24ID:???
トイ=おもちゃ
0538nobodyさん2008/02/01(金) 01:20:47ID:???
PHPSPOTってサイトに
htmlspecialcharsを使いましょうって書いてあった。
それだけでいいのか?
matzの思うつぼw
0539nobodyさん2008/02/01(金) 01:53:10ID:7ncIvXJm
質問させてください
プルダウンのオプション部分を自動生成するプログラムを書いてて
makePullDown(){
$option="";
for($i=0;$i<47;$i++){
 $option.="<option value=\"";
 $option.=setVal($i);//valueを呼び込む関数
 $option.="\">"
 $option.=setNamae($i);//名前を呼び込む関数
 $option.="</option>\n";
}
return $option;//この返り値を<select>{$pd}</select>のようにして使う
}
というようなものを作っています
が、「$option.="<option value=\"";」の行に対して、unexpected '.'というエラーが
標準出力されてしまいます。
同じ構造のプログラムを他の場所で作っていて正常に動いているので、それを元にして
作ったのですが、今回なぜエラーになるのかわかりません。
どこが問題そうというのがあったらご指摘いただけないでしょうか? すみませんがお願いします
0540nobodyさん2008/02/01(金) 02:11:58ID:???
>>539
$option.="\">";
0541nobodyさん2008/02/01(金) 02:18:47ID:???
>>539
質問するなら再現するコードをもってこい
0542nobodyさん2008/02/01(金) 02:36:44ID:6ktoEY5E
質問です。正規表現による置換がどうしてもうまくいきません。。。
<?php
$comment = "aabb/*ccdd*/eedd*/";
?>
<HTML><BODY>
<?php
$ok = preg_replace("/\*.*?\*/","!",$comment);
$ng = preg_replace("/\*.*?dd" ,"!",$comment);

printf("OK:" . $ok . "<BR>NG:" . $ng . "<BR>");
?>
</BODY></HTML>

$okには/*...*/を!に置き換え、$ngには/*...ddを!に置き換えるつもりのコードです。
出力結果は
OK:aabb/!/eedd*/
NG:
となってしまいます、
$okのほうは正しく/* */が最小一致で置き換えられていますが、
/* ddのほうがなぜか文字列が返りません。何か特別なルールがあるのでしょうか?
0543nobodyさん2008/02/01(金) 03:13:35ID:???
>>539
$option.="\">" ←セミコロンがない
0544nobodyさん2008/02/01(金) 03:17:15ID:???
よくある凡ミスだがIDE入れればそんなミス起こらない
というわけでIDEで開発しれ
0545nobodyさん2008/02/01(金) 03:34:06ID:ShuZZjDk
PHPもある程度わかってきたので、SmartyとPEARを勉強したいと考えています。
オススメのサンプルサイトもしくは、推奨の本を教えてください。
よろしくお願いします。
0546nobodyさん2008/02/01(金) 03:45:16ID:???
>>545
公式サイトのマニュアルと各ライブラリのドキュメント
0547nobodyさん2008/02/01(金) 03:45:37ID:???
Smarty PEAR フレームワークの話題は>>1を100万回読んでからしてくださいね
0548nobodyさん2008/02/01(金) 08:21:40ID:7ncIvXJm
やっぱりみんなpearって使ってるんですか?
0549nobodyさん2008/02/01(金) 09:00:49ID:???
>>548
ずばり言うわよ

0550nobodyさん2008/02/01(金) 09:03:11ID:???
Smartyはアフォ
0551nobodyさん2008/02/01(金) 09:05:08ID:???
smartyのサイトが数日前から落ちてるようなのですが、
どこかでDLできるところ知りませんでしょうか?
smartyスレも落ちてるし…
0552nobodyさん2008/02/01(金) 09:06:15ID:???
使うなってことだろw
0553nobodyさん2008/02/01(金) 09:06:45ID:???
>>551
鉄の掟ローカルルールに従いなさい
0554nobodyさん2008/02/01(金) 09:37:10ID:???
落ちてるなら立てればいいじゃない
■ このスレッドは過去ログ倉庫に格納されています