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

【PHP】下らねぇ質問はID出して書き込みやがれ 95

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/04/19(月) 09:15:05ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0554nobodyさん2010/05/12(水) 17:48:56ID:???
>>553
宣言が必要ないからな・・・
一応、error_reportingでE_NOTICEを含めれば
未定義の変数を使おうとしたら、Notice: Undefined variable: エラーがでるようになる
0555nobodyさん2010/05/12(水) 20:20:47ID:???
とりあえずID:A9U/FhEpはPHPはいいから日本語を勉強してくださいw
0556nobodyさん2010/05/12(水) 20:48:49ID:???
<?php
$b = true;
if ($b) {
$s = "hoge";
}
echo $s;
?>

これが動くから気持ち悪いよな
0557nobodyさん2010/05/12(水) 21:18:16ID:???
へー
0558nobodyさん2010/05/12(水) 21:39:56ID:???
>>556
ん?
どこが気持ち悪いのか理解できないんだが
0559nobodyさん2010/05/12(水) 21:41:16ID:???
Web界のVBと聞いて手を出します
0560nobodyさん2010/05/12(水) 21:51:34ID:???
>>558
$sはグローバルスコープで定義されてない

<?php
$b = true;
if ($b) {
$s = "hoge";
echo $s;
}
?>

これなら気持ち悪くないけどな
0561nobodyさん2010/05/12(水) 22:09:47ID:???
じゃあそうすれば?
他の言語から来た人はすぐ気持ち悪いという。
0562nobodyさん2010/05/12(水) 22:20:36ID:???
グローバルで呼び出したいのなら、
<?php
$b = true;
$s;
if ($b) {
$s = "hoge";
}
echo $s;
?>
だな。

他の言語云々ではなくて、言語仕様として気持ち悪いということでしょ。
これじゃスコープの意味がないし。
0563nobodyさん2010/05/12(水) 22:32:51ID:???
PHPはいつからif文がブロックになったんだ
0564nobodyさん2010/05/12(水) 22:36:05ID:???
JavaScriptとかでも同じじゃない?
0565nobodyさん2010/05/12(水) 22:44:34ID:???
>>564
というよりインタプリタ全般かな
コンパイラ言語だとコンパイル時にエラー出るはず

PHPの場合初心者が扱いやすいように言語仕様をあえて適当にしてるから(多分…)
その辺も理解しないとね
0566nobodyさん2010/05/12(水) 22:54:26ID:???
PHPにはスコープがグローバルと関数しかありませんで済む話だな
ブロックスコープが欲しい奴はコミッタになるか他の言語でやれよという
0567nobodyさん2010/05/12(水) 23:00:54ID:???
コンパイラ言語しか知らないんでしょ。
マニュアルも読まないで語ってる時点で終わってるし。
0568nobodyさん2010/05/12(水) 23:18:22ID:???
きもちわるいといっただけでなぜに喧嘩腰www
0569nobodyさん2010/05/12(水) 23:23:32ID:???
信者というものはそういうもの
0570nobodyさん2010/05/12(水) 23:34:16ID:???
ん?global
これで解決すんだろ
ミジンコでもわかったわ
0571nobodyさん2010/05/12(水) 23:38:07ID:???
参照渡しにして下さい
0572nobodyさん2010/05/13(木) 00:03:08ID:???
>>568
スコープと文をごっちゃにして気持ち悪いといったアホに対して
何言ってるんだ的なレスしかなくね?
0573nobodyさん2010/05/13(木) 00:12:40ID:???
気持ち悪いは喧嘩腰じゃないんだ
言い訳に無理がありすぎる
0574nobodyさん2010/05/13(木) 00:36:09ID:gguhT7VA
質問:

PHP で、クラスの中からメンバ変数 x を参照するときは、
$this->x のようにします。

でもいちいち $this->… と書くとくどいし、
見通しが悪いコードになる。

