【PHP】下らねぇ質問はここに書き込みやがれ Part19
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/09(日) 01:31:18ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
過去スレは>>2-3あたり
0348nobodyさん
2006/04/14(金) 23:19:47ID:???自分がどういう意味を持たせるか、によるんじゃないかな。
$hoge という変数の存在自体を調べる意図があるなら isset だし、
$hoge の中身について評価する意図があるならそれ相応の判定式だし。
ただ気をつけなくちゃいけないのは、$hoge=="" みたいな判定式。
これは、$hoge が "" のときだけじゃなくて、0 のときや false のときにも成立しちゃう。
本当に "" であるかを判断したいならば、strlen($hoge)==0 や、$hoge==="" を使う。
strlen($hoge)==0 は、$hoge が未定義か "" か false の時に成立して、0 の時には成立しない。
$hoge==="" は、$hoge が存在してその中身が "" の時だけ成立する。
関数の中でも、0 と false どっちも返す可能性があるものがあるから、そういう判定の時にも気をつけて。
ex) strpos
0349nobodyさん
2006/04/14(金) 23:25:17ID:dko7defd俺も串作るときこれがわからなくて断念した
どうやるんだ
0350nobodyさん
2006/04/14(金) 23:30:25ID:???> ( isset ($hoge)) {
その変数が定義されているかどうか。
1度も代入してない、unset()した場合、NULLを代入した場合にのみelse条件になる。
主に初期背低が存在しない、特定のsubmitボタンが押されたか、などの存在チェックに使う。
> ($hoge) {
真として評価できる値が入ってるかどうか。
1度も代入していない、unset()した、NULL、FALSE、0、"0"、""、array()のいずれかが
代入された場合にelse条件になる。
一般的な数値チェック、論理チェックなどに用いられる。
たまに、文字列の有無を判定しようとしてこれを使って「0」を入力されたときにバグってるバカがいる。
> ( $hoge != "") {
> (strlen($hoge) != 0) {
文字列として空っぽかどうか。
1度も代入していない、unset()した、NULL、FALSE、""、array()のいずれかが代入された場合に
else条件になる。
FORMデータの入力有無など文字列の存在チェックにはこれを用いる。
0351347
2006/04/15(土) 00:44:06ID:mBWU3p7Tすばらしい回答ありがとうございます。
人間リファレンスのようですね。
else条件のバリエーションをみるとなんとなく分かってきますね。
自分はなんとなくな理由でissetを多用してる気がします。
逆にstrlenはあまり使ってませんでした。
いずれもしっかりとした根拠なく使っていたので、これからは
意味合いをよく考えて適材適所な感じでいきたいです。
ありがとうございまいsた。
0352347
2006/04/15(土) 00:49:45ID:???>348 350
もう一度言いますがすばらしい回答ありがとうございます。
人間リファレンスのようですね。
else条件のバリエーションをみるとなんとなく分かってきますね。
自分はなんとなくな理由でissetを多用してる気がします。
逆にstrlenはあまり使ってませんでした。
いずれもしっかりとした根拠なく使っていたので、これからは
意味合いをよく考えて適材適所な感じでいきたいです。
ありがとうございまいsた。
0354nobodyさん
2006/04/15(土) 01:13:32ID:???0357nobodyさん
2006/04/15(土) 01:24:51ID:???0358nobodyさん
2006/04/15(土) 02:19:58ID:???0359nobodyさん
2006/04/15(土) 02:29:00ID:???どのように設定して、折り返したらよいかわかりません。
どこか参考になるサイトなどはご存じないでしょうか?
0360nobodyさん
2006/04/15(土) 02:59:27ID:???0362nobodyさん
2006/04/15(土) 06:36:20ID:???【je-pu-pu アクセス解析 有料版のご案内】ttp://je-pu-pu.jp/access/pay.php
月額\350らしいんだけど、どうも内部はこんな感じ→ ttp://je-pu-pu.jp/webalizer/
これってJE製作のツールでなくて、モロ海外フリーソフトのwebalizer↓なんでないかと思うんだけど。
ttp://www.ahref.org/webalizer.html()
勝手にコレの利用料で金取ってもいいの?ライセンス得てるんでしょうか?
それとも表面上は同じに見えるオリジナルなのでしょうか。
せいぜいあってもコードパクって部分的に改変しただけな気がするのですが・・・
もしかして人のフンドシで文字通り商売してるのでしょうか?
もしそうだったらレンタルするのが怖いです。
webalizerの権利関係詳しくないから誰かそっち方面強い人調べてみてくれないですか?
どうぞよろしくお願いします(´・ω・`)
0365nobodyさん
2006/04/15(土) 09:15:20ID:???自分で処理して飛ばすしかないのでは
$a=file_get_contents('http://example.net/');
なら自動で処理してくれるんだけどなあ・・・
いちいち個別に対応するのが面倒だったので
いじって手抜き処理加えちゃったけど
0367nobodyさん
2006/04/15(土) 12:42:19ID:???0369nobodyさん
2006/04/15(土) 15:37:56ID:???対象の文字列が.などを含んでいて、かつエンコーディングを変更したい場合、
エスケープしてからエンコーディングしたものをeregするのか
それともエンコーディングしてからエスケープしたものをeregするのか
どっちが正しいのでしょうか?
考えてたらぱにくってきました・・・おいらはあふぉです orz
0370nobodyさん
2006/04/15(土) 15:44:03ID:???基本はエンコーディングしてからエスケープ。
でないと無関係な部分(漢字の後ろ1バイトに含まれる正規表現文字など)まで
エスケープされてまともに比較できなくなる場合がある。
0371nobodyさん
2006/04/15(土) 16:03:51ID:???0372nobodyさん
2006/04/15(土) 16:06:05ID:FisXV/Qrできるのでしょうか?
0374nobodyさん
2006/04/15(土) 16:39:27ID:???ヘルプでキーワード検索すれば大概の場合自分のやりたい事が実現可能かどうかわかるので、アルゴリズムの基礎を学んだ方が効率良い事に気がつきますた
プログラムっておもすろいですね
0375nobodyさん
2006/04/15(土) 16:42:31ID:???0376372
2006/04/15(土) 16:44:33ID:FisXV/Qrstr_replace()で'%2F'を'/'に置換したんです。ありがとうございました。
0377375
2006/04/15(土) 16:52:52ID:???おまえら素人が必死に考えてる間にyahooで自己解決。
0379nobodyさん
2006/04/15(土) 17:03:07ID:FisXV/Qr0380nobodyさん
2006/04/15(土) 17:04:15ID:???0382nobodyさん
2006/04/15(土) 17:39:13ID:1qLGoaV/入力された文字が全角カタカナかどうかの判別の方法がわかりません。
半角英字は↓でできました。
if ($ename != "" && !ereg("^[a-zA-Z \']+$", $ename)) {
$error['ename'] = "<font color=\"red\"> 半角英字で入力してください。</font>";
}
その要領で全角カタカナでやったのですが、全部引っ掛かる状態になります。
if ($fname != "" && !mb_ereg("^[ァ-ヶ]+$", $fname)) {
$error['fname'] = "<font color=\"red\"> 全角カタカナで入力してください。</font>";
}
$fnameの中に全角カタカナを入れています。
0383nobodyさん
2006/04/15(土) 17:48:21ID:???0384nobodyさん
2006/04/15(土) 17:57:37ID:1qLGoaV/mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.1
0385nobodyさん
2006/04/15(土) 17:58:16ID:1qLGoaV/mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding ISO-8859-1 no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value
0386nobodyさん
2006/04/15(土) 22:12:07ID:269HnUWO$a に入ってる数値が 18未満だったら・・・というif文を作りたいのですが
if($a == "15 <= 0") というのは不可能でしょうか?
不可能でしたら方法を教えていただけないでしょうか。
0387nobodyさん
2006/04/15(土) 22:21:10ID:???キミがやりたいのは、18より小さいかを調べることだろう。
ttp://www.php.net/manual/ja/language.operators.comparison.php
0389nobodyさん
2006/04/16(日) 02:35:31ID:???そこのあたりはどの言語やっても基本の部分なんだから
PHPの超初心者本とかかって勉強しとけよ
基本的な構文はC、Java、etc・・・ほとんど共通だ
0390nobodyさん
2006/04/16(日) 03:26:56ID:???> mbstring.internal_encoding ISO-8859-1 no value
これをSJISに設定
0392386
2006/04/16(日) 09:39:55ID:???あ、それが一番近いかもしれません。
0より大きくて18より小さい。
ありがとうございます。
>>387
よく考えてみるとそうですね。ありがとうございます。
>>388
その方がシンプルみたいですね。
参考になります。
>>389
二つの条件を一度にやるのがよくわかりませんでした。
勉強不足ですいません。
0393nobodyさん
2006/04/16(日) 11:40:09ID:???PHPの勉強不足って感じでなくてさ、日本語覚えたての3歳児って感じ
他の言語もやったことなくPHPから始めたんだろうけど
0394nobodyさん
2006/04/16(日) 12:20:28ID:U9is4hyDphpとmysqlで在庫管理システムみたいのを作ったのですが、
脆弱性というか、セキュリティ的なものは一切考えていません。
画像ファイルのアップロードをするときに、拡張子がjpgじゃないとダメとか、
10240バイト以下じゃないとダメとか、
あとhtmlspecialcharsとか書いたりしてますが、
そもそも何が危ないのかわかってません。
いくらわかってなくても、最低限これだけはやっとけみたいのは
ありますか?
0395nobodyさん
2006/04/16(日) 13:19:17ID:???あくまで「最低限」ってことならサイズ制限とファイル名をそのまま使わなきゃ
それで十分じゃないかって気がする。
真面目にやるなら画像形式のバイナリチェックが欲しいところ。
拡張子の判定はほとんど意味ない。htmlspecialcharsはどこでやってんだ?
0396nobodyさん
2006/04/16(日) 13:27:06ID:???PHPサイバーテロの技法―攻撃と防御の実際
ttp://www.amazon.co.jp/exec/obidos/ASIN/4883374718/
0397nobodyさん
2006/04/16(日) 15:49:40ID:nblpYMkq$rows = mysql_num_rows($result);
if ( $rows < 0 ) error();
何かで参考にして上記のようにエラー処理をしてたんだけど
もしかして↓のようにすれば mysql_num_rows って必要ないですか?
$result = mysql_query($sql) or error();
0399398
2006/04/16(日) 15:56:13ID:???それをやってるのが >$result = mysql_query($sql) or error();
よって >上記のようにエラー処理をしてたんだけど という前述コードは
「エラー処理を一切していない」
0400nobodyさん
2006/04/16(日) 16:01:25ID:???if ( $rows < 0 ) error();
おまけにこれなに?mysql_num_rows()って「0以上の数値」か「FALSE」しか返さないんじゃなかったか?
マイナスの場合なんてありえないだろ。何のチェックにもなってなくないか?
0401397
2006/04/16(日) 16:25:50ID:???ttp://allabout.co.jp/internet/database/closeup/CU20030227/
昔このあたりを参考にしました。
if ( $rows < 0 ) error();
この部分は省略しようとしてやっちゃいました。実際は
if ( $rows > 0 ) { }
else { error(); }
こういう感じになってます。
0402nobodyさん
2006/04/16(日) 16:37:45ID:???・SQLそのものがおかしくて失敗 -> mysql_queryの返り値を適切に処理
or error()でやってるのはこの部分(まぁ適切かどうかは疑問だが)
・(mysql_num_rowsだからselectしてると仮定して、)select結果が一つもなかった時の処理
こいつは正確にはエラーでは無い。結果が0個の時とそれ以外の時とで
表示の仕方を変えたい時に使うことが多い。
0403nobodyさん
2006/04/16(日) 16:38:58ID:???> if ( $rows < 0 ) error();
この条件と
> if ( $rows > 0 ) { }
この条件は全然一致してないだろ
0406nobodyさん
2006/04/16(日) 17:23:24ID:???0407nobodyさん
2006/04/16(日) 17:31:15ID:ifz+1Zn4KDDIのUAを取得したあとに、またif(preg_match〜ってするの?
0408397
2006/04/16(日) 17:39:38ID:nblpYMkq0411nobodyさん
2006/04/16(日) 17:56:03ID:???if(preg_match('/(KDDI)-(\w+)/', $_SERVER['HTTP_USER_AGENT'], $match)) {
$ua = $match[1];
}
0412nobodyさん
2006/04/16(日) 17:58:21ID:???失敗。
if(preg_match('/KDDI-(\w+)/', $_SERVER['HTTP_USER_AGENT'], $match)) {
$ua = ($match[1] == 'SN33')? "W41A": "W";
}
0413nobodyさん
2006/04/16(日) 18:39:52ID:???PHPプログラミングに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
ここは "下らない質問でもして構わないスレ" であってそれを歓迎するスレではありません。
自分のしてる質問が下らない質問だということをわきまえ、謙虚になりましょう。
下らない質問をしてるんだから当然のように罵詈雑言も浴びせられるだろうが
全て甘んじて受けましょう。そうすればひょっとすると回答をしてもらえるかもしれません。
0414nobodyさん
2006/04/16(日) 20:03:34ID:???0415nobodyさん
2006/04/16(日) 20:06:03ID:???クラスくらいは普通に使うが。
0416nobodyさん
2006/04/16(日) 20:31:30ID:???・第三者が自由に書き込めるレビューの設置
・レビューと併せた投票システムの設置
上記の三つを作成したいのですが、
全くの初心者ですのでphpを勉強するのにお勧めの教本があれば教えて頂きたいです。
宜しくお願いします。
0417nobodyさん
2006/04/16(日) 20:42:06ID:???つttp://www.amazon.co.jp/exec/obidos/ASIN/4797320974/503-6104378-4423149
0418nobodyさん
2006/04/16(日) 21:29:52ID:???という処理はできないでしょうか?
0421nobodyさん
2006/04/16(日) 21:40:57ID:???※ file()関数
※ for文、もしくはwhile文
上の二つが大ヒントだ!!
まぁ、ほかのやり方は山ほどあるけどね
0425nobodyさん
2006/04/16(日) 22:11:36ID:U9is4hyDcheckboxのnameがcheck[]となっていました。
checkboxは10項目くらいあるんですけど、全部check[]です。
これはその後どうやってばらばらに受け取るんですか?
チェックボックスはラジオボタンとちがって、複数の値が送れる(?)ので
メールフォームとかで、チェックされたものだけを出力したいのですが、
いまいちうまくいきません。
0426nobodyさん
2006/04/16(日) 22:12:41ID:???0427394
2006/04/16(日) 22:20:16ID:U9is4hyDレスどうもです。
拡張子は意味無いんですか。勉強になります。
ファイル名はdate関数とかでリネームしてます。
てゆうかなんでそのままのファイル名は危険なんですかね?
htmlspecialcharsは普通にinput textをdbに入れる前に使います。
textareaの文章とかにも使います。これも意味ないですかね?
>396
その本は気になっていて、ちょっと読んだのですが、
難しそうで自分にはまだ早いかなと思ってしまいました。
もう一回読んでみます。
0429425
2006/04/16(日) 22:24:23ID:U9is4hyDvar_dampって初めて知りました。print_fとは違うんですか?
配列に格納されていたとしても、入っているもの(チェックされたもの)だけを
判別して、取り出すにはどうすればいいですかね?
0430nobodyさん
2006/04/16(日) 22:35:23ID:???ああ、アップロード以外に文字列データもあるってことね >htmlspecialchars
それなら分かる。
しかし、普通はhtmlspecialcharsはHTML出力時に使うものであってDBに入れるときに使うもんじゃないぞ。
DBに入れるときはmysql_escape_stringしとかなきゃダメだろ。
拡張子はいくらでも嘘を書けるから、むしろ1度削除して自前で判定した拡張子を付加してやった方がいい。
0431nobodyさん
2006/04/16(日) 22:36:50ID:???元々チェックボックスってチェックされたものしか送信されないような…。
後はそれぞれのvalueの内容を見て振り分けてるんじゃないの。
0432nobodyさん
2006/04/16(日) 22:53:40ID:42+ATyOFPHPinfo()は動くんだけど
echoさえ動きません。。。orz
PHP Version 4.4.1-pl1です。。
もう、インストール&アンイストールを4回くりかえしてます。
php.iniの設定は以下の通りです。
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
extension=php_mbstring.dll
0433nobodyさん
2006/04/16(日) 22:55:23ID:???もっとくやしく
0434nobodyさん
2006/04/16(日) 23:12:53ID:ifz+1Zn40438nobodyさん
2006/04/17(月) 00:28:08ID:ivoWdWE5どこに行けばいい?
0439nobodyさん
2006/04/17(月) 00:53:31ID:qfnqXSjS>>437
すいません
解決しました。
PHP.iniの設定をmbstring.internal_encoding = SJISにしたら直りました。
下らねぇ質問で失礼しました
0440nobodyさん
2006/04/17(月) 01:07:46ID:???0441nobodyさん
2006/04/17(月) 03:44:51ID:???誰か、該当者やちゃってくれない?
0444nobodyさん
2006/04/17(月) 12:48:59ID:Z/1jQgcoでいいだろ。ってことでしょ。
0445nobodyさん
2006/04/17(月) 13:10:32ID:???0446nobodyさん
2006/04/17(月) 13:59:46ID:rTnmXwePPHPでGDライブラリを使いたいので、必要なライブラリをインストールしたのですが
何度やってもFreeTypeを使えるようになりません。(phpinfo()で見てもFreeType Supportが有効にならない)
GD SupportやJPG/PNG Supportは有効になっていてグラフィックス関連の関数も使えるのですが・・・
OSはRedHat9、PHPやGD等のライブラリは全てソースからインストールしています。
○挑戦中のバージョン
PHP4.4.2.tar.gz
gd-2.0.33.tar.gz
libpng-1.2.8.tar.gz
jpegsrc.v6b.tar.gz
freetype-2.1.10.tar.gz
zlib1.2.3.tar.gz
PHPでGD+FreeType環境を構築された方いらしたら、./conigureのオプション指定方法やライブラリのバージョン等を教えていただけないでしょうか?
0447nobodyさん
2006/04/17(月) 13:59:47ID:???また他人を騙るアホが出てきたな
質問者は語られたくなかったらID付けましょう
ageればID付きます。
って言うのをテンプレ化キボン
それでも本人性の確認は出来ないけどね
■ このスレッドは過去ログ倉庫に格納されています