【PHP】下らねぇ質問はID出して書き込みやがれ 115at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 115 - 暇つぶし2ch910:877
12/02/23 20:38:51.67 QQ9YytJp
>>896
試してみました
requireに書き換えると、多少崩れたページが表示され、
Fatal errorではなくなりました


911:nobodyさん
12/02/23 20:40:13.32
session_registerって使っちゃまずいらしいけど
じゃあ代わりに何を使えばいいの?

912:nobodyさん
12/02/23 20:54:09.81
>>911
非推奨なのを知ってるということは
マニュアルを途中まで読んだな?
もっと下まで読めば書いてあるだろw

913:nobodyさん
12/02/23 20:57:03.04
最近は、ID出さなくても答えて貰える様になったのか。
これがゆとりか。

914:nobodyさん
12/02/23 21:00:17.68
回答しない自治気取り君お疲れ様です。
俺、アンタみたいな人嫌いですw

915:nobodyさん
12/02/23 21:10:37.40
お前が言うな

916:nobodyさん
12/02/23 21:44:28.17 P+2F5uLF
正規表現で既に取得しているものは取らない方法はありますか?

<?php
$data=
ABCDABCD;
$match='/A|B/';
preg_match_all($match, $data, $matches[0]);
print_r($matches[0]);
?>

結果
Array ( [0] => Array ( [0] => A [1] => B [2] => A [3] => B ) )

これを、AとBをそれぞれ一つだけ取得したいです。 1回取得したものと同一のものは取得しない方法はありませんか?
preg_matchを2回使うと一応できるのですが、それだと

結果
Array ( [0] => A )
Array ( [0] => B )

このようにそれぞれ別になってしまいます。
何かやり方はないでしょうか?

917:nobodyさん
12/02/23 22:13:07.95
print_r(array_keys(array_flip($matches[0][0])));

print_r(array_unique($matches[0][0]));

918:nobodyさん
12/02/23 22:28:16.08
>>913
主気取り乙。ずっとこんなところにばかりいないで他いくといいとおもう

919:nobodyさん
12/02/23 22:44:37.14
自己紹介おつ

920:nobodyさん
12/02/23 22:48:53.56
>>866です。レスありがとうございました。
>>894さんの「おかしいというか、扉に同じ鍵で開く鍵穴が2つあるみたいなもん」
というご指摘で、2.3.のおかしな点がよく理解できました。

ランダム文字列クッキーを認証に利用する方法は、自分も考えたのですが、
XSSでJSによりクッキーを盗まれる場合には、セッションクッキーとともに
そのランダムクッキーも盗まれるので効果が無いと思いました。
また、セッション固定化攻撃には、>>908 さんのいうsession_regenerate_id(true)が
適切だと考えます。それとともに、php.ini、.htaccessでセッション付きリンクを
使用不可にするのがよいのかなと。

921:nobodyさん
12/02/23 22:51:08.67
>>920
スレのルールは守ろうな

922:886
12/02/23 23:14:53.15 NC9JkONA
>>921 失礼しました。>>920 は886です。

923:nobodyさん
12/02/23 23:58:21.36 P+2F5uLF
>>917ありがとうございます、できました。

924:nobodyさん
12/02/24 00:05:55.32
ルール厨うぜー

925:nobodyさん
12/02/24 00:12:55.29
>>924
スレのルールは守ろうな

926:nobodyさん
12/02/24 00:25:39.45
おまえがいうな

927:nobodyさん
12/02/24 07:08:08.38
守ってるじゃん

928:nobodyさん
12/02/24 08:26:18.43
>>894
それ意味ないじゃん
ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない
あとその処理自体にセッションハイジャックに強くなる要素が見当たらない

サーバ側でセッションハイジャックされないような対策を考える場合XSSだけに気をつければいい
結局ハイジャックされるかどうかはクライアント側の行動次第
リンクにセッション情報を含めないほうがいいのはクライアント側の行動次第では漏れる可能性が高いから
クライアント側がそれなりの知識を持ってるならリンクにセッション情報を含めても問題ない

