【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0456nobodyさん
2011/04/06(水) 19:39:37.54ID:???マニュアルのそのページ全部読んで試したかい?
Someone previously mentioned that MSIE doesn't cache gzipped content. This is false. He misread the source of information. In fact, IE will cache gzipped content no matter what. Here is the quote from the mailing list:
The reason the COMPRESSED responses are, in fact,
always getting cached no matter what "Vary:" field name
is present is just as I suspected... it is because MSIE
decides it MUST cache responses that arrive with
"Content-Encoding: gzip" because it MUST have a
disk ( cache ) file to work with in order to do the
decompression.
だそうだ。俺は試してないから知らんが。
0457452
2011/04/06(水) 19:47:54.84ID:CfTvqrTNごめんなさい。
翻訳通しましたが何を言ってるのかわからないです。
具体的なコードがあれば理解できるのですが。
ユーザエージェントには、
HTTP_ACCEPT_ENCODING gzip, deflate
とあるので、何らかの方法でなら可能だとは思うんですけど。
0458nobodyさん
2011/04/06(水) 20:19:22.16ID:???英語とプログラムの勉強が同時にできる。
0459nobodyさん
2011/04/06(水) 20:27:34.85ID:???適当にそれらしき英文貼ってごまかすことはよくある
しかしそれは全く的外れである
0460nobodyさん
2011/04/06(水) 20:57:24.75ID:???だからそのページの下の方ずっと読んだの?
サンプルコードも色々出てるじゃん。
Content-Encoding: gzip あたりがヒントになりそうだろ。
何度も言うけど試したわけじゃないから知らんよ。
0461nobodyさん
2011/04/06(水) 21:16:05.72ID:???0462nobodyさん
2011/04/06(水) 21:16:49.29ID:???0463nobodyさん
2011/04/06(水) 21:55:54.14ID:???LDAPでログイン認証等を行っているのですが、不具合があり困っています。
LDAP_BINDを何回かやっていると、接続できなくなります。
エラーの内容は49のLDAP_INVALID_CREDENTIALSです。
アパッチを終了させ、ネットワークアダプタを再起動させないと接続できなくなっていしまいます。
接続は以下のようになっています。
ブラウザhttp → 80 → ローカルPC(xampp1.7.3 apach) → 389 → AD(win2003)
バインドできない間ですが、以下は動作しますのでネットワークの不具合ではないと思っています。
エクスプローラー → ネットワーク → Activedirectory検索
AD連携が不要になった時点、毎回リクエスト後にunbindも必ず行っています。
どなたか、考えうる情報をお願いします。
0464nobodyさん
2011/04/06(水) 21:58:17.63ID:???0465nobodyさん
2011/04/06(水) 21:59:19.02ID:9SLSQWTQ0468463
2011/04/06(水) 22:03:12.31ID:9SLSQWTQたまにドメインでパスワードなしの人がいますが、
LDAPの際にパスワードなしでもbindが成功していまいます。
環境が匿名bindでsearchできない(取得できない)仕様なので、
入力されたID・パスワードでbind後、自身をsearchして取得できたら認証OK
としていますが、どう思いますか?
0472nobodyさん
2011/04/06(水) 23:17:29.22ID:GwYx6Y2Wじゃあ消えろ(^^)
0474nobodyさん
2011/04/07(木) 01:19:22.15ID:T+wF9gWRこのツールってどういう仕組みですか?
AU携帯でURLにアクセスするだけでPOST送信されます。
他のDoCoMo,Softbank,PCなどでは使えないみたいです。
POST送信するサイトがPC禁、Proxy禁にしてあるところでも
このツールで普通にPOST送信できてしまうので、
ソケットではないと思うのですが・・・
てか、ソケットだったらキャリア指定する必要ないですし。。。
というか自分の掲示板にも投稿できました。
リンクのファイル拡張子はcgiで使用されている言語はperlですけど
どうなってるか想像付く人居ますか?
私はPerlではなくPHPで作成したいです。
それとこれをされると普通に連投とかされてしまうので
対策方法も考え付く方居たらお願いします。
0475nobodyさん
2011/04/07(木) 01:25:07.30ID:???0478nobodyさん
2011/04/07(木) 08:35:09.01ID:???消えろと命令されても従う義務はありませんので消えません。
屁理屈ですか。では、そもそも>>1を読む義務が存在しないので、
>>1に書かれているローカルルールは無効です。
2ch全体のルール(規則)であれば、2chの関係者が作成したものなので責任の所在が明確ですが、
このスレのルールを誰かが作ったとして、どこの誰かもわからんような奴が作ったルールなどに
従う義務はない。
0479nobodyさん
2011/04/07(木) 09:10:36.19ID:???このスレでやる以上従うのは義務です
0480nobodyさん
2011/04/07(木) 09:22:06.06ID:???ある意味、法律とかマニュアルとかが整備されすぎなんじゃないかって思う
ルールにのってないからやっても大丈夫とか、○○のルールには従う必要ないとか、常識で考えることもせず
まわりに合わせることができないだけなのに自分かこいいとか思ってる哀れな子増えすぎだよね
俺たち大人がこういう子をぶん殴ってこなかったのも悪いかも知れんね
0481nobodyさん
2011/04/07(木) 09:37:04.52ID:UvKKIzH2問題なくリファラを収集できているのですが、「http://○○.com/referer.dat」など
外部ドメインへ書き込みをしようとするとエラーになってしまいます。
どのように記述すれば外部サーバー内のdatファイルに書き込みできるでしょうか?
//リファラを書き込むファイルを指定
$refererfile="referer.dat"; ←ここで困っています
//接続者のPC環境を取得
$agent = $_SERVER["HTTP_USER_AGENT"];
//接続者のリファラを取得
$referer = $_SERVER["HTTP_REFERER"];
//時間の取得
$wday=time();
$days=date("YmdHi",$wday);
//追記用でファイルを開く
$fp = @fopen($refererfile,"a+");
//ファイルを一時ロック
flock($fp,LOCK_EX);
//書き込み
fputs($fp, $days."|".$referer."|".$agent."\n");
//ロック終了
flock($fp,LOCK_UN);
fclose($fp);
0482nobodyさん
2011/04/07(木) 09:37:55.66ID:???0484nobodyさん
2011/04/07(木) 10:41:36.61ID:???一、外部サーバ側で書き込み可能なプロトコルを開通する。
http://www.php.net/manual/ja/wrappers.php
一、とりあえずシステムのロガーへ投げてそっちで設定する。
一、外部サーバ側にブログっぽいアプリを設置してそこへPOSTする。
0485nobodyさん
2011/04/07(木) 12:23:27.65ID:???釣りではありません。真剣です。
そういう人もいることを考慮しなければならないということです。
ぶん殴ってもいいですが、傷害罪で訴えますよ。
0486nobodyさん
2011/04/07(木) 12:31:59.43ID:???0487nobodyさん
2011/04/07(木) 12:46:20.23ID:???0488nobodyさん
2011/04/07(木) 12:51:19.28ID:???0489nobodyさん
2011/04/07(木) 13:18:33.48ID:kE4uZ6E8ループの中で
$var[$A][$B][$C]の値の有無を確認して
値があればそれに沿った処理を行い
値がなければそれに沿った処理を行い、
$var[$A][$B][$C]に値を設定しています。
ループはテキストファイルを読み込んで
1行1行の値に対して上記の処理を行います。
テキストファイルの中には
A,B,Cの値の組み合わせが入っているので、
上記のように3次元の配列にしたわけですが、
A,B,Cの文字列の値を結合して
1次元配列でしたほうが階層は深くならないなと
思ったのですが、どちらのほうが実装する上ではスマートなのでしょうか?
1次元配列のほうがパフォーマンスも良いように思えるのですが・・・
0490nobodyさん
2011/04/07(木) 13:44:13.84ID:???俺ならABCを結合したキーにして1次元配列にする
0491nobodyさん
2011/04/07(木) 13:49:11.55ID:???パフォーマンスが悪いところあれば直してあげるから
0492nobodyさん
2011/04/07(木) 14:06:34.30ID:???値があれば、がどのレベルなのかによるんじゃないかな。
3次元すべてに対してissetしてるならもしかすると遅いかも。
パフォーマンスについて気にするのは、そこが遅いとわかった時だけでいいよ。
>>490
デリミタは何にするの?
0493nobodyさん
2011/04/07(木) 14:27:27.72ID:???桁数が決まってたらデリミタなんかいらないし、桁数決まってない数値だってなら数字以外ならなんでもいいべさ
0494489
2011/04/07(木) 14:32:07.67ID:kE4uZ6E8その後1次元配列で試してみたんですが、半分近く処理時間が短縮できました。
元々の3次元配列を使った場合のロジックにも問題があったので、
それも影響しているとは思うのですが。
ですので、1次元の配列でやってみたいと思います。
デリミタは私は「_」で行こうと思います。
これはA,B,Cに含まれない値になるので。
どうもありがとうございました。
0495nobodyさん
2011/04/07(木) 15:44:21.26ID:???条件として、登録しているテキスト内に「//img1」の文字があれば画像に変換するんです。
1.$wk_text = htmlspecialchars($row['Text']);
2.$pat = '(//img1)';
3.$rep = '<IMG SRC=./image/1-1.jpg WIDTH="120" HEIGHT="80"/>';
4.$wk_text = ereg_replace($pat, $rep, $wk_text);
これで表示は出来るんですが、3.の部分を固定したくないです。
画像だけ変数ってできます?
0496nobodyさん
2011/04/07(木) 16:04:04.46ID:???0498nobodyさん
2011/04/07(木) 18:24:49.43ID:???私怨かなんか知らんがすいとんされてたぞ
http://hato.2ch.net/test/read.cgi/sato/1300975748/279
0499nobodyさん
2011/04/07(木) 18:26:09.72ID:HyNj3QLj因みに、>>496おれじゃないよーww
MySqlに登録した画像を表示する為にはどうすればいいですか?
条件として、登録しているテキスト内に「//img1」の文字があれば画像に変換するんです。
1.$wk_text = htmlspecialchars($row['Text']);
2.$pat = '(//img1)';
3.$rep = '<IMG SRC=./image/1-1.jpg WIDTH="120" HEIGHT="80"/>';
4.$wk_text = ereg_replace($pat, $rep, $wk_text);
これで表示は出来るんですが、3.の部分を固定したくないです。
画像だけ変数ってできます?
0500nobodyさん
2011/04/07(木) 18:59:22.14ID:???> 画像だけ変数ってできます?
の意味がいまいちわからん。もう少し詳しく
0501nobodyさん
2011/04/07(木) 19:01:17.33ID:???0502nobodyさん
2011/04/07(木) 19:27:40.90ID:???だけど変換ルールが分からんな。
どこまでが固定なのかもわからんし、数字で対応させるのかも
分からない。
あと、eregは非推奨になったから、特に問題がなければpregで。
0503499
2011/04/07(木) 19:38:40.70ID:HyNj3QLj返信ありがとうございます。
$row['Text']内に、//img1-->画像1と言う文字列が入っています。
db側に 1-1.jpg を登録済み。
3.$rep = '<IMG SRC=./image/xxxx WIDTH="120" HEIGHT="80"/>';
ここのxxxx部分にdb側から1-1.jpgを持ってきたい。
xxxxの部分は可変で出来ないでしょうか?と言う内容です。
0504。 ◆oDupeixhZv52
2011/04/07(木) 19:39:01.70ID:???実際に使ってる変数にするとか、htmlspecialchars とか ENT_QUOTES とか ""で囲むとかは適宜やってほしい。
0505。 ◆oDupeixhZv52
2011/04/07(木) 19:41:08.99ID:???0506nobodyさん
2011/04/07(木) 19:43:31.96ID:???0507nobodyさん
2011/04/07(木) 20:07:12.52ID:???まだよくわからないんだけどなぁ。
$row['Text']って変数名からするとDBから引っ張ってきたデータなんでしょ?
なら「1-1.jpg」という文字列も引っ張ってこれるわけだよね。
それをそのまま$repの中に埋め込めばいいんじゃないの?
$row['Text']に「//img1-->画像1」という文字列が入ってるの?
何で$patの中身をカッコで括ってるの?
関係ないけどhtmlspecialcharsは一番最後、出力の直前に行ったほうがいい。
0508499
2011/04/07(木) 20:23:06.27ID:HyNj3QLj>>507
お二方、ありがとうです。
dbの中身が$row[xxx]に配列で入ってます。
KijiID:1
Text://img1 --> 画像ファイル1で添付
ImagePath1:1-1.jpg
因みに、//img1が文字列中にあった場合、(画像1)の変換は出来たですが、
この部分を1-1.jpgで画像を表示させる方法がわからないのです。
いま正規表現とか調べながらやってるんですが、画像で躓いてます。。
0509nobodyさん
2011/04/07(木) 21:17:10.50ID:Iy8VBj9ymmcache関係?なんでしょうか?
list($min, $max) = explode('-', $s, 2);
0510 ◆QkRJTXcpFI
2011/04/07(木) 21:56:05.70ID:gsgwRBSD現在の年月日は 2011.4.7 で
書き換え後の年月日は 2100.9.9 にしたいです。
「index.html」と「memory.xml」が同じフォルダ内にあります。
●memory.xmlの内容は以下のとおりです--------------------
<?xml version="1.0"?>
<memory>
<year>2011</year>
<month>4</month>
<day>7</day>
</memory>
0511 ◆QkRJTXcpFI
2011/04/07(木) 21:56:23.35ID:gsgwRBSD<?php
$memoryFile = 'memory.xml';
if ( $xml = simplexml_load_file ( $memoryFile ) ) {
function changeMemory ( $year, $month, $day ) {
$xml -> year = $year; //年の書き換え
$xml -> month = $month; //月の書き換え
$xml -> day = $day; //日の書き換え
$xml -> asXML ( $memoryFile ); //ファイルに書き出す
}
changeMemory ( 2100 , 9 , 9 );
}
?>
どうも、以下の1文が作動してくれない気がします。。
$xml -> asXML($memoryFile); //ファイルに書き出す
どなたか原因がわかる方いらっしゃいましたら、
なにとぞご教授よろしくお願いいたします。。
0512nobodyさん
2011/04/07(木) 22:03:54.24ID:???$file = 'memory.xml';
if ($xml = simplexml_load_file($file)) {
changeMemory(2100, 9, 9, $file, $xml);
}
function changeMemory ($year, $month, $day, $file, $xml) {
$xml->year = $year; //年の書き換え
$xml->month = $month; //月の書き換え
$xml->day = $day; //日の書き換え
$xml->asXML($file); //ファイルに書き出す
}
0513512
2011/04/07(木) 22:07:06.07ID:???<?php
$file = 'memory.xml';
changeMemory(2100, 9, 9, $file);
function changeMemory ($year, $month, $day, $file) {
if ($xml = simplexml_load_file($file)) return false;
$xml->year = $year; //年の書き換え
$xml->month = $month; //月の書き換え
$xml->day = $day; //日の書き換え
$xml->asXML($file); //ファイルに書き出す
return true;
}
0514nobodyさん
2011/04/07(木) 22:33:02.11ID:???これで一応いける。画像が複数とかになったら知らん。
いろんな人が訊いているのに、条件の詳細が書いてないもんな。
$row['Text'] = '//img1 --> 画像ファイル1で添付';
$row['ImagePath1'] = '1-1.jpg';
$wk_text = htmlspecialchars($row['Text']);
$rep = "<IMG SRC='./image/{$row['ImagePath1']}' WIDTH='120' HEIGHT='80'/>";
$wk_text = str_replace('//img1', $rep, $wk_text);
0515nobodyさん
2011/04/08(金) 00:24:25.10ID:tO6Xjg0e$female3=${$CurrentArray}[3]."female";
$female3Count = $_GET[$female3];
GETで取得する変数名 => ここの部分 =>$_GET[ここ]
を動的に指定しようとして上記の指定をしましたが、うまくいきません。
上記の場合で、female3に入っている名前のGETを取得するには、
female3Countはどのように指定すれば良いのでしょうか。。
0517nobodyさん
2011/04/08(金) 01:08:58.07ID:???元となるフォームのほうで、<input type="text" name="female[]">とでもしてんのかな
0518nobodyさん
2011/04/08(金) 01:46:40.28ID:???やりたいことはそれでできるはず
もしかしてすごく根本的なミスでは?
>$female3=${$CurrentArray}[3]."female";
$female3=$CurrentArray[3]."female";
0519nobodyさん
2011/04/08(金) 02:03:21.36ID:???フォームから送信されるなんてどこにも書いてないなのに
フォームとか言い出してるおまえはエスパー力が高すぎる
0520499
2011/04/08(金) 09:40:26.44ID:/87TPhf8ありがとうございます。
自分でもどうやって質問するかがまとまってなくてごめんなさい。
でも、あれだけの内容でいろいろ教えてくれてありがとう。
このソースで問題無く表示おkでした。
これからは、いろいろ勉強して教える立場になりたいとおもいます。
0521nobodyさん
2011/04/08(金) 12:10:11.88ID:MJksbvOe0522nobodyさん
2011/04/08(金) 12:40:23.54ID:???0524499
2011/04/08(金) 15:25:27.62ID:/87TPhf8いえいえ、まだPHP始めて1週間たってないです。
加えて言うと、プログラムはコレが初めてです。
今は、わからない事あればググッて調べ、それでもわからなければ
ココで聞くみたいな感じですね。
0525nobodyさん
2011/04/08(金) 15:44:10.82ID:???いえいえもう十分ベテランです。
ここの質問もググって答えてあげればいいんです。
実はみんなそうやってるんですよ。
0527nobodyさん
2011/04/08(金) 16:16:10.23ID:z4213poJfind()を使ってテーブルから指定したレコードの要素を取り出したいんですが
find('all', array("test"=>"test");
で、ひとつもヒットしないはずなのに
なぜか全てのレコードの要素がヒットしてしまいます
なぜヒットしてしまうのか検討がつきません
どなたか詳しい方いましたら教えていただけませんか。よろしくおねがいします
0529nobodyさん
2011/04/08(金) 16:52:27.96ID:???あ、すいません!書き忘れました。
実際にはfind('all', array("test"=>"test"));となっております。
一体なにが悪いのか。。。
0530nobodyさん
2011/04/08(金) 17:39:34.00ID:???array("test"=>"test") って引数は有効なの?
無効だから無視されて find('all') と同等になっちゃってんじゃないの?
cakePHP使ったことないから知らんけど
0531nobodyさん
2011/04/08(金) 17:46:41.59ID:6kx7EUS0function t1($s) {
return isset($s);
}
function t2(&$s) {
return isset($s);
}
こっちは動作します
この書き方はあってますか?
0532nobodyさん
2011/04/08(金) 17:56:37.59ID:???引数をもう一度調べたところ、どうやら間違っていたようです。
find('all'...の使い方を碌に調べずにやっていたせいですね。
どうもありがとうございました!
0533nobodyさん
2011/04/08(金) 18:26:27.14ID:???配列の要素を参照渡しすると勝手に定義されてしまう謎の副作用のせい
http://ideone.com/w9p4u
0534nobodyさん
2011/04/08(金) 18:56:46.86ID:gZ3pjAdfPHPから.htaccessを書いて、アクセスしてみるしかない?
0535nobodyさん
2011/04/08(金) 19:01:27.20ID:???これのどれかでできなきゃ無理なんじゃね
0536nobodyさん
2011/04/08(金) 21:33:10.16ID:6kx7EUS0ありがとうございます。直しておきました。。
undefined indexは気にしなくていいんですね
0537nobodyさん
2011/04/08(金) 22:42:44.15ID:TULfamPXCakePHPもダウンロードしてみましたが、掲示板を
カスタマイズしている程度の私には不要な気がしました。
皆さんは、どんなソフトを使ってPHPを書いていますか?
0540nobodyさん
2011/04/08(金) 22:49:53.20ID:???0541nobodyさん
2011/04/08(金) 23:00:01.73ID:???0545nobodyさん
2011/04/08(金) 23:54:47.66ID:zTYaWkKEを防ぎたいと思っています。
ログイン時間をDBなどに保存してチェックをする方法以外に
何か良い方法はないでしょうか?
0546nobodyさん
2011/04/08(金) 23:57:20.79ID:???恥ずかしいとかwwww
馬鹿じゃないのかなぁ?
恥ずかしいって何?
能率が悪いコーディングしてるなって思われる事?ww
そんな事を言う事が恥ずかしいわww
0548nobodyさん
2011/04/09(土) 00:04:18.80ID:???UAとは?UserAccount?
>>DBなどに保存してチェックする方法以外に
日本語読めますか?意味わかります?
クッキーwwwwwwwwwwwwwww
0550nobodyさん
2011/04/09(土) 00:32:07.21ID:???「同じアカウント」での多重ログインを防ぐってことは、ログインIDやパスワードが存在するわけで、
つまりアカウントをDB等で管理してるわけだよね。
他のブラウザからの同一アカウントでのログインを防ぐためには、
現在ログイン中のブラウザにログイン中のフラグを持たせるためにクッキーを食わせておけばいい。
他のブラウザでアクセスしようとしたら、ログイン中フラグを持つクッキーが存在しないので
一度強制ログアウトさせてログイン画面へ誘導する。
その際に最初にログインしたブラウザに保存させたクッキーはシステム側で無効にしておく。
ってのが普通の多重ログイン防止処理なんだけど、やっぱりDB等での管理は要るでしょ。
>>547じゃないけど、>>547がクッキーって書いてるのは別におかしくはない。
0551nobodyさん
2011/04/09(土) 00:36:09.40ID:???0552545
2011/04/09(土) 00:39:16.34ID:lDu5zS4y詳しくありがとうございます。
クッキーを食わせるのは想像が付くのですが、
例えば、ログアウトせずにブラウザを閉じた
ユーザーの場合はどうなるのでしょうか?
ログインの時はセッションで管理してるので
セッション+クッキー(まぁ、同じですが・・・)が正しい場合は続行で、
クッキーしかない場合は強制ログアウトとかでしょうか?
少し設計のイメージが沸きません・・・
0553nobodyさん
2011/04/09(土) 00:50:02.87ID:???>>552
あくまで一例だけど、DB使っていいなら、ユーザーマスターに日時項目を持たせて、
ログイン中はIFRAMEのREFRESHでもJavaScriptの非同期通信でもいいから
3分毎にその日時を現在日時に更新
ログイン時に、その日時+3分以上経過していなかったらはじく
0554545
2011/04/09(土) 00:56:51.13ID:lDu5zS4yなるほど。そう言う手もあるんですね。
今はログイン時にログイン時間をDBに記録し、
別ブラウザからログインしようとした場合、
ログイン時間から30分経過してない場合はログインできないようにしてるんです。
ただ、この場合「うっかりブラウザを閉じてしまった」場合でも
30分待たなくてはいけないわけで、ユーザーからクレームが来ないかと心配です。
ログイン時の時間を記録するのではなく、ログインしている間の時間を
定期的に記録するという仕様は良いですね。ぜひ参考にさせていただきます。
■ このスレッドは過去ログ倉庫に格納されています