これを回避する方法はありますか?
0575nobodyさん2010/05/13(木) 00:37:33ID:???
ないですよ
残念ながら仕様です
0576nobodyさん2010/05/13(木) 00:40:03ID:???
>>573
人物(例えばお前)に対して気持ち悪いといったならまだしも
PHPの仕様に対して気持ち悪いといったら喧嘩腰って・・・
あぁあなたはPHPの妖精さんでしたか
0577nobodyさん2010/05/13(木) 00:51:46ID:???
気持ち悪い
0578nobodyさん2010/05/13(木) 01:10:52ID:???
確かに気持ち悪いってのは分からんでもないな。
気持ち悪いだけならいいんだが、思わぬバグに悩むこともある。
でも楽だなって思うときも正直あるなー、初期化しなくていいとか。
0579nobodyさん2010/05/13(木) 01:22:01ID:???
気持ち悪いってのは甘えでしょ
0580nobodyさん2010/05/13(木) 01:33:32ID:???
えっ
0581nobodyさん2010/05/13(木) 02:27:26ID:???
>>576
お前のキーボード気持ち悪い
0582nobodyさん2010/05/13(木) 02:43:28ID:???
なんかBAKAがいますね^^;
0583nobodyさん2010/05/13(木) 02:54:24ID:???
いるね。
0584nobodyさん2010/05/13(木) 02:56:05ID:???
ブロックスコープより private static と $this-> の省略が欲しい
あと 配列/ハッシュの定義も
0585nobodyさん2010/05/13(木) 03:05:07ID:???
ソースコード公開されてるんだから独自拡張してしまいなさいよ
できないなら我慢して下さい
それでも変えたいと思うのならPHP開発チームのコミュに乗り込んで意見交換してきて下さい
英語できないなら我慢して下さい
0586nobodyさん2010/05/13(木) 04:32:03ID:g6nE4IPR
centos5にphp5.2.13が入っているのですが、curlが有効になっていません。
phpinfoのconfigure commandには、
'--with-curl=shared'
と書かれていますが、curlの項目はありません。
php.iniに
extension = php_curl.so
を追加して再起動してみましたが、変化ありません。
curlを有効にするにはどうしたらいいでしょうか?
0587nobodyさん2010/05/13(木) 04:41:57ID:???
php_curlをcurlにしたらokでした
0588nobodyさん2010/05/13(木) 12:42:53ID:Xm7v6t58
ワンタイムパスワードやクッキーIDに使われるuniqid()の説明に
md5(uniqid(mt_rand(), true)); と書きましょう。とありますが
みんながこのアルゴリズム使ってたらMD5だろうがSHA1だろうがハッシュかける意味なくはないでしょうか。
えらい人教えて
0589nobodyさん2010/05/13(木) 12:56:15ID:???
なんのこっちゃ
0590nobodyさん2010/05/13(木) 13:10:55ID:???
生成方法が分かってるからって
生成したID使って成りすましなんて現実的だと思ってるわけ?
echo uniqid(mt_rand(), true);やってみなよ
文字が1文字でも違えば合わないわけで
現在有効なセッションに対してタイムリーにあわせたものを送出するなんて不可能
確率的には天文学的数値になるわけで
仮に通ったらそれはもう仕方ないとしかいいようがない
0591nobodyさん2010/05/13(木) 13:23:47ID:???
PHPでページのウィンドウサイズを取得することは出来ますか?
05925912010/05/13(木) 13:24:27ID:DhKK8eQ9
ID出すの忘れてた・・・
0593nobodyさん2010/05/13(木) 13:35:00ID:???
無理です。
0594nobodyさん2010/05/13(木) 13:35:41ID:???
今のウインドウサイズをjavascriptで取得してPHPのページで受け取とるしかないのでは。
0595nobodyさん2010/05/13(木) 13:37:28ID:DhKK8eQ9
>>593-594
やはりjavascriptになってしまいますか・・・
回答ありがとうございました!
0596nobodyさん2010/05/13(木) 13:39:59ID:IJ7WPaYi
DBのnameフィールドに山田 太郎(山田次郎等スペースが開かないものも存在します)
があったとして
これを検索で山田太郎でも山田 太郎でもひっかかるようにするにはどうしたら
よいでしょうか?
山田と太郎に分けてlike文?等も考えたのですが、絶対真ん中にスペースがあるとも
限らないためどの様な関数を使えばいいのかわからずにこまっております。
0597nobodyさん2010/05/13(木) 13:46:38ID:Xm7v6t58
>>590
いや、だから成りすましができるかできないかじゃなくて
ハッシュする意味があるのかと
0598nobodyさん2010/05/13(木) 13:49:22ID:???
>>596
replace(name, ' ', '') = '山田太郎'
0599nobodyさん2010/05/13(木) 14:06:40ID:???
>>597
みんなが同じアルゴリズムとかわけわかんないこというからだろ
別にしたくないならしなくてもいいよ
0600nobodyさん2010/05/13(木) 15:11:39ID:???
>>597
ハッシュ化する意味は「生成後の値から生成前の値」を読み取れないようにすることだと思う。
今回の場合は既に乱数を生成してるからハッシュ化しても意味ないと思うけどね。
0601nobodyさん2010/05/13(木) 15:20:13ID:IJ7WPaYi
>>598
nameフィールドのデータをreplaceでスペースを取り除けるということでしょうか?
0602nobodyさん2010/05/13(木) 16:11:24ID:IJ7WPaYi
すみませんできました。
ありがとうございました
0603nobodyさん2010/05/13(木) 16:52:07ID:???
ご質問があります。
期間がきたら、個別のフォルダに飛ばすプログラムを作りたいのですが、