929:nobodyさん
12/02/24 08:36:25.74
>>873
自己解決しますた。
telnetじゃムリでした。
<? phpinfo(); ?>がスルーされたのがそもそもの発端だったんだけど、5.3.8と5.2.13ではshort_open_tagが違うんですね。
pukiwikiとかwordpressって律儀に<?php ~ ?>ってやってるのかな?


930:894
12/02/24 09:27:38.22
>>928
前半の
>>ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない
に関しては同意だけど、セッションIDとクライアントの情報を合わせて
盗まれなければ意味があるじゃん。
セッションIDだけ盗まれるってケースは意外とあると思うぞ。
>>920の言うようにクッキーまるごと盗まれたらしょうがないけど。

後半は同意できない。

931:nobodyさん
12/02/24 09:38:18.08
実質的にセッションIDが漏れるってことはクッキーが漏れることと同義だろ
どこの実装もほぼ100%クッキーでやってるんだから

932:nobodyさん
12/02/24 10:29:02.94 BAbDqRA5
eclipse3.7のphpで開発しているのですが、CVSからファイルを持ってきた時に文字化けをしてしまいます。
その為、使用するファイル(Sfit-JIS)を一つずつ選択し、プロパティーから文字化けしないUTF-8に変換しているのですが、
一括ですべてUTF-8にする方法はあるのでしょうか。
使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても
だめでした。


933:nobodyさん
12/02/24 11:10:06.07
>>930
それ同じこと思った。
なんでクッキーとセッションが別腹的な考え方なんだろ。
素人の俺にはわからん。
TLSかけるなりしてクライアントとPCの通信の盗聴防がなきゃ意味ない気が。

934:nobodyさん
12/02/24 11:18:03.05
最新式の複雑な鍵を使ったとしても、
鍵盗まれたら困るってことの対策にはならんもんね。

935:877
12/02/24 12:51:09.28 i01HfJfE
>>877,888,910です
解決策ありませんか?

936:nobodyさん
12/02/24 14:00:59.55
>>935
requireで読めたんならそれでいいだろ
2回以上読み込むファイルをrequire_onceで読み込むのがおかしい

937:nobodyさん
12/02/24 17:03:51.32
>>932
>使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても
だめでした。
それエクリプスの設定をUTFにしてるだけだし…

PHPでそのPHPファイルをfile_get_contentsで読み込んでエンコード変えて同じファイルに書き出すくらいじゃね?

938:nobodyさん
12/02/24 18:34:59.75


939:nobodyさん
12/02/24 20:44:15.85
>>929
毎回<?php って書いてるよ。
<?= とか便利かもって思ったこともあったけど、それが便利だと思える場面に遭遇しなくなった

940:nobodyさん
12/02/24 20:51:14.32
コードアシストで解決

941:nobodyさん
12/02/24 22:22:57.58
>>932
nkf使うとか。

942:nobodyさん
12/02/24 23:20:35.88
$file_name="p/1.html"となってる時、
p/の部分だけを取り除いて、
$file_name2="1.html"とすることはphpでは可能ですか?

943:nobodyさん
12/02/24 23:23:49.74 gMrEIIb2
$file_name="p/1.html"となってる時、
p/の部分だけを取り除いて、
$file_name2="1.html"とすることはphpでは可能ですか?


すいません、上げてました。

944:nobodyさん
12/02/24 23:34:42.08
>>943
basename()がある

945:nobodyさん
12/02/24 23:34:43.65
実際はディレクトリをのぞいてファイル名だけにしたいとかなんだろうけど
そんな質問の仕方だと
substrで三文字目以降を切り出せとか
p/を空文字に置き換えろとかいう答えが返ってくるぞ

946:877
12/02/24 23:48:54.24 i01HfJfE
>>936
requireで読むとFatal errorはなくなりますが、ページの表示が正常ではありません
2回以上読まれるかどうかは未検証ですが、
require_onceの前後のどちらでも、get_included_files()に該当するファイルが含まれないのは問題だと思います

947:nobodyさん
12/02/24 23:51:09.90 kLSGsgF4
phpから現在動いているmtaが何か取得する方法ってありますか?
sendmailか否かさえ分かればいいのですが。

948:nobodyさん
12/02/24 23:54:48.93 gMrEIIb2
>>944
ありがとうございました。
>>945
そうです、ディレクトリ名だけとっぱらいたかったんです。
なんか、適当に作ってたら、mysqlに入れた値が"p/1234.html"
となっていたんです。これはこれで表示されないデータなら
扱いやすいのですが、表示されるデータにディレクトリ名って
欲しいのか?という疑問にぶつかりました。basename()って便利な
関数ですね。

949:nobodyさん
12/02/25 00:21:03.84
>>946
requireで読めて、require_onceで読めないファイルがあるってことだよね。
それがわかっているなら後は何が原因なのか、どんどんコードを削っていけばたどり着くと思うんだけど

950:nobodyさん
12/02/25 00:55:13.78
>>947
Linuxなら、exec関数で "ps ax | grep sendmail" を実行して、その出力をチェックする

951:nobodyさん
12/02/25 01:14:42.48 a/GXX7hd
メールを連続で送信する場合、マニュアルには、

>mail() 関数は、大量のメールをループ内で送信するには 向いていないことに注意しましょう。
>この関数は 1 通のメールを送信するたびに SMTP ソケットをいったん閉じて開きなおします。これは非効率的です。
>大量のメールを送信する場合は、 ≫ PEAR::Mail および ≫ PEAR::Mail_Queue パッケージを参照ください。

と記述してありますが、PEARを使いたくない場合、
ソケット関数で自分でSMTP処理を書くしか無いですよね?

952:nobodyさん
12/02/25 02:43:21.75
実現できる方法でどうぞ。
「しか無い」ってのはよほどのことが無い限り無いと思ったほうが。

953:nobodyさん
12/02/25 02:47:59.67
PEAR::Mail および PEAR::Mail_Queue で必要な箇所を参考・コピペする。

954:nobodyさん
12/02/25 18:02:10.27
>>912
session_register()使う代わりに
$_SESSION に値をぶっこむのね
ありがとう!

955:nobodyさん
12/02/25 18:56:47.63 1lZdYX8R
たとえばですが、
wire.jpというサイトがあります。
内容的には好きなんですが、相当重いサイトです。
こういったPHPで作られたサイトのパフォーマンスを
上げるためにはどうしたらよろしいでしょうか?

956:nobodyさん
12/02/25 19:08:41.43
キャッシュでも作れば?

957:nobodyさん
12/02/25 19:09:58.04 r6BFdbus
RSSからforeachで値を取得したのですが、それをループの外で一つの変数として扱いたいのですが、どうしたらいいでしょうか?

<?php
$array=array(1,2,3,4,5,);
foreach ($array as $value) {
$a=$value;
}
echo $a;
?>

例えばこのようにすると、当たり前ですが結果はループで上書きされて5と表示されます。
foreachで取得したものを一つの変数に入れることは出来ませんか?

958:nobodyさん
12/02/25 19:25:22.22
>>957
よく分からんけど仮に3つ目の値が取りたいなら
echo $array[2];

959:nobodyさん
12/02/25 19:53:18.83
>>957

print_r($array);
して表示結果を見てみなはれ

その上で$array[x] ←xのところに対応した数字をいれる。
で出てくる。

960:nobodyさん
12/02/25 20:48:35.56
$a=$value;を $a[] = $value;

961:nobodyさん
12/02/25 21:26:32.82 r6BFdbus
>>960ありがとうございます。