A. 2010年05月13日〜2010年05月20日 この期間は、x01フォルダに飛ぶ
B. 2010年05月23日〜2010年05月28日 この期間は、x02フォルダに飛ぶ
C. 2010年06月01日〜2010年06月10日 この期間は、x03フォルダに飛ぶ

このような処理を一つのファイルでやりたいのですが、
どうしても、どう条件式を書けばわかりません。
このような処理は可能でしょうか?
0604nobodyさん2010/05/13(木) 16:58:48ID:???
移動させたいの?
中身を表示させたいの?
0605nobodyさん2010/05/13(木) 16:59:15ID:???
>>603
日付を取得して、日付から振り分けるフォルダ取得。
その後に、header関数を使ってリダイレクトをかけるとか。
0606nobodyさん2010/05/13(木) 19:04:44ID:???
>>603
日付をmktime()して整数値に変換すれば、簡単な不等号演算で条件式を書けるよ。
間違っても年を比較して月を比較して日を比較して・・・とかしないように。
0607nobodyさん2010/05/13(木) 21:08:15ID:???
>>602
山田太 郎
も引っかかるようになるけどね。
0608nobodyさん2010/05/14(金) 19:13:12ID:4Ir7KJlR
PHPの基本的な関数なんだけど

文字列から特定の文字を検出して、3文字を取り出したいだけど
一回で出せる関数ってありますか?

あるかわからないからこんな風に書いているんだけど…

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

$needle = 'CD';
$length = strlen($needle);
echo substr(strstr($str, $needle), $length, 3); // EFG

PHPのバージョンは問いません。


0609nobodyさん2010/05/14(金) 19:30:17ID:QXJzlvQt
WindowsAzureのスレってどこですか?
0610nobodyさん2010/05/14(金) 19:50:01ID:???
関数1個なら、正規表現使うしか……
0611nobodyさん2010/05/14(金) 21:50:49ID:LkLsmfmz
GDで画像に文字を埋め込むプログラムを作っているんですが、
文字が長い場合や画像の幅が狭い場合に文字が途中で切れてしまいます。

この場合、文字を全部表示するには
自分で座標計算をして改行をしてやらないといけないのでしょうか?

座標計算をしてくれるような関数やライブラリはありますか?

0612nobodyさん2010/05/14(金) 22:05:03ID:???
>>608
そのまま関数にしちゃえばいいと思う。
正規表現持ち出してもいいけど、そのほうが遅くなる、、、はず。たしか。
0613nobodyさん2010/05/14(金) 22:06:48ID:???
>>611
俺がやったときは描画後のサイズを取得して必要に応じて改行した。
ImageMagickならなんかあるのかもね。
あとは縮小して一行に表示するか
0614nobodyさん2010/05/14(金) 22:12:33ID:LkLsmfmz
>>613
レスありがとうございます。

座標計算してくれるようなありがたいライブラリは
なさそうですかね。