962:nobodyさん
12/02/26 00:47:29.55
いいってことよ

963:nobodyさん
12/02/26 00:48:27.77
ほい

964:nobodyさん
12/02/26 00:52:26.79 nCX4lbdW
>>956
キャッシュとはどのようなキャッシュですか?

965:nobodyさん
12/02/26 01:35:13.43 nCX4lbdW
キャッシュとは言語レベルのサポートですか?

wire.jpはWordPressみたいですから
WP Super Cacheプラグインみたいなプログラムレベルの
キャッシュのことを意味していますか?

966:nobodyさん
12/02/26 01:42:08.72
( >д<)、;'.・ キャッシュン

967:nobodyさん
12/02/26 01:47:59.96 nCX4lbdW
>>956
例としてあげてwired.jpはW3 Total Cacheが入っているようです。
それでも遅い場合はどうしたらよろしいのでしょうか?

968:nobodyさん
12/02/26 01:48:34.31
>>966
bless you

969:nobodyさん
12/02/26 01:53:36.51
Thank you!

970:nobodyさん
12/02/26 01:58:30.12
phpでデータベースを扱うには、何かと方法がありますが
エクセルのシートで外部参照するみたいに、この列はこっちの
データベースから引っ張って、この列はこっちから
というように複数のデータベースから情報を引っ張って
統合して表示、または登録変更をするためには、どんな
方法を使うのが最も適しているのでしょうか?

971:nobodyさん
12/02/26 02:07:02.73
>>967
オーバークロックしかないな

972:nobodyさん
12/02/26 02:16:44.23 oisclph1
質問させてください。
自動返信メールの内容に値を持たせたいんですが
値の入っていないものは表示させないようにしたいです。

<?php
$MESSAGE = "
注文がありました。

商品    個数
[[りんご]]  [[1]]
[[みかん]]  [[0]]
[[ぶどう]]  [[3]]
";?>

実行すると

りんご1個
ーー(みかんの注文が0なので表示されず空白だけできてしまう)ーー
ぶどう3個

というメールが来てしまうで、みかんの部分を上に詰めさせたいです。

メールが来る仕組みなどは人がしたものなのでよく分かってません。
よろしくお願いします。


973:nobodyさん
12/02/26 03:04:07.86
>>972
$cart=array("りんご"=>"1","みかん"=>"0","ぶどう"=>"3")

$MESSAGE = "注文がありました。\n\n商品    個数\n"
foreach($cart as $key => $val){
  if ($val>0){                          //$valが0以下の時は処理しない
    $MESSAGE.="[[$key]] [[$val]] \n"
  }
}

備考 POST情報はクライアント側で詐称できるので 値段を表示させる場合はPOSTさせないでDBに取りに行ったほうがいいと思うよ

974:nobodyさん
12/02/26 03:34:02.05 oyzRHeH9
俺は自分でも結構オブジェクト指向イケてるんじゃないかと思ってたんだが、
今日クラスを作成していたときにクラス名に悩んで、
候補のものをググってたら、C#の同名のクラスが出てきたんだ。
どんなメソッドがあるのかな?とチラっとみてみたら、
俺がクラスに含める予定だった処理が別クラスで処理されていた。
徹底的に細かくオブジェクトを分けていることに俺はショックを受けて絶望した。
これが本当のオブジェクト指向なのかと。
自信が一気になくなった俺はこれからやっていけるでしょうか?

975:nobodyさん
12/02/26 04:34:33.44
細かく分けることがオブジェクト指向・・・?

976:sage
12/02/26 09:48:27.16
>>974
そもそも論として
phpでオブジェクト指向実装は後付けの中途半端だし、
最適化されていないのでパフォーマンス悪いよ。

それだったらJava、C#みたいな強制的オブジェクト指向言語で
勉強して方がいい。他の言語で役に立つから。

977:sage
12/02/26 09:49:49.71
>>975
PHPerから見ると、
オブジェクト指向言語のクラス設計はすべてが細かく見えるかと。