ImageMagickのことを忘れていました。
ちょっと調べてみます。
0615nobodyさん2010/05/14(金) 22:35:39ID:???
>>614
Captchaでそういうのあったはずだけどどこだったか忘れたな
0616nobodyさん2010/05/14(金) 23:18:02ID:LkLsmfmz
>>615
Captchaでっていうのは、
Captchaを作るプログラム内で座標計算をしていたってことでしょうか?
06176082010/05/14(金) 23:40:56ID:???
ありがトン。
0618nobodyさん2010/05/15(土) 09:43:07ID:WDq1xTWQ
任意の文字列から5文字くらいのハッシュ値を生成するような関数ってありますでしょうか?
携帯のUIDで識別してるんですが、UIDそのままだと長すぎたり問題があるので短い一意のものを作成できる関数や方法があれば教えていただければと思います。
0619nobodyさん2010/05/15(土) 10:18:40ID:???
例えばmd5の場合生成されるのは16進数の128ビット(32バイト)のハッシュになるけど、
これを16進数から0-9a-zA-Zの62進数に変換すればかなり短くなるんじゃない?
0620nobodyさん2010/05/15(土) 12:21:15ID:hwYoKufE
2の4乗と、2の6乗の差。
2/3の長さになるが、計算時間が掛かる。
1B = 8bitで4+4にはなるが、
6bitだと3Bを6+6+6+6と分けるしかない。
0621nobodyさん2010/05/15(土) 12:30:14ID:hwYoKufE
16進16文字を64進に直しても、11文字になるだけでまだ長いんでは?
そのまま8B数としてバイナリ保持すれば?
それでも8文字分必要になるが。
crc32やれば、4Bで4文字分だが。

0622nobodyさん2010/05/15(土) 13:02:37ID:???
IDのみでの認証というシステムをまず変えたほうがいいわ
5文字なんてブルートフォースですぐ破られるよ
06236182010/05/15(土) 15:32:47ID:WDq1xTWQ
みなさんありがとうございます。
>>619
進数増やしてちょっと試してみます。

>>620
小分けにして見ます。

>>621
バイナリ保持はおもいつきませんでした。試してみます。

>>622
さすがにブルートフォースされるほど認証きたら弾きますので・・・。
ブルートフォースが行えるようなところならたとえ100文字だったとしてもすぐに破られると思いますよ。
0624nobodyさん2010/05/15(土) 15:46:10ID:???
>100文字だったとしてもすぐに破られると思いますよ。
ねーよ
たとえ数字オンリーでスパコン使ってもそのコンビネーション計算するのに数年かかるだろうよ
俺らが使ってるレベルのPCだとまぁ生きてるうちに終わることはないだろうなw
膨大なネットワーク使った分散コンピューティングとかチートは除いて
0625nobodyさん2010/05/15(土) 16:41:41ID:???
元は端末IDだからバイト長はあんま関係ないんじゃね
端末ID使ってる時点でいろいろ懸念はあるが

10^100のブルートフォースどれくらいかかるんだろww
0626nobodyさん2010/05/15(土) 16:46:37ID:vKC+Ym+n
みんな安心しろ!
Perlを使うとメッセサンオーのようなシステムを構築できるらしい。
しかもお金を取れるぞ!
0627nobodyさん2010/05/15(土) 17:40:02ID:???
彼は100桁の数字とは言ってないぜ。
10^100どころか、256^100だ。
これがすぐ終わるのならレンホウも押し黙るしかないな。
0628nobodyさん2010/05/15(土) 19:59:01ID:???
phpが使えるレンタルサーバーでSQLite使えないケースってある?
0629nobodyさん2010/05/15(土) 20:44:55ID:???
>>1
0630nobodyさん2010/05/16(日) 02:54:25ID:???
>>628
ケースバイケースだね
0631nobodyさん2010/05/16(日) 03:16:25ID:???
有名所のレン鯖ならほとんどいけると思う。
0632nobodyさん2010/05/16(日) 03:32:57ID:???
phpinfoでSQLiteモジュールが入ってるか確認できる
0633nobodyさん2010/05/16(日) 03:48:15ID:???
>>630,631
あるのか。
経験上php使えればmysqlかsqliteは使えるもんだと思ってた。さんくす
0634nobodyさん2010/05/16(日) 09:37:41ID:???
ダメなほうの大手はphpがギリでdbは一切使えないとか平気である。
biglobeなんて有料のビジネスプランでもdb使えない。
0635nobodyさん2010/05/16(日) 11:13:57ID:OZUA2n95
2chのIDは何か関数使ってるんですか?
0636nobodyさん2010/05/16(日) 11:22:25ID:???
何を持って関数とするかだなぁ。
まぁ、関数は使ってるし、ソース公開してなかったっけ?PHPじゃないが。
0637nobodyさん2010/05/16(日) 11:29:32ID:OZUA2n95
単純にIPをハッシュ化するという単純なものではないってことですかね。
perlは触ったことないですが公開されているならちょっとソース見てきます。
0638nobodyさん2010/05/16(日) 11:30:03ID:???
独自に実装しているものだから関数で一発で出すものはないね。
日付とIPアドレスとか組み合わせてcrypt使ってるんだっけ?
0639nobodyさん2010/05/16(日) 12:02:29ID:???
昨日の5文字ハッシュの人だと思うけど、
2chの場合は匿名板なわけで衝突しても特に不具合はないわけだよ
md5をsubstrで5文字にしてもそうそうIDが重複するようなことはない
だけどもちろん重複する可能性はあるので
個人識別の目安とはなるけど完全に信頼できるようなものではないわけ
それでも困らないからそういう実装にしてる
0640nobodyさん2010/05/16(日) 13:21:08ID:???
2chのIDなんて発言者が区別できればいいから8文字しかないんだよ
8文字程度のハッシュを認証に使うなんてどうかしてる
0641nobodyさん2010/05/16(日) 13:50:04ID:???
実際2chのIDなんて割と重複するしね
0642nobodyさん2010/05/16(日) 18:28:06ID:???
今まで4回はIDかぶったことあるわ
ここ半年はかぶってないけど
0643nobodyさん2010/05/16(日) 18:55:41ID:BGJHjr5v
質問です。
xammp環境でメール送信したいんですが
php.ini
の設定の変更箇所なんですけど

SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost

にしています。
この設定でフォームの送信テストをmb_send_mailを使ってやってみました。
エラーとかはでないのですが指定したアドレスへメールが届きません。

sendmail_from = postmaster@localhost
が怪しいかなと思ってるんですがこれって
何を指定するところなんですか?
コメント外しただけでpostmaster@localhost
の部分は変更してないのですが・・・
0644nobodyさん2010/05/16(日) 19:53:41ID:???
smtp_port = 25
これがアウトなんじゃね?
あとはISPによってはSMTP閉じてたりする。
0645nobodyさん2010/05/16(日) 19:55:16ID:???
SMTP = localhostてなってるけどローカルでちゃんとSMTPサーバー動いてる?
0646nobodyさん2010/05/16(日) 20:24:07ID:???
require_onceの前に指定するファイルが存在するかチェックしたいのですが可能でしょうか?
どのような方法で行えばよいでしょうか?
0647nobodyさん2010/05/16(日) 20:29:20ID:???
http://php.net/manual/ja/function.is-file.php
0648nobodyさん2010/05/16(日) 20:39:10ID:???
>>647
あ、なるほど。
ありがとうございます!

簡単すぎて逆に盲点でした。
06496432010/05/16(日) 20:42:59ID:ytLKRNC9

ありがとうございます。
>>644
smtp_port = 25
これって適当に番号変えても大丈夫ですか?
>>645
phpinfoで見たら
SMTP localhostになってるんで動いてると思います。

レンサバのほうにファイルあげて動作確認してみたら動くので
ローカルのxammpのphpの設定に問題があるのはわかるんですが
0650nobodyさん2010/05/16(日) 20:47:03ID:FAWEq1cX
>>643
サブミッションポートでぐぐればいいと思うよ
0651nobodyさん2010/05/16(日) 21:57:49ID:???
うん。見た感じあなたがxammpのsmtp鯖を使うのは無理そうだから、
もっと簡単なsmtp鯖使いなさい。
0652nobodyさん2010/05/16(日) 22:19:07ID:???
2ch のIDはハッシュの先頭n桁だけ表示してるって
winny裁判であったような気がする
0653nobodyさん2010/05/17(月) 00:30:52ID:???
最近PHPマニュアルで検索したとき英語にならない?
■ このスレッドは過去ログ倉庫に格納されています