978:nobodyさん
12/02/26 10:03:42.64
他の言語って、これからいくつ覚えるつもりだよ
一生勉強ってかw

979:sage
12/02/26 10:15:37.18
>>978
これからもphpオンリー?
スマホアプリとか大丈夫?

サーバーサイドオンリーの人だとしても、
phpだけだったら守備範囲が狭くならないかい?

たとえばfacebookみたいに

phpで作りました。

でもユーザー増えて負荷に耐えられなくなりました。

基幹をC++やJavaに切り替えました。

というケースは無いの?

980:nobodyさん
12/02/26 10:22:20.60
>>977
そこが本質じゃないのにね

981:nobodyさん
12/02/26 10:29:56.54
一生勉強って当たり前だろ

982:nobodyさん
12/02/26 10:34:22.17
いや本質だろ。
継承や再利用を考えると重要。

それより次スレ

983:sage
12/02/26 10:38:06.83
そもそも論として、
細かく設計するとPHPの場合すぐパフォーマンスが悪くなる。
いずれにしてもPHPのオブジェクト指向は中途半端で使いにくい。

984:nobodyさん
12/02/26 10:39:22.25
例えばチャットクラスで
書き込みを行うwriteというメソッドがあったとする

PHPerの場合
ここに渡す引数はString型の$messageである

C#erの場合
ここに渡す引数は別クラスで作成したメッセージオブジェクトである

985:nobodyさん
12/02/26 11:12:49.13 yp5CCX+k
メールアドレスの「@」より前を取得したいんですけど、自分では
$tmp = explode('@', $email);
$name = $tmp[0];
という書き方しか思い浮かびません。
もっと簡単にできる方法があれば教えて頂きたいです。

986:nobodyさん
12/02/26 11:18:26.38
echo substr($email, 0, strpos($email, "@"));
複数行になるのが簡単ではないと考えてるなら考えを改めるべし

987:nobodyさん
12/02/26 11:28:57.23
四年前の爺さんの背広からメガビックボーイが出てきたんだが
一生現役ってことを考えると一生勉強くらい普通だと思った。

988:nobodyさん
12/02/26 11:31:05.44
preg_replace("/(?=@).*/","",$mail);
とか

explodeでいいと思うけどな

989:nobodyさん
12/02/26 11:34:48.98
replaceだと元データのメアド使えなくなるやん

990:sage
12/02/26 11:35:02.59
勉強したくないなら
なぜ潰しが効かない、汎用性が低いphpなのか不思議。
汎用性が高い言語選べばよかったのに。

991:nobodyさん
12/02/26 11:39:39.13
どの言語でもできることとできないことがある
1つの言語習得すれば金輪際勉強せずに済む言語なんて皆無

992:nobodyさん
12/02/26 11:46:01.70
>>980
>>1

993:nobodyさん
12/02/26 11:49:03.94
しょうがないから建ててくるか

994:nobodyさん
12/02/26 11:52:02.39
スレリンク(php板)

995:nobodyさん
12/02/26 11:56:49.85 yp5CCX+k
>>986
ありがとうございます。助かりました。
複数行というより、わざわざ配列にするのが気持ち悪くて…。

996:sage
12/02/26 12:01:13.12
>>974
phpのオブジェクト指向はなんちゃってレベルだから。
他の言語ではphpの経験は生かせないよ。

997:nobodyさん
12/02/26 12:03:36.76
そいういうこと書いてるようじゃ
大してオブジェクト指向の考えというのを理解できてないな

998:nobodyさん
12/02/26 12:08:49.02
>>996
>phpのオブジェクト指向
どれだけあほなこと言ってるかわかるか?もっと勉強しろ。

999:sage
12/02/26 12:24:07.98
phpのオブジェクト指向機能の実装

1000:sage
12/02/26 12:25:05.67
PHPer、ダメポ。

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch