【PHP】下らねぇ質問はここに書き込みやがれ 68
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/ ◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「~.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_~()が手軽。複雑なパターンはpreg_~()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http://~とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
いちもつ
PHP最強の女だけどなんか質問ある?
12 :
nobodyさん:2008/05/04(日) 05:13:17 ID:xtM5WK5J
implodeの引数エラー出ると思うけど
14 :
nobodyさん:2008/05/04(日) 05:49:23 ID:xtM5WK5J
>>13 そうですね 出ます
読み込めてないってことですよね
ですからなぜ上の場合だけ読み込めてないのかを知りたかったんです
たぶん403だと思いますのでもういいです
>>12 >そのファイルはPHPからアクセスできるものでなければなりません。
~~~~~~~~~~~^~~
まあ簡単にいうとクエリを指定したURLをファイルとみなして開こうとするからエラーになるんだけどね
たぶんも何も UA 変えないと 403 になるだけなんですけどね。
18 :
nobodyさん:2008/05/04(日) 10:51:53 ID:Fgqwmz/n
SQLでデータベースに入っているデータの数を調べ、それを計算式の数字とし使うにはどうすればいいでしょうか?
――――――――――――――――――――――――――――――
function dbcount($table,$id) {
$db = DB::connect("mysql://username:password@host/database");
$sql = "select count(*) from $table where $id;";
$result = $db->query($sql);
$kekka = $result->fetchRow();
echo $kekka[0];
}
$table1 = dbcount(table=1,id=1);
$table2 = dbcount(table=2,id=2);
echo $table1 + $table2;
――――――――――――――――――――――――――――――
といったプログラムを作ってみたのですが、うまく計算されません。
dbcount(table=1,id=1)は30、dbcount(table=2,id=2)は10が帰ってきます。
すると$table1と$table2にもそれぞれ30と10が代入されるはずなのですが、どうやら代入されていないようです。(数字自体は表示されているのですが)
その証拠に、$table1と$table2を表示させても何も表示されませんし、当然足し算をしても結果が40になりません。
どうすればいいのでしょうか?
> dbcount(table=1,id=1);
>>19 ごめんなさい、それは書き込む際のミスです。
正確には
$table1 = dbcount("table=1","id=1");
$table2 = dbcount("table=2","id=2");
ですね。
> echo $kekka[0];
22 :
18:2008/05/04(日) 11:19:19 ID:Fgqwmz/n
>>21 一応それでも正常に表示されているのですが、
どのように改善すればいいでしょうか?
値を返したいならreturnかと
24 :
18:2008/05/04(日) 11:40:12 ID:Fgqwmz/n
>>23 なるほど、基本的な部分で躓いていました。
ありがとうございました。
もっと基本的な躓いてることに気づいてないのが痛い
あ、日本語壊れたw
27 :
nobodyさん:2008/05/04(日) 13:52:10 ID:EtzFJE0o
ロードと同時にフォームのボタンをクリックするjavascriptが埋め込まれたページの、
遷移先のページのソースコードを取得するにはどうしたらいい?
遷移元ページのソースはこんな感じです。
<body onload="document.all['button'][1].click()">
<form action="
http://example.com" method="post">
<input type="text" name="name1" value="hogehoge1">入力項目1
<input type="text" name="name2" value="hogehoge2">入力項目2
<input type="text" name="name3" value="hogehoge3">入力項目3
</form>
</body>
28 :
nobodyさん:2008/05/04(日) 13:55:11 ID:EtzFJE0o
↑ソース部分訂正
<body onload="document.all['button'][0].click()">
<form action="
http://example.com" method="post">
<input type="text" name="name1" value="hogehoge1">入力項目1
<input type="text" name="name2" value="hogehoge2">入力項目2
<input type="text" name="name3" value="hogehoge3">入力項目3
<input type="submit" value="検索" name="button">
</form>
</body>
30 :
nobodyさん:2008/05/04(日) 14:43:38 ID:/XyqgD/J
質問です
nl2brで改行を<br>に置き換えられますが、
改行を任意の文字に変換したいと思います(空白など)
これはどうしたらいいんでしょう?
str_replace
32 :
nobodyさん:2008/05/04(日) 17:27:51 ID:1YWT6BLA
携帯サイトを作ってます。
サイト内にある画像の番号を入れてボタンを押したら画像が表示される感じの
検索?フォーム作りたいのですが全然わかりません(´д` )
分かる方教えて下さい。
>>32 formで入力欄作って、caseとかで場合分けすればいいだけでは?
お前な、0から全部教えろってのか?
36 :
nobodyさん:2008/05/04(日) 17:40:54 ID:1Wvgh09z
ini_setを使ってセーフモードって設定いじれますか?
まぬある見ろやカス
39 :
nobodyさん:2008/05/04(日) 18:05:25 ID:mBgIh+Lj
google検索結果の様なページ毎へのリンクってどうやってるんですか?
例えば1ページ目は
<前へ> [1] 2 3 4 5 6 7 8 9 10 <次へ>
という表示に対し30ページ目では
<前へ> 25 26 27 28 29 [30] 31 32 33 34 35 <次へ>
という感じに表示されますよね。
あの仕組みってどうやってるんでしょう?
42 :
nobodyさん:2008/05/04(日) 20:45:15 ID:tK5LS4Gg
今自分の使ってるサーバで、利用可能なPHPの関数を一覧で表示するには
どうすればいいでしょうか?
print_r(get_defined_functions());
44 :
42:2008/05/04(日) 21:13:38 ID:???
45 :
nobodyさん:2008/05/04(日) 21:17:51 ID:CDLPM55d
WebCart:Ver2.31を使ってショッピングカートを作ってみたのですが、
商品設定の商品説明欄にて、外部リンク(メーカーのHPが別窓で開く)を
張りたいと思うのですが、どのように記述すればよいのでしょうか?
あぁ、「知るかボゲ」と言われたい真性マゾがまた一人・・・
>>45 <a href="***" target="_blank">
知るかボケ
そのWebCartとやらの配布元に聞け
汁化母毛
知るかボケ -> I know blur -> 知っぼかし
sage
54 :
炊:2008/05/05(月) 09:11:39 ID:???
そこC言語だよ
いや、Rubyでしょ
57 :
x:2008/05/05(月) 10:22:06 ID:???
ドメインから、どこのサーバを借りてるか調べるにはどうしたらいいですか? フーイズは、情報しかわかりません。 教えてください。
59 :
nobodyさん:2008/05/05(月) 13:52:39 ID:cSW0xQhq
某スレに居たけど、俺の良さを分からないようだったので、
こっちに北。俺は、分子生物学の権威だけど、何か聞きたいことある?
ない
どうやら、このスレも俺にとっては役不足のようだ。
ブラウザからダウンロードさせるスクリプトですが
header('Content-Disposition: attachment; filename="test.txt";');
header('Content-Length: '.filesize("./test.txt"));
header('Content-Type: application/octet-stream');
readfile("./test.txt");
こうした場合、クライアントがブラウザのダウンロードダイアログではいを選んでDLが完了するか
いいえを選ぶまでサーバー側のPHPのプロセスは存在したままになるのでしょうか
>>63 確かめればいいじゃん。
だいたいモジュールとして動かしてる場合は「PHPのプロセス」自体存在しねーよ。
mysqlなどのデータベースを使わない、自分で設置するタイプのスレッド型掲示板
(php, cgiは問いません)で、流行っているものって何ですか?
教えていただけると幸いです。
kentとか?
phpbbじゃね?
連レスすまん
phpbbはDB使ってたな・・・
だとしたらkentとかcbbsとか一部では髭式BBSの派生品とかC-BOARDとかかな・・・
<?php
if($_FILES["userfile"]["error"]!==FALSE)
{
if($_FILES["userfile"]["size"]!=0)
{
if(strPos($_FILES["userfile"]["type"],"image/")!==FALSE)
{
$base=baseName($_FILES["userfile"]["name"]);
copy($_FILES['userfile']['tmp_name'],"./img/".$base);
echo "<img src=\"./img/".$base."\" />";
}
}
}
?>
ローカルでは動くのですがサーバに上げたら画像が出力されません。
これってどういう問題が考えられるのでしょうか?orz
これはひどい
71 :
nobodyさん:2008/05/06(火) 00:01:16 ID:Db+mgkTm
クラス自身に自分をテストするメソッド実装するのってあり?
普通は別にテストクラスを作ってテストをやるんじゃないかな
phpunitでも使ってみれば?
>>71 俺はありだと思っているんだが、
どうも理解してくれる人がいない。
いわく、ユニットテストとはインターフェースのテストであり
外部からテストするもんだそうだ。
が、俺はそもそもこれをユニットテストというつもりはなく、
名前をつけるのなら自己テスト。
ユニットテストのフレームワークを利用するが、
本質的にはまったく別のレベルのテスト。
自己テスト・・・ありだと思うんだけどなぁ。
まあ時代が俺についてきていないということで。
DocTestでもやっておけ
DocTestはソースが見づらくなるんだよなあ
で、その自己テストってのは何を目的としたテストをやるんだね
76 :
nobodyさん:2008/05/06(火) 02:08:37 ID:nuWjmwxL
暗号化させた文字列を照合したいのですが
cryptを使用した場合、先頭の8文字が一致してれば、9文字目以降が違っても、同じ文字列が返ってきますよね?
8文字以上の文字列でそのようなことをしたいとなれば、
どのような方法がありますか?
外部サーバ(文字コードはUTF-8)からGETメソッド付きでphp(EUC-JP)にリンク貼ると変な文字化けが起こる
リンクを張ります。
index.php?data=あいうえお
受け取った側で文字コード変換します。
$data=mb_convert_encoding($_GET['data'],"EUC-JP","UTF-8")
$data=「あいぁE」という見たこと無い文字列が。
#"auto"だと「縺ゅ>縺・∴縺・/td> 」になります。
リンク先を直接ブラウザに貼り付ける、
またはURLを先にエンコードしてindex.pnp_data=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
としたら正しく表示されるのは確認済みです
↓文字化け例にもありませんでした。
http://funini.com/kei/mojibake/mojibake/
特定の文字がいくつ含まれるか知りたいのですがそんな関数ありますでしょうか?
preg_matchでできるのですが、正規表現は必要ないです。
echo 関数('HOGE',''aHOGEHOGEbbHOGEhOGE');
さぶすてら_かうんと
>>79さん
おおー!スゴス!
ありがとうございます。
81 :
nobodyさん:2008/05/06(火) 06:00:14 ID:UkSP1jaG
テンプレートエンジン作るのに煮詰まったのでどなたかアドバイスお願いします。
プログラムファイルからテンプレートをfileで読み込む
↓
foreachで一行ずつ出力
↓
preg_matchでテンプレート用変数をみつける→見つからなかったらスルー
↓
見つかったら$bodyにテンプレート用変数に値を入れて、配列の一行を足す
↓
foreachを抜けたら、$bodyを出力
このような形でも問題ないのでしょうか?負荷が気になるのですが
テンプレートエンジンは負荷は気にするべきではないのでしょうか?
1行ずつやる必要がどこにあるのか甚だ疑問。
というか煮詰まったっていうか行き詰ったんじゃね?w
寝たほうがいいと思うよ。
83 :
USA:2008/05/06(火) 08:08:50 ID:???
85 :
nobodyさん:2008/05/06(火) 08:26:42 ID:UkSP1jaG
86 :
USA:2008/05/06(火) 08:48:00 ID:???
教えてください。
お願いします。
88 :
nobodyさん:2008/05/06(火) 09:46:18 ID:UkSP1jaG
>>82さんのお陰で道が修正できました。
以下のようにしました。
テンプレートファイルを文字列にして読み込み、くっつけます。
↓
正規表現でテンプレート変数があるか確認→なかったらそのまま文字列を出力
↓
あった
↓
str_replaceでテンプレート変数を置換する(サーチ文字、置換文字の指定は配列で指定)
↓
文字列を出力
↓
smartyを使う
>>75 > で、その自己テストってのは何を目的としたテストをやるんだね
プライベート関数のテスト
test
>>90 内部実装の大幅変更を楽にするための自動テストなのに、
プライベート関数までいちいちテスト書いてたら
それに縛られて、かえって思いきった変更が面倒になるのでは?
やりたきゃ誰も止めないと思うけど、俺は多分やらん。
>>93 > 内部実装の大幅変更を楽にするための自動テストなのに、
だから、それがそもそも話がずれてるっつーの。
テストにはいろんなものがあるんだよ。
ユニットテスト以外にも結合テストとか統合テストとか。
これは自己テスト(仮)
「内部実装の大幅変更を楽にするための自動テスト」ではなく、
プライベート関数の仕様を明確にするためのテストだよ。
っていうかさ、クラスってのは多くが、内部の処理は複雑だが使い方は簡単。なもんだろ?
内部の複雑な処理をテストしないなんてありえる? テストコード書かないだけでテストしてるだろ?
PHPUnitって
privateなメソッドはテストできないの?
96 :
nobodyさん:2008/05/06(火) 14:18:33 ID:??? BE:1418378459-2BP(2121)
97 :
nobodyさん:2008/05/06(火) 14:23:08 ID:UkSP1jaG
$txtに格納されてる文字列は、改行や文字数などは決まってません。
↑のような規則で、↓の$txtの場合に、正規表現でOKを通るようにパターンを書きたいのですが、
うまくいきません。どなたかご教授お願いします。
$txt = "<p>test
i am
testman
</p>";
if (preg_match("/<p>([.\n]*)?<\/p>/", $txt)) {
echo "OK";
} else {
echo "NG";
>>95 まあ、普通はprivateなメソッドを外から呼ぶことはできないな。
それがprivateってものだし。
JUnitとかではできるみたいだけど、privateなメソッドを
外からテストするなんて変。
privateなんだから、内部のテストは内部でやるべきだよ。
それが↓これでしょう。
71 名前:nobodyさん[] 投稿日:2008/05/06(火) 00:01:16 ID:Db+mgkTm
クラス自身に自分をテストするメソッド実装するのってあり?
100 :
nobodyさん:2008/05/06(火) 14:24:42 ID:UkSP1jaG
つけたし
$txtは<p>タグで必ず囲んであります
>>94 それを言うのならwhiteboxとblackboxの違いで語ってくれ
おまえの言ってるwhiteboxテストは普通はステップ実行しながらデバッガでテストしていく
> ステップ実行しながらデバッガでテストしていく
そんなことをしていたら、数日後、忘れたころに
見直したり、バグ修正するときに大変だろう。
105 :
nobodyさん:2008/05/06(火) 14:31:36 ID:UkSP1jaG
>>104さん助かりました!
おかげさまで解決しました!ありがとうございます^^
>>98 ども㌧です
ブログ板は質問スレググレとあったと
思うので諦めます厨でスマソです
107 :
nobodyさん:2008/05/06(火) 14:34:42 ID:UkSP1jaG
>>107 ああありがとう!言ってきます見てきますノシ!
PHPでmixinみたいなことしたいんですが
そういうライブラリありますか?
110 :
nobodyさん:2008/05/06(火) 15:04:20 ID:UkSP1jaG
UkSP1jaGキャラが不安定すぎww
116 :
nobodyさん:2008/05/06(火) 15:21:57 ID:UkSP1jaG
mixinとか糞だな。こんなんで1万とかボッたくりww
>>114 この場合はmix-in機能を追加するためなのだから、
mixinObjectを継承するのには何の問題もないでしょう?
>>118 module側がmixinObjectをextendsするならともかく
includeする側がmixinObjectを継承してるのがありえないです
継承と別の文脈で実装できるのがmixinなのに・・・
PHPERのレベルの低さを見せつけられた思いです
PHPは多重継承できないのに
mixinオブジェクトを継承してしまったら他のクラスを継承できなくなります
いったい何のためのmixinなのか・・・
愕然としますね
>>120 やっぱり失笑されるべきはあなたでしたね。
たとえばJavaですべてのクラスがObjectを継承しているのと同じで、
mix-in機能を持っているクラスはmixinObjectを継承しているだけのことです。
mix-in機能を追加するためにmixinObjectを継承しているだけであり、
includeするために継承するのではありません。
この違い理解できますか?
>>121 Object
↑
mixinObject
↑
MyClass
わかりますか?
>>122 すべてのオブジェクトの基底クラスをmixinObjectにするということですか?
まぁ、それならありかもしれませんね
ただ他人が書いたクラスにmixinできないので
mixinの良さを十全に生かせるとは言い難いとは思いますが・・・
他人が書いたクラスを継承すればいい。終了。
>>123 PHPERの審美眼はそれを許すのですか?
やはり百姓言語PHPで
LL界の貴婦人Rubyの真似をするのには無理がありますね
Ruby厨必死すぎだろ・・・
なんか美しきPascal対実用性のCを思いだした
ヘタな煽りはいらないよ
131 :
nobodyさん:2008/05/06(火) 15:56:13 ID:UkSP1jaG
燃料投下乙
言語そのものに思想があるなら、自分で作ればいいじゃん。
Ruby最高! PHP厨死亡wwwwww
まともなmixinの実装引き続き募集してます
>>133 そんな低レベルな煽りを自演しないでください
民度低いですね
PHPは百姓言語です。
Rubyに乗り換えられないやつは百姓です。
早くお侍さんになろうと思いませんか?
>>136 そんな低レベルな煽りを自演しないでください
民度低いですね
まともなmixinの実装まだー? 早くしないとRubyに乗り換えちゃうよ?
>>138 そんな低レベルな煽りを自演しないでください
民度低いですね
Ruby厨じゃなくて、Rubyちゅっ♥ だなw
能なしのPHPERがID出させようと必死の猿芝居ですか・・・
まぁ、好きにすればいいでしょう
>>141 そんな罠しかけてもIDだしませんよwwww
143 :
nobodyさん:2008/05/06(火) 16:06:02 ID:UkSP1jaG
IDだしてる俺に対してのイヤミうぜえ
144 :
109:2008/05/06(火) 16:06:36 ID:???
109ですが途中の人(Ruby厨?)は
全部偽者ですので無視してください。
145 :
109:2008/05/06(火) 16:08:24 ID:???
いま、Rhacoってのを調べています。
しばしお待ちを。
馬鹿はほっとくとして・・
mixinする側は、自分がmixinすることを知っておく必要はないんですね
is-aの観点からも、mixinObjectをサンドイッチするのは許し難いです
Rubyのmixinの完コピーは無理にしても
インスタンスに外からメソッドを付け外しできるような
そういう実装がないものか・・・
だから、mixinObjectってのは
mix-in機能を提供するものであり、
includeするオブジェクトの実装ではない。
>>146 PHPを改造すればできるんじゃね?
そこまでしなくてもmixinObjectで十分問題ないから
俺は作る気ないが。
先輩から一言。手段と目的を履き違えるな。
149 :
nobodyさん:2008/05/06(火) 16:23:02 ID:+at48j4e
PHPごときで小難しい事やろうとかんがえてるやついるんだなー。
感心しちゃった。
そういう問題を起こしたくないなら
>>1読んでID出してください
151 :
nobodyさん:2008/05/06(火) 16:25:45 ID:UkSP1jaG
私こそが質問者の鏡です
見習ってください
私こそが、質問者のかがみんです。
見習わなくなっていいんだからね!
いつからこのスレはmixinスレになったんだw
mixinではありません。
かがみんです。
for($i = $st; $i < $st+$page_def; $i++){
if($lines[$i]=="") continue;
list($id,$ext,$com,$host,$now,$size,$mtype,$pas,$orig,)=explode("\t",$lines[$i]);
$fsize = FormatByte($size);
if($auto_link) $com = ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","<a href=\"\\1\\2\" target=\"_blank\">ファイル</a>",$com);
$filename = $prefix.$id.".$ext";
$target = $updir.$filename;
if($c_anot) $jump = "target='_new'";
echo "<tr><!--$host-->";//ホスト表示
echo "<td><img src='$target'></td><br>";
echo "<td>[<a href='$target' $jump>ファイル</a>]</td>";
if($c_size) echo "<td align=right><b><font size=2>$fsize</font></b></td>";
if($c_date) echo "<td><font size=2>$now</font></td>";
echo "</tr><br>\n";
echo "<td><img src='$target'>の画像のサイズを指定するのはどうしたらいいんでしょうか?
いいえ、ケフィアです
158 :
155:2008/05/06(火) 17:14:23 ID:???
自己解決しました
HTMLはわかるんですけど、
echo "<td><img src='$target' width="xx" height="xx">
って入れてみてもエラーになってページが表示されないんですよ。
'でかこめってことですか?
答え教えてください><
だから
>>1読んでID出さないと荒れると言っているだろうが
165 :
nobodyさん:2008/05/06(火) 17:43:54 ID:ZdmmhapK
何度言ってもほんと理解するのが遅いよなゆとりは
泥酔してるけど、エラーはどっか構文がおかしいんだろ
サイズはHTMLでしていしろや
168 :
nobodyさん:2008/05/06(火) 17:49:48 ID:ZdmmhapK
HTMLで指定してるつもりなんですけど、今試しても
<img src='$target' width="60" height="60">
で入力してもダメなんですよ・・。php独自の書き方があるのかなと思って。
>>168 echo "<img src=\"{$target}\" width=\"60\" height=\"60\">";
170 :
nobodyさん:2008/05/06(火) 17:58:20 ID:ZdmmhapK
>>169さんありがとうございます!
すっごく確かりました。本当にありがとうございます!!
171 :
Order:2008/05/06(火) 18:06:19 ID:fJq/GBDg
みんなは、編集できたりするパスワードファイルのパーミッション
606にしてますか?600にしてますか?666にしてますか?
このスレはこの程度かw
007最強
>>168 シングルクオートで囲め!!!
$html = '<img src="'.$target.'" width="60" height="60">';
>>176 同じ事じゃん
ピリオド連結は、変数埋め込みより遅いよ。
誤差の範囲だが。
ピリオド連結の方が速いんじゃなかったっけ?
var_dumpで循環参照してると
同じ値が何度も表示されてウゼーっス
循環参照を防ぐ方法ないッスか?
PHPで循環参照ってどんな状態なんだろう
無限ループ?
>>179 再帰関数な感じだろうか
再起関数内でなんとかするならグローバルでカウントする変数作って最後に出すようにするとか・・。
単純に再起関数終了後にvar_dumpとか・・
どうでもいいがID出せ
循環参照を扱えるvar_dumpっぽいものは
探せばいくらでもあるだろう。
俺はcakephpのpr()を使っているが。
思ったんだけど、ヒットサウンドで三個同時に敵に当たったら「ばよえーん」とか「ばはむ~と」とか
同時ヒット数によってサウンド変わったら分かりやすくね?
\\\\\\\\\\\\\\\\ってなるソース汚い
あと
$html .= aaaaaaa;
$html .= bbbbbbb;
は遅いけど
$hmlt = aaaaaaaa.
bbbbbbbbb;
はそんなに遅くない
俺も出来るだけエスケープシーケンス使わない方法で書くな読みやすさ優先で。
ヒアドキュメントか"."連結のほうがスッキリする場合はそうする。
同じく。
PHPでヒアドキュメントつかう意味がわからんて奴が結構いるけど、
変数がでるたびに<?php ?>で出入りするほうが面倒じゃね?
189 :
nobodyさん:2008/05/07(水) 14:20:04 ID:PVZCAXAQ
htmlのソースをヒアドキュメント使わずにprint"";で囲んでるけど、これって遅くなるのかな?
190 :
nobodyさん:2008/05/07(水) 14:51:59 ID:ae64vN4s
PHPでレスポンスコードを指定するにはどうしたらいいですか?
頭を使う
>>191 分からないならだまっててくださいよ
昭和生まれが
これでピンと来ない様では、ちと頭が固い。
頭 頭 頭 ・・・
>>193 僕はとんちをしに来たんじゃないんですよ
いつだって真剣なんです
>>194を見てたら、頭を食べると魚がよくなりそうな気がしてきた。ねむい。
>>190 > ( string string [, bool replace [, int http_response_code]] )
これ便利ですよ。
PHPが最終的にどんなヘッダを吐いたのかを
サーバサイドで知る方法があれば教えて下さい
header関数
調べれば判るだろ
=頭を使ってないorどう調べて何が判らなかったのか説明する能力がない
>>199 いや・・・自コード内で、という意味です
たとえばsession_cache_limiterを使ったらヘッダが勝手に設定されるみたいですが
どう設定されたのか知りたいんです
うーむ、そういう目的だったか。
出力済みヘッダ内容を、自分自身で受け取ったり文字列として再出力する手段は俺は寡聞です。力になれなくてごめん
もしデバッグ用途なら、firebugとか使ってクライアント側でヘッダ見るんじゃ駄目なのかな?
>>201 ありがとうございました
firebugを使ってなかったのでいれてみました
>>202 これですね
こんな機能が標準で備わってると思わなかったのでみていませんでした
ありがとうございました
PHP + MySQL のプログラムに関して質問させてください。
勉強用に単純な検索プログラム(ユーザーの入力した条件から適切なレコードを検索、表示する)を作っています。
結果が一定数以上の場合はページ遷移を行うわけですが、ここで少し迷ってしまいました。
① SQLから結果を全て受け取って、配列に入れておき、それを for で回す。ページ遷移は for の引数を変えていく。
② LIMIT などを使って、そのページ、そのページで、SQLから結果受け取る。
どちらの方法を取るべきなのか、ご助言いただけると有難く思います。
よろしくお願いします。
10000レコードとかあったら無駄すぎじゃね?
なので②番のほうがいいと思いますー。
そんなにレコード数はないだろうけど、勉強用としてはもってこいな題材だし。
>>205-206 ご回答ありがとうございます。
>>205さんのおっしゃる通り、レコードが数万単位になってきたら、ループで回すのは現実的じゃないですね。
② の方法を取ろうと思います。
参考になりました、ありがとうございました。
209 :
nobodyさん:2008/05/07(水) 22:09:34 ID:jO2+N/ib
mysqlの話が出たので流れに便乗して質問
mysqlに接続するときにmysqlのuserとpasswordが必要になりますが
PHPの場合はどこにその情報を持ちますか?
設定ファイルとしてconf.phpとかを作成してその中に持つのが簡単ですが
生パスワードが書かれるのは、できれば避けたいと思いまして
生だろ生
嫌なら暗号化処理とかすればいい
ついでだからバイナリ化しておけばパット見わからんぞ
そんなに気になるのならSSL使えよ貧乏人
SSLを使うとソース上に事実上解読不可能な形でパスワードを保存することが可能なの?
金持ちはSSLで全て解決できるようです
214 :
nobodyさん:2008/05/08(木) 00:39:59 ID:tHYDIFZk
携帯でセッションを持ちまわす方法を考えているのですが、
なかなかいい方法が浮かびません。なにか方法があるのでしょうか?
サイトにログインしてそのアドレスを他人に送信したときに入れなければいいんですが
urlに引数でユーザーIDとか持たせてるので、今はそれだけで認証させているのですが
もちろんそれだと他の人でも余裕で入れてしまいます・・
よろしくおねがいします。
>>214 携帯端末情報取得
↓
データ照合
↓
処理
後出し情報どうぞ
217 :
209:2008/05/08(木) 01:09:01 ID:???
>>210 やっぱ生すかねえ
暗号化したところでhashみたいに一方向にはできないですし
apacheユーザでパーミッションを0600にでもしておきます
パーミッションって4桁あるの?
八進数は頭に0を付ける
SetUIDとかじゃなかったっけ。違ったかな。
8進で600とか無茶もいいとこだw
SUIDとかSGIDとかスティッキービットの部分かな
必要無いときゃ書かないのが普通だと思うけど
>>214 前スレでも同じような話あったな
同じヤツか?
223 :
nobodyさん:2008/05/08(木) 03:00:32 ID:/YXnYoEj
225 :
nobodyさん:2008/05/08(木) 03:16:09 ID:/YXnYoEj
>>224 すいません・・・、見てませんでした
取りあえずxmlを操作してみたく飛ばしてました
始めから読み直します;
ありがとうございました
>>222 そんなこと言ってたらほとんど同じやつだろがjk
227 :
nobodyさん:2008/05/08(木) 05:16:22 ID:bsvRXjwo
simplexml_load_file()で外部のサイトからロードしてるんだけど
これがすごく遅い
ブラウザからアクセスするとそんなに遅くないんだけど
なにか原因になりそうなことあります?
鯖
PHP5で、変数をクラス名として、クラス変数にアクセスできますか?
$className = "Hoge";
$className::classProperty;
$className::classMethod();
みたいにしたいのですが・・・
230 :
229:2008/05/08(木) 05:35:07 ID:???
と、質問してみたけど時間が悪かったので質問取り下げます。。。
取り下げませんよw
暇な事してないで答えてくれよ!
・・・レス番間違えたorz
>>234 試してます。
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
が出てしまうので、構文的にアウトなのはわかるのですが・・・
別の書き方があるのかと思い、質問してる次第です。
自己レス。
PHP5.3から出来るようになるとの事。
おとなしくcall_user_func使うよ・・・
IDが表示されておりませんがどういう考えでしょうか?
ここはID表示されないとまともな回答は得られないスレですので
トリップ付けてるからいいんじゃないの?
2回目からだけど
僕はスーパーハッカーなのでIDを消してます。
IDと全角で表記するのは非常にイケテない気がします。
240 :
nobodyさん:2008/05/08(木) 07:12:47 ID:a30fSoKv
Ajaxのサーバー側プログラムについて、お知恵をお貸し下さい。
サーバーとクライアント間を相互にXML送信したいのですが、
サーバー → クライアント のXMLは問題ないのですが、
クライアント → サーバー の場合、XMLHttpRequestを使ってXMLを送信した場合、
サーバー側のPHPではどうやってXMLを取得すればいいんでしょうか?
クライアント側のJavaScriptはこんな感じです。
// POST
Ajax.prototype.Post = function Post( argPost ){
post = '<xml>xml</xml>';
// post = 'va1=1&va2=2';
this.request = this.CreateXMLHttpRequest();
this.request.onreadystatechange = this.OnReadyStateChange;
this.request.open( 'POST', this.url, this.async, this.user, this.pass );
// this.request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
this.request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.request.send( post );
}
サーバー側のPHPは、下のようにして値をチェックしてます
<?php
var_dump($_GET);
var_dump($_POST);
var_dump($_SERVER);
?>
>>240 $data = file_get_contents('php://input');
どうしてもXMLを使う理由が無いなら、
クライアント → サーバは 普通にpost
サーバ → クライアントは JSON
をお勧めする。
242 :
nobodyさん:2008/05/08(木) 08:37:17 ID:a30fSoKv
>>241 レスありがとうございます。
取得できました。
そんな方法があるとは知りませんでした。(さすがです!)
JSONの方が楽なのは承知しているのですが、色々と事情がありまして・・・
243 :
214:2008/05/08(木) 09:00:38 ID:lngjMkTW
>215
それだとFORMしかリンクに使えなくなるのでテキストのリンク部分などは回避したいところです・・
>222
違います
>>243 携帯情報端末を使うのになんでFORMにしかリンクがつかえなくなるの?
何か基本的なところが理解できてない感じするね
>>243 携帯端末情報は普通のアンカーからでも取れると思うよ。
DoCoMoだと端末側に送信するか否かの確認は出るだろうけど。
それが嫌なら、
・URLにユーザIDではなく、セッションIDを持たせる。
・セッションIDはアクセス毎に変更する
とか処理しとけば要件満たせるよ。
247 :
243:2008/05/08(木) 09:58:57 ID:6fBs3OYg
>244-246
すいません、勘違いしてました。
>246
セッションIDもたせたばあい、そのアドレスでアクセスしたら
他の端末でアクセスしたときのセッションの内容がみれたのですが・・
前スレの
「セッションハイジャックが毎日行われています。客に仕様だと説明しているのですが
納得してもらえません。どう説明すればいいのでしょう?」
と似てきたな。
>>247 >セッションIDもたせたばあい、そのアドレスでアクセスしたら
>他の端末でアクセスしたときのセッションの内容がみれたのですが・・
セッション側で管理してなきゃ当然の動作だ。
まずはユーザエージェントでも見て、セッションの有効性をチェックしろ。
これで3割防げる。
そして、セッションIDをアクセス毎に変えろ。
ユーザが故意にセッションIDを流出させない限り
これで9.99割防げる。
>>248 いちいち前スレのことをもちだすな
ストーカー気質で気持ち悪い
ストーカーされて気持ち悪いの間違いでは?
.__
ヽ|´∀`|ノ <先生!fscanfがおかしいです!
|__|
| |
仕様です
255 :
243:2008/05/08(木) 12:03:56 ID:6fBs3OYg
>>249 もしよければ具体的なソースコードなど教えてもらえないでしょうか?
えっ!
びっくりしたなぁもう!
258 :
nobodyさん:2008/05/08(木) 12:07:34 ID:BM6vmusK
>>243 ググレばやまほど情報出てくるよ。
ロジックを考える事でPGは育つので、
自分で考えてみると良いと思う。
ヒント
$_SESSION['USER_AGENT'] を保存しておいて、
アクセス毎に、ユーザエージェントが変わってないかチェック。
セッションIDを毎回変えるというのは、
session_regenerate_id で検索すればいいよ。
>>258 おかしくないんじゃね?書き方が古いが
斜めにしか読んでないから納得いかないなら具体的に示せ
261 :
243:2008/05/08(木) 12:33:03 ID:6fBs3OYg
>>259 同じ機種だと同一のagentにならないですか?
>>261 何度いえばわかりますか携帯端末情報とればいいだろ
>>260 レンタルサーバーに設置して予定編集ページに飛ぶためにクリッコしてもページが切り替わらんのです。
自宅サーバー設置してやってみましたが同じだったのでスクリプトかと思いまして
>>263 まずおまえが使ってる鯖設定とかphpバージョンとかphp.iniの設定とかあるんじゃないのかね?
>>263 ヒント:古いバージョンと新バージョンのPHPでのGETとPOSTの取得方法
ソースみたら動かなくて当然
よく読まなかったのかい?
266 :
243:2008/05/08(木) 14:27:27 ID:6fBs3OYg
>>262 DoCoMoだと毎回確認が出てうざくなるので
できれば使いたくないのですが・・・
ページによっては使うことになると思うんですが。
いつの時代の話だよw
>>266 一回だけ認証すればあとはセッション使うだけだろ
ちなみにguid=onでIDが取れるようになったが、簡単に偽装できるのでお薦めしない
セッション処理で接続先の環境が違った場合の処理ってどうするのがいいですか?
セッションの内容を消してしまうと、本来のユーザが困るし・・・
最近下らない質問じゃなく頭悪い質問が多いな
271 :
227:2008/05/08(木) 15:41:46 ID:???
>>228 鯖というと自分側のですよね?
相手側は直アクセスでは遅くないし
でも 外部へのアクセスだけがそんなに遅いもんです?
なにか解決方法ないものか…
もちろんキャッシュはしてるけど してないときが激遅です
>>227 DNS?一度IPでアクセスしてみて確認
>>265 まじあざっす!
まったくPHPがわからない素人なのです
.htaccessでregister_globalsをONにしたらできました
275 :
269:2008/05/08(木) 16:35:36 ID:???
接続環境の変化を検知した時点で
セッションIDを変更して新規のセッションとして開始すると、
UAをころころ変えながら繰り返しアクセスすることで
セッションリソースを大量消費される攻撃に晒される危険があるかと思います。
またexitで処理を停止させてしまうのも、あまりよろしくない。
ルーティングは、後に任せるべき。
セッションがない状態でアクセスした時と同様の処理をしたいのですが、
既にその時点でセッションは開始されてしまっているので、
なかなかむずかしいんですよね・・・
276 :
269:2008/05/08(木) 16:43:38 ID:???
「$_SESSIONをクリアし、
それでいながら、
その変更を本来のセッションストレージに反映させず、
また新規でセッション領域を消費しない」
と処理をやればいいかと思います
どうすればいいですか?
>>274 なぜ、現行Verではデフォルトでregister_globals=offになっているのかも知っておこうね。
>>243 >>261 >同じ機種だと同一のagentにならないですか?
逆を言えば、同一機種(+同一ファームウェア?)で無い限りはアクセスを遮断出来ます。
実装が簡単な割に得られる効果は大きいです。
>セッションIDを毎回変えるというのは、
>session_regenerate_id で検索すればいいよ。
は検索しましたか?
URLにセッションIDを含む以上、URLが漏れたら非常に危険です。
しかしセッションID自体をアクセス毎に変えることで、
この危険性はほぼ100%解消できます。
間違えて表示中のURLを漏らしてしまったとしても、
そのURLに含まれるセッションIDは既に無効になっている事になるからです。
>>269 1.接続環境の変更は考慮しない
2.接続環境の変更を確認した時点で、セッションを適切に破棄し、
新セッションを開始する。
>接続環境の変化を検知した時点で
>セッションIDを変更して新規のセッションとして開始すると
新規セッション開始前に、旧セッションを破棄すればいいだけでは?
>UAをころころ変えながら繰り返しアクセスすることで
>セッションリソースを大量消費される攻撃に晒される危険があるかと思います。
まずセッション管理はどうしてるの?
ブラウザ終了時までのセッションであれば、
ブラウザ起動する毎に新セッションが発行され、リソース消費を防ぐ手段はありません。
クッキーに有効期限が設定されているのであれば、
適切に不要なセッションを削除する事でリソースの消費は防げます
セッションにどんなでかいデータ持たせるつもりなんだ?
iノードは有限だから小さくてもファイル大量に作られたら嫌じゃね?
っていうか、セッションファイルが大量になった時のパフォーマンスどうなんだろ?
特に考えたこともなかったけど
symfonyのキャッシュ機構みたいに遅くならない工夫してんのかな
ファイルに保存するのであればOS依存だろうし。
パフォーマンスに影響する程のモノでは無い。
きちんと破棄処理すりゃiノードを圧迫する事はありえない。
どうしてもきになるなら、session_save_handlerでも使って好きに実装すればいいんじゃね?
しつもん
JavaScriptでencodeURIした文字列を受け取ると"+"だけ消えるんですが何故?
a.html
<select name="select"><option value="A+-*/">
a.js
var a=encodeURI(document.forms[0].select.value) ←この時点では"A+-*/"
(xmlHTTPRequestでPOST送信)
a.php
a=$_POST['a'] ←ここで"A -*/"になってる
+だけの理由がよくわかりません。
>>283 実装の違い。
PHPのurldecodeは+をスペース文字としてデコードする。
js側で encodeURIComponent() 使えばいいよ。
>>284 フムウそんな罠があったとは
調べてみるサンクス
プレス‐リリースを発信してるサイトはPHPで作ってるのが多いですが、簡単に作れますか?
質問内容から判断すると簡単には作れないだろう
誰かに作成依頼するなら話は別だが
288 :
227:2008/05/09(金) 00:29:55 ID:???
>>272 どもです
直だと早いんですよねー
PHPからだと遅い… 謎
鯖がくそなのかなあああああ
そもそも、その直でのアクセスしてるマシンとPHPが動いてるマシンが
同一なのかそうでないのかすら書かれてないのに判断できる訳がない
違うと推測して
>>272のIPアドレスでのアクセスは試してみたのか?
290 :
227:2008/05/09(金) 01:08:14 ID:???
>>289 PHPが動いてるのはレンサバですねー
アクセスしてるのは外部のサイトの公開API
直だと早い早い RESTだからブラウザ直でアクセスしても早いよ
借りてるうちのレンサバのPHP -> 外部APIが激遅
なんでかねえ・・・
直が速いのはわかったから、少しは切り分けくらいしたらどうだね
simplexml_load_file()を含む部分のコードを自分の端末で動かして外部サイトに繋いでみるとか
レンサバにsshとかで入れるのなら、レンサバのw3m等で繋いでみるとか
PHPの問題なのか、レンサバの問題なのかすらわからんじゃないか
鯖
293 :
227:2008/05/09(金) 02:55:54 ID:???
>>291 その辺はテストしてますよー
PHPからだと遅い…
simplexml_load_fileというか HTTPリクエスト系が激遅
鯖なのかな
それにしては激遅だ
294 :
227:2008/05/09(金) 03:06:20 ID:???
w3m もう一度試したら 遅いわ・・・
鯖なんかなあ
時間帯が時間帯だしなあ
PHPからはいつやっても遅いのはたしかなんだけど
とりあえずIDは出した前
296 :
227:2008/05/09(金) 03:16:08 ID:snanmjyt
wgetでやっても同じですねー
Resolving ... で時間がかかってる
時間が時間だけにたまたまかもだけど
ブラウザからとPHPからとで 相手側がなんか処理わけとるんかなあ
297 :
227:2008/05/09(金) 03:19:58 ID:snanmjyt
出てきた IPでつないだら早い・・・・
これはDNSが問題???
どうしようもないのか よくわからないんですけど
298 :
227:2008/05/09(金) 03:32:48 ID:snanmjyt
わかたこと
w3m, getw から ドメインでアクセスすると遅い
IP直でアクセスすると早い
Resolving ドメイン名 .... が長い
だけど nslookupでドメインからひいて見ると IPはすぐに返ってくる
よくわからん・・・
その場しのぎでIPでアクセスするようにするか・・
300 :
277:2008/05/09(金) 03:55:06 ID:snanmjyt
すんません
いみがわからなかったから調べてました…
PHPからgethostbyname()で事前に変換してみても おそかった
直IPだと早い
ということは 解決方法はなしですかね??
今、IP直でやるようにしましたが 万が一相手の鯖がかわったらアウトですよね
解決方法はレンサバに文句を言う事
予想ではipv6関係でbind9が遅くなってる
でもこんなんはレンサバの設定を見なきゃ何も言えん
もはやPHP関係ないし
302 :
227:2008/05/09(金) 04:03:33 ID:snanmjyt
>>301 そうですか…
とりあえず原因がすっきりしたことに感謝します
レンサバにもきいてみます
しかたないのでしばらくはIP直でやるか
cronでときどき gethostbyname しておいて それを使うとかしようと思います
test
いつからここは日記帳になったんだ
305 :
243:2008/05/09(金) 09:38:31 ID:NVAYhOqr
みなさんありがとうございました。
ようやくそれなりに満足できるものが作れました。
<a href="*****.php<?=SID?>">リンク</a>
というのを
<?php ?>のなかで書く場合どう書けばいいのでしょうか?
<?php echo "<a href=\"*****.php" ?><?=SID?><?php echo "\">リンク</a>">
ではかっこ悪いような・・・
<?php echo '<a href="*****.php"'.SID.'>リンク</a>'; ?>
てか、配布されてるスクリプト改造したいんだろうけど、
ちょっとぐらいは言語の勉強しようよ・・・
<?php
echo '<a href="*****.php' . SID . '">リンク</a>';
?>
PHPファイルをコマンドラインから起動しmysql_connect()を実行したいのですが
Call to undefined function: mysql_connect()
と出てしまいます。
web上からは正常に動くのですがどのようにすればいいのでしょうか
311 :
310:2008/05/09(金) 12:31:11 ID:???
自己解決しました
コマンドラインとWebで使ってるphp.iniが違ってるんじゃなかろうか。
>>312 ありがとうございます。
-c オプションでphp.iniを指定したところ無事動きました。
314 :
nobodyさん:2008/05/09(金) 14:36:27 ID:TK9WqWmp
現在生成されているセッション数読み込んでんじゃね?
session_save_pathを使って、保存先を変更して固定
そこのファイルを数えるとかだとダメかな
>>317 そこっと設定によってはアクセスできないんじゃないの?
そこのコード見ればいいじゃん。
セッション切れてもファイルは残るんじゃなかったっけ?
ためしてみたけど、残ったね
どういう仕組みなんだろ
セッションも自動でタイムアウトするようにすればいいよ
つ【ガーベージコレクション】
324 :
nobodyさん:2008/05/09(金) 16:35:23 ID:TK9WqWmp
考えてみたのですが、ごまかしかもしれませんがこのような仕組みでも大丈夫でしょうか?
セッション使ったやり方がどうしてもわからないのでこんな感じを考えてみました
訪問者のアクセスログを取得
↓
現在の時刻より直近1分前までののログを取る
↓
ユニークなidのみ抽出、カウント
↓
オンライン人数表示
で、そのユニークなIDというやつをどうやって抽出するので?
326 :
nobodyさん:2008/05/09(金) 16:46:13 ID:TK9WqWmp
すいません、まちがえました
idではなく、ipです
ログイン時のIDと時間を記録しておけばいいじゃん
ログアウトしたら消し、タイムアウトしたら消し
ログアウトするとは限らなく根?
あと、こういったたぐいのスクリプトってログインしなくてもみれてるよ
時代か・・・ちょっと昔のWEBチャットには普通にあったよね。
訪問者のIPアドレス/時刻を記録して、
3分くらい前までのIP数をカウント。
それだけだ。
こんなのも思いつかないってある意味凄いな。
>>331 答えれもしなかった奴は黙っとけよ。ホームレスが。
アクセスが多かったら処理がすごいことになりそうだな
>>332 訂正
マニュアル見直したら、共有メモリって、直には配列とかオブジェクト格納できないっぽい。
まぁ、適当なデータ構造作れば、意図することは可能だと思うけど。
336 :
nobodyさん:2008/05/09(金) 17:15:09 ID:TK9WqWmp
なんでそんな難しく考えてるの?
timstamp,ipadress
timstamp,ipadress
timstamp,ipadress
timstamp,ipadress
の2カラムのCSVなりをアクセス毎に走査して、指定秒数が過ぎた行は削除。
後は残りの行数カウントするだけなんだが。
同一IPが1カウントになるのが嫌なら、クッキーでも食わして判別すりゃOK
横槍ですまないが、それは質問者がとっくにさっき書いてなかった?
ガベコレぐらい自分で作れよw
>>338 アクセスログだと無駄に走査する行数が増えるだろう?
では無くて専用の記録ファイルをつくっておいて、
常時内容を走査するって事よ。
アクセス
↓
ログイン数記録ファイルを走査
↓
自分のIPと、期限切れIPを削除
↓
自分のIPを追記
↓
ファイル更新
って感じに。
342 :
307:2008/05/09(金) 18:23:41 ID:Ln96d6P1
改造じゃなくて、システム構築中です。。
SIDは定数だから普通に書いたらよかったんですね。
うっかりしてました。
ありがとうございます。
SSI使ってオンラインかどうかってわからないかったっけ?
344 :
nobodyさん:2008/05/09(金) 19:55:14 ID:cq1aYSJI
オブジェクトの任意のメソッドを上書きする方法があれば教えて下さい
346 :
nobodyさん:2008/05/09(金) 21:37:35 ID:TK9WqWmp
おい、質問ないのか過疎りすぎだろが!
またキャラが不安定な人か
ワロタ
じゃぁ質問しよう
FWに最低限必要な機能ってなんだと思う?
最近使い始めたFWの機能がどーも最悪なもんでw
ちなみに個人的には
バリデーション、DBへのラッパー
あたりかなーと思ってるんだけど
あ、あとテンプレートエンジンね
自分で作ったPHPをUPするのがレンタルサーバでしたら
セキュリティの事とか深く考える必要は無いと言われたんですが
本当なんでしょうか??
そんなことはない。
>>352 危ない危ない。。
引っかかる所でした。ありがとうございます
鯖のセキュリティーのつもりで言ったのかもね
確かにサーバのセキュリティ自体は考える必要ないっていうか
権限がなければ考えてても仕方ないw
スクリプト自体のセキュリティはいつの時でもしっかり考えないと。
>>354 >>355 あっ!なるほど。 私のうっかりですね・・・(汗汗
お返事ありがとうございました。
357 :
nobodyさん:2008/05/10(土) 10:59:14 ID:3v++6OkN
オブジェクトの指定したメソッドにフックを差しこみたいと思います
runkitを入れたのですが、
これだとクラスのメソッドを書き換えるのでちょっと大げさです
オブジェクトだけのメソッドを書き換えるにはどうしたらいいですか?
インスタンスに対して操作したいんです
何それどういう状況?
auでセッションがうまくいきません。
ログイン
↓
セッション生成、値格納
↓
ページ移動(ページA)
↓
セッション情報を使う
↓
ページ移動(ページB)
↓
セッションがなくなる
こんな感じになります。
ページAとBは同じソースなので
プログラムがおかしい時はどっちもおかしくなりますw
DoCoMoはうまくいったのですが....
解決方法をご存知の方。
教えてください!
よろしくおねがいします、
362 :
nobodyさん:2008/05/10(土) 13:24:46 ID:vET5c+ho
質問です
良くある、ページが2つのエリアに別れていて「左がメインコンテンツ」「右がコンテンツに関連する広告」
みたいな構造って、左のコンテンツを吐き出す処理の中で、その中のキーワードに応じて
右のコンテンツを吐き出すfunctionを叩くような形になっているんでしょうか?
もしくは、広告のキーワードを変数として吐き出して、それを広告部分のphpが取得して
出力処理って流れなのかな? (ad.php?key="music"みたいな…)
どういうやり方で作ればいいのか、アドバイスお願いします
左がメインコンテンツで右が広告なんてサイト知らんわボケ
2ペインでどっちが広告でもいいじゃねえか
で、
>>362の場合は好きに作れって結論になると思うが
良くあるって話だと今はフレーム切らないから、メインコンテンツを吐く処理中に
広告を吐くfunctionを呼びゃいいんじゃね
テンプレートエンジンを使ってるなら、出力順なんて気にならないだろ
365 :
361:2008/05/10(土) 14:49:38 ID:???
すいません、ケアレスミスでした。
>>362 コンテンツの内容に合わせて広告も変えるってことでいいのかな
それだとしたらphpshotのここ最近の記事を参照
ヒントはここまで
>>362 ってアフィリエイトとかの話かと思ったんだけど、違うのかな。
どこまで最適にやるかって話はあるけど、amazonのなんかだと自動的に判別してくれるんじゃないの。
368 :
nobodyさん:2008/05/10(土) 15:34:43 ID:baYV5j6g
おしえてgooに出したんですが回答が無かったもので、マルチポスト失礼します、
PHPにおける特殊記号の取り扱いについて質問させていただきます。
以下の処理を行っているのですが特殊記号'―'(ダッシュ)の扱いで悩んでいます。
1.文字コード'utf-8'のファイル内文字列をget_filecontentsで取得
2.取得文字列を'SJIS'に変換(mb_convert_encoding使用)
3.文字列内に'―'が存在していた場合'?'となってしまう
ex)"今日の野球結果 5―6"(文字コードutf-8)
->SJIS変換後 "今日の野球結果 5?6"
特殊文字'―'を文字コード変換できずに上記のような現象が起こっていると
思うのですがこれを回避する方法がありましたらご教示お願いします。
※サーバ:solaris
PHPバージョン:4.3.8
マルチ乙
php.iniの内部エンコーディングの設定とか
該当部分のコードぐらい書けよ
だれもおまえが書いたようなコード書けるんだし、著作権を主張するほどのライブラリってわけじゃないんだろ
372 :
nobodyさん:2008/05/10(土) 16:12:21 ID:baYV5j6g
>>371 いや、仕事じゃないんですけれど
解決できてず、悩んでるので書き込みさせて頂きました。
>>368 これって MS932がSJISと異なるとかいう話題だよね。
試してないけど、SJISじゃなくて、SJIS-WIN とか指定すればいいのかな。
DoCoMo以外で
session_destroy();
するとうまく動作しないんですがなんででしょうか
375 :
nobodyさん:2008/05/10(土) 16:29:14 ID:baYV5j6g
$boolReadXmlData = XML_Analizer( HOGE_RDF,CORRECT_FEED_HOGE );
function XML_Analizer($file,$correct_feed){
if( !file_exists( $file ) ){
$cpCmd = '/usr/bin/cp -p ' . $correct_feed . ' ' . $file;
system( $cpCmd, $ret );
}
$data = file_get_contents($file);
$data = str_replace("[―]","-",$data);
if( !$data ){
return false;
}
$str_encoding = mb_detect_encoding($data, 'auto');
if ($str_encoding != 'UTF-8') {
$data = mb_convert_encoding($data, 'UTF-8', $str_encoding);
}
$Unserializer =& new XML_Unserializer();
$Unserializer->setOption('parseAttributes', TRUE);
$status = $Unserializer->unserialize($data);
if ($status === true) {
$res_array = $Unserializer->getUnserializedData();
$arr_result_constructure[] = $res_array;
return $arr_result_constructure;
}else{
return false;
}
}
この後utf-8からSJISに文字コード変換しています
'―'の文字コード「?」を使って文字変換できないものでしょうか。
※$data = str_replace("[―]","-",$data); このあたりで
376 :
nobodyさん:2008/05/10(土) 16:31:23 ID:baYV5j6g
>>373 ありがとうございます
早速ためしてみます!
377 :
nobodyさん:2008/05/10(土) 16:32:23 ID:DzSEGQLQ
配列 $arrayから偶数番目の要素のみ取り出すにはどうしたらいい?
$array = array(あ,い,う,え,お,か,き,く,け,こ);
これを
$array = array(い,え,か,く,こ);
にしたいんだけど。
378 :
nobodyさん:2008/05/10(土) 16:39:49 ID:baYV5j6g
>>375 誤記がありました
この後utf-8からSJISに文字コード変換しています
'―'の文字コード「&#8213;」を使って文字変換できないものでしょうか。
~~~~~~~~~~~
※$data = str_replace("[―]","-",$data); このあたりで
$array = array('あ','い','う','え','お','か','き','く','け','こ');
$dest = ();
$t = length($array) / 2;
for (int i = 0; i < $length; $i++) {
$dest[] = $array[$i * 2];
}
$_SESSION = array();
session_destroy();
session_unset();
これらを使ってセッションの中身(?)を消そうと思ったんですが
DoCoMoではdestroy以外、auでは全てで消えませんでした。
仕様ですか?w
381 :
380:2008/05/10(土) 17:08:56 ID:???
auでは
old A
new B
data 100
としてお気に入りに入れて
再度アクセスしたら
old B
new C
data 100
で出てくるような感じです。
A、B、CはPHPSESIDをあらわしてます。
dataはsessionでもちまわってるデータです
382 :
nobodyさん:2008/05/10(土) 17:46:30 ID:09hEgNWC
php5.2.6内にPEARのバッチファイルが無いのですが
どうやってインストールしたらいいのでしょうか?
>>376 失敗だったら失敗で、結果を書いてってほしいな。
384 :
380:2008/05/10(土) 18:50:06 ID:???
cookieの破棄処理をはさむと
アドレスはBでくるのに
old C
new D
になってしまい、それはそれでおかしな動作になります(T_T)
剰余つかったら負けかなと思ってる。
意味不明
388 :
っ:2008/05/10(土) 20:50:31 ID:bCQuG41r
XREAの鯖を借りています。パーミッション600のパスワードファイル(pass.cgi)が、簡単に見られてしまいます。グループからのアクセスは600で拒否しているのに、なんで見られるのでしょうか?
スレタイ100回読んで出直せ。
>>388 それはグループ以外に見られている可能性はないのかな?
391 :
nobodyさん:2008/05/10(土) 21:17:42 ID:ZfUSU8TD
今、php5で作っているんですが、会員制サイトなので
ログインチェック用に別ファイルの.phpをすべてのページに読み込ませたいと
思っています。
個別に include()させるほかにどんな方法があるでしょうか?
アドバイスお願いします
もしかしたらphpの話題からずれてるかもしれませんが、もちろんphpでも
うまいやり方があれば教えてください。よろしくお願いします
ログインチェックファイルの中で個別コンテンツをincludeする
393 :
nobodyさん:2008/05/10(土) 21:34:39 ID:batXv2Os
zend studio+zend debuggerを使ってデバッグをしていましたが、
xdebugをインストールし、有効にすると、
zend debuggerがphpinfoに表示されなくなりました。
zend debuggerとxdebugは同時に使うことが出来ないのでしょうか?
同時に使う方法があれば教えてください
両方動かすのは無理だと気づこうぜ
デバッグはzend debugger
エラー時のスタックトレースはxdebug
って感じに両方の機能を使いたいんですが
やっぱり無理ですかね~
くどい
はい、それでは次の質問をどうぞ
できねえもんはできねえんだよ氏ね
何事も無かったかのように、次の質問をどうぞ
393 名前:nobodyさん[] 投稿日:2008/05/10(土) 21:34:39 ID:batXv2Os
zend studio+zend debuggerを使ってデバッグをしていましたが、
xdebugをインストールし、有効にすると、
zend debuggerがphpinfoに表示されなくなりました。
zend debuggerとxdebugは同時に使うことが出来ないのでしょうか?
同時に使う方法があれば教えてください
395 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 22:22:47 ID:???
デバッグはzend debugger
エラー時のスタックトレースはxdebug
って感じに両方の機能を使いたいんですが
やっぱり無理ですかね~
397 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 22:44:15 ID:???
>>396 お前に聞いてねーよデブ
400 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 23:01:55 ID:???
>>399 ゴリラは動物園に帰れよ
403 :
nobodyさん:2008/05/10(土) 23:48:22 ID:0rIgLgLy
質問です。
フォームの(POST)データをデータベースに入れる際
何か処理(htmlspecialcharsなど)をしたほうがいいのでしょうか?
それとも何も処理無しでも問題ないのでしょうか?
もしよろしければデータベースに入れるまでの処理をご教授ください。
よろしくお願いします。
こんなところで聞かないでちゃんと基礎から学べよ
405 :
nobodyさん:2008/05/10(土) 23:50:55 ID:DfRnQgur
セキュリティ関係は勉強しても不安なものさ。わかるだろ?
>>403 htmlspecialcharsはDBに入れるときじゃなく表示するときに処理する
DBには生データを入れて問題はないんじゃね
もちろんSQLインジェクション対策だけはしてな
407 :
380:2008/05/11(日) 00:19:51 ID:???
どなたかよろしくお願いいたします。
携帯3キャリア共通でうまくセッションを持ちまわる方法をいろいろ試し中です。
SIDを用いることはわかったのですが
クッキーが残ったりでうまくいってないように感じます。
よろしくおねがいします。
408 :
403:2008/05/11(日) 00:22:43 ID:Zep2ba94
409 :
nobodyさん:2008/05/11(日) 00:39:36 ID:lx6MvMXP
>>392 ありがとうございます、それってどういうことですか?
済みませんが良くわからないのでもう少し解説お願いします
>>409 ログインチェックファイルがあるじゃん?
あとそれぞれの個別コンテンツがあるじゃん?
前者の中で後者をincludeするってこと。
412 :
377:2008/05/11(日) 03:45:04 ID:KEs91aIs
413 :
nobodyさん:2008/05/11(日) 06:14:53 ID:4J9HPCgP
$_POST[hoge] と
$_POST["hoge"]
の違いってなんなんでしょうか?
サンプルで
if (isset($_POST["submit_resdel"])){
$res_no = key($_POST[submit_resdel]);
って記述があったんですが、これって2個目の$_POST[submit_resdel]は
$_POST["submit_resdel"]でもいいんじゃないかという気がするのですが・・・。
間違ってるだけに一票
415 :
nobodyさん:2008/05/11(日) 07:09:19 ID:LZ9HoYsn
PHP4.4.4(サーバはxrea)で、
__construct()が問題なく呼び出されているのですが、
PHP4系でも対応してるんですか?
一応それでも動く
418 :
413:2008/05/11(日) 07:18:18 ID:4J9HPCgP
こんな時間にありがとうございます。
>>414さん
やっぱりそうなんでしょうか・・・。
ここの例では、submitするとき、以下のように組んで配列っぽく
セットしてるんですが、
while($row = $mysql->fetch()){
$no = $row["no"];
$name = $row["name"]
echo <<<EOT
$no:
<input type="text" name="name[$no]" value="$name" size="10">
<input type="submit" name="submit_resdel[$no]" value="削除">
<br>
EOT;
}
このときだけは特別、とかいうことは・・・ないですよね。。
>>417さん
動作はするんですね!
でも、どっちも[submit_resdel]にしちゃうとそれはそれで動作しませんよね?
>>418 変数じゃなくて文字列か
それなら動作しないわ
書き間違いだと思われ
420 :
413:2008/05/11(日) 07:43:03 ID:4J9HPCgP
>>419さん
ありがとうございます。やはり書き間違いですか・・・
今回のこの件をググってる最中に↓のようなページをみつけたんですが、
ttp://oshiete.coneco.net/qa4004454.html このページでの質問者も同じように記述してるんですよね・・・わざわざダブルクォーテーション外して・・・。
key関数を使うときだけ・・・?とか色々考えたんですが、
とりあえず書き間違いと思って進めていこうと思います。
皆様ありがとうございました。
>>359 runkit_method_redefine
これじゃできないん?
もうちょっと具体的にやりたい事書かないとわからん
423 :
413:2008/05/11(日) 08:19:46 ID:4J9HPCgP
>>422さん
おおっ!ありがとうございます!
なるほど、未定義の定数として使用され、さらにそのものの名前を使用したと解釈されて
動作しちゃうわけですね・・・。。
私自身、現在習作を作る過程でPHPに慣れようとしているのですが、
確かにこの仕様には違和感がありますね。
書き間違えだったとしても、きちんと動作したものとして公開されていた理由がわかって、
やっとスッキリしました。
やっと寝られます。笑 ありがとうございました!
425 :
415:2008/05/11(日) 08:33:54 ID:LZ9HoYsn
>>424 確かにそうでした!
>PHP4.4.4(サーバはxrea)で、
>__construct()が問題なく呼び出されているのですが、
というのは、自分のテストコードに間違いがあったための、勘違いでした。
426 :
nobodyさん:2008/05/11(日) 12:51:45 ID:t1T6pRlq
rand(1,3)で、1~3の数字をランダムで出せますが、
「1が出る確率は50%、2が出る確率は30%、3が出る確率は20%」
と言う風に、確率として表示する場合、どういう計算式にすればいいのでしょうか?
01234・・・1
567・・・2
89・・・3
なにその宿題丸投げ
PHPを仕事場でやっていると、集中している時に下記みたいな文章を首に掲げたくなる俺は三流ですよ?
/*
現在理論しか通じないパソコンとプログラミングで対話中です。
人様との円滑な対話モードへの切り替えが少々上手くいかない場合や遅い場合が多々ありますので、理屈や理論以外をお求めの方はご遠慮頂くか少々お待ち頂くか生暖かい目で見守ってくださるようお願い致します。
*/
>>426 $a = array(1,1,1,1,1,2,2,2,3,3);
echo $a[array_rand($a)];
質問です。
PHP5 PEAR image_graph7.1
でjpg画像を作りたいのですができません(PNGはできる)
$graph =& Image_Graph::factory("graph", array(array("width" => 400, "height" => 400, "canvas" => "PNG")));
ここの最後の方の部分をJPGにする以外に変更が必要なのでしょうか?
下記の方法だと画像JPG画像はしっかり保存されてはいます。
$out = $Graph->done(array(
'tohtml' => TRUE,
'border' => 1,
'filename' => 'tes.jpg',
'filepath' => './',
'urlpath' => './'
)
);
できませんって何がどうできないでどうなってしまうのか書かないと分かるだけないだろ
CentOS 4.6 (kernel 2.6.9-67.0.1.EL)
Apache/2.0.52
PHP 4.3.9 (cgi) (built: Sep 20 2007 19:31:11)
mysql Ver 14.7 Distrib 4.1.20
phpmyadmin-2.11.6-1.el4.rf
という環境です。この環境で、
クライアントマシンから phpmyadmin にアクセスすると、
mcrypt 拡張をロードできません。PHP の設定を確認してください
と警告を受けます。mcrypt 関係は
libmcrypt-devel-2.5.7-2.el4.kb
libmcrypt-debuginfo-2.5.7-1.2.el4.rf
libmcrypt-2.5.7-2.el4.kb
mcrypt-2.6.4-2.el4.kb
がインストールしてあるのですが。
この問題はどのようにフィックスすべきなのでしょうか?
それとも何も問題がないのでしょうか?
PHPをmcrypt対応にしてリビルド
いいえ、ケフィアです
いいえ、ケフカです。
1人の天才的な人間の出現で、10000人の人間が不要になる時代。
そんな時代にあって、俺はその天才的な人間の1人なのかもしれない。
俺のせいで、仕事がなくなって首になった奴が相当いる。
もちろん、その中には潰れた会社もある。
でも、それが自然淘汰、適者生存であり自然の摂理なのだから・・
441 :
426:2008/05/11(日) 23:21:03 ID:t1T6pRlq
>>430 ありがとうございます。上手くできました。
ただ、細かい%で区切りたい場合はどうなるのでしょうか?
array内の数が増えすぎると思うのですが・・・。
if文と倍数を使う方法も考えたのですが、数学が苦手でわかりません。。
何か良い関数はないでしょうか?
>>441 参考に
if($hensu<50){}elseif(50<$hensu){}
$hensu(笑)
445 :
426:2008/05/11(日) 23:42:46 ID:???
みなさん、ありがとうございます。
教えて貰ったのを参考に、以下のソースを作りました。
たぶん、行けるのではないかと思っていますが、おかしい場合は指摘して下さい。
$item = array("aaa"=>"50","bbb"=>"30","ccc"=>"20");
$num_max = array_sum($item);
foreach($item as $keys => $values){
$number = $values/$num_max*10;
for($i=0;$i<$number;$i++){
$array[] = $keys;
}
}
echo $array[array_rand($array)];
10の倍数しか対応してないじゃねえかw
アホになります
オモロー
450 :
449:2008/05/12(月) 01:01:55 ID:???
ググッたら解決しました
451 :
449:2008/05/12(月) 01:45:29 ID:???
452 :
449:2008/05/12(月) 01:49:26 ID:???
include ('XML/Unserializer.php');
$unserializer = new XML_Unserializer();
$unserializer->unserialize($xml);
$array = $unserializer->getUnserializedData();
print_r($array);
これでOK
$obj = new SimpleXMLElement($xml);
でも値を取り出せるのでOKなんだけど、データ型はオブジェクトのまま
配列と同じ操作で扱うのは何か変だなーと思った
おやすみなさい
配列と同じ操作で扱って問題あるの?
454 :
nobodyさん:2008/05/12(月) 07:24:54 ID:o0vmBy2P
すいません質問です。
今運営しているPCサイトの携帯版を作ろうと思っています。
携帯用にするとき、元のサイトのサイズが大きいため分割する必要があると思い自分なりにやってみましたが、
分割のやり方が悪いため、htmlタグの途中で切れたりして変になってしまいます。
//1ページあたりの文字数(ページのサイズ)
$pagesize=1000;
元の文字列をページサイズで割り、合計のページ数を出す
$totalpage=ceil($str/$pagesize);
//↓1ページ目の場合は、テキストが0~1000までの部分文字列になる
$text=mb_substr($str,($page-1)*$pagesize,$pagesize);
上記のようにやってみたのですが、下記のようになったりします。
----------------------------------------------------
nページ目のテキスト終わり部分
・・・・・・・・
<a href="http:
---------------------------------------------------
n+1ページ目のテキスト始め部分
//hoge.com">ホゲドットコム</a>
---------------------------------------------------
タグの部分で分割させないためには、
1000文字を超えたところで一番最初に出てくる \n で分割したりすればいいと思うのですが、
それはどのようにやればいいのでしょうか。
アドバイスお願いします。
正規表現で /^.{1000}.*?\n/s とかすれば良いんじゃなかろうか。
. が1バイトになるのか1文字になるのかは、よく知らないから自分で確認してね。
456 :
454:2008/05/12(月) 08:19:16 ID:o0vmBy2P
>>455 アドバイスありがとうございます
やってみます
457 :
454:2008/05/12(月) 08:30:04 ID:o0vmBy2P
>>455 すいません
ずうずうしいですが、何の関数を使ったらよいか教えてもらえないでしょうか
<a href="test2.php?<?= SID ?>">page 2</a>
こんなかんじにしたときに、
携帯(DoCoMo)だとSIDが100%付与されるのですが、
PCだと付与されるときとされないときがあります。
原因は何でしょうか・・?
>>454 htmlの文字数で分割すると
場合によっては1ページ中に含まれるコンテンツがほんのわずかで
ユーザに余計なページ送りのストレスかけることにならないかい?
462 :
nobodyさん:2008/05/12(月) 16:05:32 ID:1jI7+vyu
配列の操作がよくわかりません。
var_dump()をかけると以下の結果を返す配列があります。($data_list)
array(1) { [0]=> array(7) { ["id"]=> string(1) "5" ["title"]=> string(97) "ゴールデンボウル~ポール・アンカ・オリジナル・グレイテスト・ヒッツ"
["artist"]=> string(21) "ポール・アンカ" ["kaisetsu_text"]=> string(19) "おすすめのCD 1"
["url"]=> string(7) "testURL" ["myWork"]=> string(1) "1" ["musicGenre"]=> string(1) "5" } }
これに対して、titleを抜き出したくて echo $data_list["title"] としても何も表示されません
どうしてでしょう? ご意見お願いします
$data_list[7]['title']
以下のようにするとよくわかります
echo "<pre>";
var_dump($data_list)
echo "</pre>";
訂正
×$data_list[7]['title']
○$data_list[0]['title']
465 :
nobodyさん:2008/05/12(月) 16:16:41 ID:1jI7+vyu
>>463-464 ありがとうございます!
そっか、二次元になってたんですね 自分で作ったのに忘れてました
echo "<pre>";
var_dump($data_list)
echo "</pre>";
↑これも活用します ありがとう
Parsing configuration file phpDocumentor.ini...ERROR: cannot open phpDocumentor.
ini in directory C:/xampp/php/PEAR/PhpDocumentor
-Is phpdoc in either the path or include_path in your php.ini file?
Xampp使ってるんですが、これはどういういみでしょうか。
467 :
nobodyさん:2008/05/12(月) 19:32:36 ID:o0vmBy2P
>>458 検索しましたが、preg_split()でうまくできませんでした
何時間考えても自分ではもうわからないので答えそのものを聞きたいところですが
そんなことしたら罵倒されるのはわかってるので、よそに行って聞いてきます
ありがとうございました
間違えた
"/^.{1000}\n/"
確認してないけど正規表現で
>>469 s指定は付け忘れだとして、それだと1000文字目の次が改行じゃないとマッチしない気がする。
471 :
nobodyさん:2008/05/12(月) 20:10:37 ID:NEnrgbxP
smartyのテンプレートでJavascriptを書いているのですが、
どうしてもエラーで出力自体が出来ません。
どのようにすればいいのでしょうか?
出力したいJavascriptはこのような感じです。
<SCRIPT language="JavaScript">
<!--
function OpenWin(url){
win=window.open(url,'sub','width=200,height=150');
}
// -->
</SCRIPT>
1000ピッタシにはならないけどこうかな?
"/^.{950,1000}?.+\n/s"
>>471 エラーがでてたならそれも書く
肝心のPHPコード部分がないとなんとも
474 :
nobodyさん:2008/05/12(月) 20:27:01 ID:NEnrgbxP
Fatal error: Smarty error: [in formVew.tpl line 59]: syntax error: unrecognized tag: win=window.open(url,'sub','width=200,height=150'); (Smarty_Compiler.class.php, line 446) in C:\Program Files\xampp\php\pear\smarty\libs\Smarty.class.php on line 1092
エラーはこのような感じです。
コードに関しては、上で書いたJavascriptをテンプレートとしてdisplayで出力するだけですから
>>471 {}がスマタグとして認識されてパースエラーになってんだろ
476 :
471:2008/05/12(月) 20:41:04 ID:NEnrgbxP
>>475 なるほど
テンプレートで{}を出力する方法はありませんでしょうか
477 :
nobodyさん:2008/05/12(月) 20:55:31 ID:1jI7+vyu
登録フォームを作っていて、セキュリティについて質問します
記入>確認>登録 という流れを考えていて、
確認ページでは、
print $_POST['message']; の形で、記入ページでtextareaに
記入したものを確認できるようにし、
<input type="hidden" name="message" value="$_POST['message']" />として、
値を登録ページに渡すようにしています。
今まで、登録ページ(実際のSQL登録の直前)で、addslashes($_POST['message'])として
いたんですが、addslashes()は、確認ページですべきなんでしょうか?
<input type="hidden" name="message" value="addslashes($_POST['message'])" />という感じで。。
どなたか教えてください、よろしくお願いします
>>477 addslashesはDBに挿入する際のエスケープ。
HTMLタグ無効化はhtmlspecialshars
480 :
454:2008/05/12(月) 21:04:30 ID:o0vmBy2P
色々考えていただいてありがとうございます
でもダメでした
print_r(preg_split("/^.{1000}.*?\n/s", $str));
結果
Array ( [0] => [1] =>
[1]に$str全部がはいる
print_r(preg_split("/^.{950,1000}?.+\n/s", $str));
結果
Array ( [0] => [1] => )
空
正規表現ではなく私の関数の使い方がおかしいのかもしれません
お付き合いありがとうございました
481 :
nobodyさん:2008/05/12(月) 21:06:42 ID:1jI7+vyu
>>479 ありがとうございます じゃ、上のケースだと、確認ページで
print htmlspecialchars($_POST['message']);
<input type="hidden" name="message" value="{htmlspecialchars($_POST['message'])}" />
という感じでしょうか?
使い分けがいまいちわからず困ってました ありがとうございました
>>480 もう見てないかもしれんが
preg_match_all('/.{1000}.*?\n|.*/s', $str, $matches);
ちゃんと動くかどうかは自分で確認して。
いふ(!しーたいぷ_あるなむ(くっきー[セッション_ねーむ()])) だい(エラー);
486 :
454:2008/05/13(火) 00:42:34 ID:dYo6M2/f
>>482 できました!!
今日一日かかってもできなかったので、
とりあえず\nで分割して配列にいれて、処理させようと考えていたところでs
本当に感謝です!!
488 :
484:2008/05/13(火) 00:44:57 ID:???
いや、違うしww
あふぉはすぐそうやって知識のない人間を卑下するww
化けの皮がかがれたね、書き方も似てるし
はい、次の質問どうぞ
490 :
nobodyさん:2008/05/13(火) 01:26:38 ID:YiuUZfQA
xhtml/phpでサイトを作っています。
<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>
上記を一行目に入れると、ブラウザ上に「"; ?>」の文字が表れました。
「"; ?>」を表示させないようにするためには、どうしたらいいでしょうか。
491 :
490:2008/05/13(火) 01:31:05 ID:YiuUZfQA
<!--<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>-->
こう書いたら、「"; ?>」の文字は消え、かつブラウザに中身が表示されましたが、
こうしちゃっても大丈夫なのでしょうか?
>>491 だめ。
<?xml ~ はなくすのが一番良い。
493 :
nobodyさん:2008/05/13(火) 02:30:25 ID:Xhimy1cE
>>492 坊主、大人の世界はそれじゃ通用しないんだよ。
>>481 inputフォームからの値の受け渡し時にhtmlspecialcharsする必要はない
htmlに出力する際にhtmlspecialcharsを使う
htmlに出力してるじゃん
>>495 お前の作ったサイトはゴミ以下なんだろうな。
見なくても分かるw
>>491 そこまで思いついてて なぜそのやり方なんだよw
だめにきまってるだろ
>>490 のやり方で文字分割して出力しろ
501 :
nobodyさん:2008/05/13(火) 04:04:30 ID:2tOaVNoE
先ほどFC2ブログ板でも書き込んだのですが
http://nezumin85.blog71.fc2.com/ のブログで
アドセンスをプラグインで貼り付けて、各記事の文の一番下に表示
させてるのですけど、アドセンスを一番上の記事の下だけに
表示させるにはどうすればいいのでしょうか?
わかる方いたら教えてくれませんか?お願いします。
このサンプルコードを使えばできるみたいなのですけど
phpの知識がないのでわからないです…。
何百回も自分で色々してみたのですけどどうしてもできません。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); $loopcounter++; ?>
// the loop stuffs
<?php if ($loopcounter <= 1) { include (TEMPLATEPATH . '/ad.php'); } ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
the loop stuffs のところは、エントリーを表示するコードが入ります。
ad.php を作っておき、そこに広告コードを挿入します。
>>490 実行して、生成されたHTML見ると
<?xml version="1.0" encoding="Shift_JIS"?>
って出るんだけど、何が問題なの?
>>498 ちゃんと出されてるソースを全部嫁
>print htmlspecialchars($_POST['message']);
><input type="hidden" name="message" value="{htmlspecialchars($_POST['message'])}" />
上のprintしている部分の話ではない
下のフォームからphpへ受け渡す段階の話をしている
>>504 それがhtmlに出力していないのだとしたら一体何に出力しているのですか?
506 :
490:2008/05/13(火) 09:26:20 ID:YiuUZfQA
>>500 分割して出力してもだめでした。どうしても「"; ?>」が出ます。
>>503 ソースには、そのまま下が書いてありました。
<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>
php使えるサーバなのですが……。
Fxでソースを見ると、「<?php echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>」までがピンク、
「"; ?>」が黒で表示されました。
ということは、ブラウザは一番目の「?>」までしか判断していない、ということになります。
ためしに一番目の「?>」を「?>」にしたら出来ましたが、やっぱりだめですか?
これでも駄目なら、もうどーにでもなーれー
507 :
490:2008/05/13(火) 09:30:21 ID:YiuUZfQA
php使えてないんじゃん
>>506 拡張子が .php になってないとかそういう問題?
>>505 ああスマンよく読んでなかったのは俺のようだ
{}で囲ってるとこを見るとphpから出力してるのか
てっきりhtmlに埋め込んだコードかと思ってた
フォーム部分とは分離したほうがいいけどね
>>490 <?php echo '<?xml version="1.0" encoding="Shift_JIS" ?'.'>'; ?>
これでどう?
ソースにphpタグが表示されてる時点で
phpが実行されてないと気づけよw
>>513 むしろお前の方が頭悪すぎ。
どう悪いかというと、脳のシナプスの軸索のからレセプターへ
ノルアドレナリンの放出が鈍くなっているか極端に少なくなっている。
栄養の偏りで小さな血栓が脳を部分的に閉塞しているはず。
すぐに病院に行け。
515 :
nobodyさん:2008/05/13(火) 21:46:16 ID:4/oebqLD
すいませんもしスレ違いだったら誘導お願いします。
PHP LearnsのMYSQL LINKRANKを探しています。
使おうと思ったらサイトが閉鎖していました…
必要な機能としては…
・大量にリンク可能(=SQL…ですかね?)
・カテゴリ分類可能
・管理人のみ編集可能
・検索機能付き
・可能ならば携帯可
もし、似たようなものがあればどなたか教えてください。
かれこれ累計20日くらい探しているのですがいまいち良し悪しが判らず、
一番良さそうなのがMYSQL LINKRANKなのですがどこのリンクから入ってもキャッシュカード(?)のブログが表示されてしまいます。
閉鎖していて、移転先もないようなので困ってしまいました。
どなたかお願い致します。
517 :
nobodyさん:2008/05/13(火) 21:54:15 ID:KUG4Ujxh
sprintfで%xを使えば数字を16進数で表示させることが出来ますけど、
その逆で、
16進数を数字に変更したいのですけど、どのようにすれば可能でしょうか?
>>517 16進数も数字だが?
というつまらんのはさておき
10進数に直したいならhexdec
519 :
nobodyさん:2008/05/13(火) 21:58:38 ID:KUG4Ujxh
520 :
nobodyさん:2008/05/13(火) 23:12:33 ID:4/oebqLD
>>519 うわぁああああそれだぁぁぁぁぁあああ!!!!!
とてもありがとぉぉぉぉぉおおおおお!!!!!!
これで便利なサイトが作れます。三日三晩感謝します。
521 :
nobodyさん:2008/05/13(火) 23:18:42 ID:sbqm3fgy
$bbs_link="<a href="bbs".$count.".php">$count.php</a>";
この変数$bbs_linkの内容をtxtファイルに保存したいんですがうまくいきません。
$count=10としたら
<a href="bbs10.php">10.php</a>
という内容で変数に代入してファイルに書き込みたいんですが
どうすればよいのでしょうか?
>>521 \でエスケープかシングルクォーテーション
523 :
nobodyさん:2008/05/13(火) 23:36:05 ID:Iq/6RSHi
IIS6.0なんですけれど、HTTP経由でGETを受け付けてる時、回線の速度が
数KBになると、そのコネクションを担当しているスレッドがスリープしたり
するんでしょうか。
あるサイトからBIOSをダウンロードしているのですが、時々、コネクションが
切られることなくダウンロード速度が0byte/sになり、しばらくすると、また
ダウンロードを始めるみたいな、間欠的な動きをします。
このような動作をするサイトからはfirefoxではダウンロードが完了しない
ことが多いようで、Irvineなどを使わないとダメなようです。
525 :
nobodyさん:2008/05/14(水) 00:47:29 ID:JIUW+do7
次元数が不定の配列を動的に指定するにはどうしたらいいですか?
パラメータが0,1,2→$array[0][1][2]
パラメータが3,4→$array[3][4]
で、パラメータの数と値が毎回変わる感じです
>>525 count
func_get_args
527 :
nobodyさん:2008/05/14(水) 00:50:41 ID:/0X1sWmR
データの暗号化複合化という処理をしたくて
$key = "kaidoku";
$mojiretu = "文字列";
srand(0); // 乱数の初期化
$iv = mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB), MCRYPT_RAND);
$dat0 = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $mojiretu,cfb, $iv);
print "$dat0<br>";
srand(0); // 乱数の初期化
$iv = mcrypt_create_iv(mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB), MCRYPT_RAND);
$dat1 = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $dat0, cfb, $iv);
print "$dat1<br>";
ざっとこのようなソースを書きましたが、これだと複合化出来ません。
どのあたりに問題があるのでしょうか?
ページごとにsessionをregenerateしているときに
ページA →リンク→ ページB →戻る→ ページA
としたときに、ページAのURLの引数のSIDはもう無効になっているので
そこから
→リンク→ ページC
といったときに、sessionのデータが持ちまわれず、
セッション切れになります。
どうにかならないでしょうか?
529 :
525:2008/05/14(水) 01:19:18 ID:JIUW+do7
$array = array('hoge'=>array('moge','poge'));
$dimention = array('hoge',2);
$pointer =& $array;
foreach ( $dimention as $key ){
$pointer =& $pointer[$key];
}
$pointer = 'boke';
こんな感じで$array['hoge'][2]を指定することが出来ました
リファレンスになるので、$array['hoge'][2]を直接指定した時と
var_dumpが違いますが・・・
昨日のUFJのトラブルは、日立のJP1を使ってジョブコントロールしておけば全く問題がなかったのに、
東京三菱のIBMの馬鹿SEがわけの分からないジョブコントロールを導入したから。
銀行のシステムはPHPで動いてんのかw
>>531 趣味って作っている君には分からないだろうが、
世界最大の金融システムの仕様を全部見れる人なんていない。
仕様全体を通して見れる人がいなければ、テスト漏れが生じるのは当たり前。
そこで、分割モジュール開発手法で世界一位を誇る日立情報なんですよ。
>>530 日立の営業マンさん2ちゃんでの宣伝おつかれさまです。
銀行はCOBOLとJAVAだろ?
536 :
528:2008/05/14(水) 08:49:21 ID:???
>528
どなたか、わかる方いらっしゃいませんか??
よろしくおねがいします。
なんでページごとにregenerate?
>>528 そういう遷移を防止するために、regenerateしてるんじゃないの?
セッションハイジャック対策の為だけなら、
regenerateしなきゃいい。
>>530 馬鹿呼ばわりしているから釘さすけど、
日立さんだってSEやサポート最悪だったよ?
顧客に提案していた統合型のネットインフラの入口、
GWに負荷かける信じられない設計の物を
平気な顔で提案、販売、トラブル起こしてたからさ
どこもかしこも汚点はあるんだから黙っときなってw
板違い
日立とか富士通とか言う話もう飽きた
どっかいけ
>>538 でも端末IDをセッションIDみたく使うと、docomoの場合、クリックごとに確認画面が出ちゃうんじゃないの?
最近のはそうでもないのかな。
まぁ、通常のセッション管理の他は、重要な画面では端末IDもチェックする、ぐらいでも十分な気もするけど。
>>540 そうそう、このスレでJP1以外の日立の仕事を語るのは良くない。
543 :
528:2008/05/14(水) 12:21:11 ID:???
>>538 ログイン以外のページへのブックマーク、
他人のログインを防ぐためにおこなっているので
別に戻るはされてもかまわないんですが、
やっぱりその辺は都合よくはできなさそうですかね・・・
他人のログインだけならuser_agentだけでチェックして
同一機種は目をつむる程度にしといたほうがいいでしょうか・・
545 :
nobodyさん:2008/05/14(水) 12:51:13 ID:6NHDZLwn
phpで指定したサイトを丸ごと吸い取るのってなんていう命令文でしたか?
ど忘れしてしまって検索しても思い出せません
ファイルゲットコンテンツ
ここで日立の悪口をいうな
随時社員が監視してるんだぞ
監視というか業務で詰まったときにここで暴れますが何か
事実を言ったまでだよ。
IBMの方が日立より上だと思っているんだろうが、全く違う。
IBMはマネージメントのプロを自称しながら、設計会議に欠席することも度々あるし、
現場を知らない奴らばっかり、それで技術的なことを突っ込むとIBMの下請け社員に回答を振っているだけ。
日立も下請けは使うが、基本設計より上流は8割以上がプロパーで構成している。
昨日のニュースでやっていた中国の首相が、何の役に立たないのに現場に出向いていって知ったかぶりで作業員に「早く救出すれば、それだけ人が助かる」とか命令しているのと一緒。
なんでPHPのスレにそれを書くんだよw
誤解している奴がいるから書いただけだよ。
IBMは、自称マネージメント要員の似非エンジニア
NECは、半導体事業で失敗してオーブン系に移転してきた低脳エンジニア
富士通は、元々頭が悪いエンジニア集団で下請けに助けてもらっている
NTT系は、可もなく不可もなくだが、あたりはずれが多い
ここはJP1スレです。
関係ない話題はやめて、他人の失敗をあげつらうレスをしてください。
日立うぜえ
このスレを日立で埋めるんだ。
邪魔するな
具体的にいえば、仕様書が古くて役に立たない場合に他のシステムの仕様を把握しようとするとき、
馬鹿Slerの下請けは、ソースコードを一生懸命解析しようとする。
しかし、日立はまず仕様のあるべき姿を業務資料から立案し、
ソースコードはその確認のために使う。
そこで、仕様バグやバグになる可能性を発見する。
根本からシステムを見直す。決してつぎはぎではない。動けばいいではない。
どちらが本来のエンジニアのあるべき姿か分かるよな。
557 :
nobodyさん:2008/05/14(水) 17:06:02 ID:o+mWMOHM
キチウゼエ
>>556 それが本当なら、すごいけどな。それが本当なら。
日立の社員はスレタイも読めないのかww
つ PHPのHはHitachiのH
☆★☆★日立の求人案内☆★☆★
給料:月給15万
勤務体系:2交代「(A)9:00-17:00(B)17:00-25:00(C)25:00-9:00
業務内容:主に自社製品の宣伝。2ちゃんねるへの書き込み。
562 :
nobodyさん:2008/05/14(水) 17:43:11 ID:WFEW7+yn
$test="abcdefghijkl"
という漢字の任意の文字列の間すべてに
スラッシュを入れたいのですが
どのようにすれば良いのでしょうか?
結果として
$test="a/b/c/d/e/f/g/h/i/j/k/l"
としたいです
うん。
これでこそ、このスレだよね。
うんそうだね。
>>562 マルチバイト文字も対応が必要なら、自分で考えて。
implode('/', str_split($str))
566 :
nobodyさん:2008/05/14(水) 18:02:53 ID:WFEW7+yn
むかつく誤変換なのでレスしない
具体的にいえば、仕様書が古くて役に立たない場合に他のシステムの仕様を把握しようとするとき、
馬鹿Slerの下請けは、ソースコードを一生懸命解析しようとする。
しかし、日立はまず仕様のあるべき姿を業務資料から立案し、
ソースコードはその確認のために使う。
そこで、仕様バグやバグになる可能性を発見する。
根本からシステムを見直す。決してつぎはぎではない。動けばいいではない。
どちらが本来のエンジニアのあるべき姿か分かるよな。
mb_convert_kanaが反映されない
mb_strlenがstrlenと同じ結果になる
なぜ?
日立なら問題はすべて解決してくれる。
学生でよければ
2次元にカンマ区切りで配列したtxtファイルデータから、
phpで部分的にデータを取り出す場合(何行目の何列目?)
のphpの記述はどのようになるでしょうか?
>>576 「php csv 関数」でググッてから質問しろ
>>575 学生は都合悪くなるとすぐ逃げるかた却下
メール投稿での日記更新とかで
投稿用メールアドレスをユーザーに登録してもらって
即座に使用可能になるのってどうやってるんでしょうか。
そもそも即座に使用できないとき何してるのか考えろ
581 :
579:2008/05/15(木) 01:49:34 ID:???
すみません、甘えすぎました
うむ、次からは気をつけたまえ
と、ニートが申しております
PEAR::DB + MySQLでlike中間一致検索する場合、
%や_をエスケープするのに簡単な方法はありますか?
自分で考えたのは
function myescape($keyword) {
$keyword = str_replace('\\', '\\\\\\\\', $keyword);
$keyword = str_replace('%', '\%', $keyword);
$keyword = str_replace('_', '\_', $keyword);
return $keyword;
}
$db->getAll("select * from t where name like '%".myescape($keyword)."'";
という感じなのですが、これでいいのでしょうか?
586 :
585:2008/05/15(木) 06:16:42 ID:???
朝っぱらから疲れたので質問は取り下げます
587 :
585:2008/05/15(木) 06:29:27 ID:???
588 :
585:2008/05/15(木) 07:19:28 ID:uzQIA50K
>>586-587 騙るのはやめてください
まったく、ひまですね
IDだせばいいんでしょ!
回答よろ
xdebugをソースからインストールしようとしているのですが、どうもうまくいきません。
やり方は以下のページと同じで、
http://www.trekdevel.net/archives/171 コンパイルは成功したのですが、php.iniにzend_extension=...を書いても
php -mやphpinfoにxdebugが出てきません。
こういう場合どこかにエラーでも出ないのでしょうか?
NGName:585
NGID:uzQIA50K
592 :
nobodyさん:2008/05/15(木) 10:52:56 ID:uzQIA50K
答えられないなら黙ってればいいのに
それで動くなら、それでいいじゃん。
594 :
nobodyさん:2008/05/15(木) 11:08:52 ID:uzQIA50K
うるせえよわからないなら黙ってろ!
>>593 >それで動くなら、それでいいじゃん。
動 く な ら 、 そ れ で い い じ ゃ ん ! !
動 く な ら 、 そ れ で い い じ ゃ ん ! !
動 く な ら 、 そ れ で い い じ ゃ ん ! !
eaccelerator入れようとしたのですが
--with-php-config=
で指定する
php-config
locateしてみたのですがないようです。
この場合どうすればいいでしょうか?
597 :
596:2008/05/15(木) 11:58:42 ID:???
って、ここの回答者ってキチガイが多いから他いくか・・
分からないことは逃げよ。ここの裏の掟。
PHPの質問受け付けてくれるところなら、ほかにもあるしね。
自分がそうだからそう思えるんだろうね。
どんだけスキルないのw
自分では、元気のつもりだったんだけど、
病院で精密検査してもらったら心筋梗塞と診断されてしまった。
3ヶ月間入院して安静にしたら、ついに寝たきりになってしまった。
その後、介護認定を受けたら介護度は5になった。
膀胱カテーテルを留置してもらい、しかも疥癬に感染してしまった。
そのため、家族に感染を防ぐ為毎日全身を清拭することになった。
疥癬が治癒したら、入浴サービスを利用することにした。
訪問看護は週に3回である。これは、JP1で典型的に成功した事例です。
symfonyは、ファイルに含まれているクラスのパスを自動でリストアップしますが
それと同じことが出来るライブラリとかがあれば教えてください
symfonyの中
608 :
nobodyさん:2008/05/16(金) 18:27:15 ID:rxHRpk5j
PHPに限ったことではないのですが・・・
16777215
という数値を
FFFFFF
に直すには、どのような変数を使うのがスマートでしょうか?
よろしくお願いします。
intval
>>608 言語によるがPHPならdechexとか
611 :
596:2008/05/16(金) 18:54:18 ID:???
>>608 $hensu=16777215;
$hensu="FFFFFF";
echo $hensu;
質問者からキチガイに転身したわけか。
613 :
nobodyさん:2008/05/16(金) 19:15:54 ID:LhmlCzbv
質問です。
フォームのデータをDBに入れるときはエスケープ処理をしますが
セッションに入れるときも何か処理したほうがいいのでしょうか?
614 :
608:2008/05/16(金) 19:38:41 ID:rxHRpk5j
>>609 >>610 レスありがとうございます。
dechexで希望通りのことができました。
実際につかうときはstr_padで桁数をそろえたりも必要かもしれませんね。
>>611 来ると思ってましたがこういうのも好きですw
ありがとうございました。
WinXP にて 今まで XAMPP を使用していたのですが、勉強がてらXAMPP をアンインストールして、
Apache 2.2 / PHP 5.2.6 をインストールし直しました。
今までXAMPP下で動かしていたプログラムを移動し、実行したところ、
関数に対して文字列の引数を与える際、"" や '' で囲ってあげなかったところ――例えば foo(hoge);――が以下のようなエラーを吐くようになりました。
NOTICE : Use of undefined constant image - assumed 'hoge' ....
どうやら与えられた引数を定数として解釈してしまい、そんな定数ないじゃん!と言っているようなのです。
これは error_reporting の設定の問題なのでしょうか。それとも別に何か設定があるのでしょうか。
ご助言いただけると幸いです。
>>615 マニュアルも読めないならxamppなんて使うな(つか勉強のためにxampp使うとか有り得ない)
なんで文字列をクオートで括らないのか理解できない
>>615 "" や '' で囲ってあげてください><
括らないのが許されるのは小学生までだよねー
621 :
615:2008/05/16(金) 21:44:42 ID:cNash65G
ごめんなさい、ID出し忘れました。
それに訂正です。
foo(hoge); を投げたときに帰ってくるエラーが
Notice : Use of undefined constant hoge - assumed 'hoge' ....
です。
更新し忘れてました。
>>616-620 返信ありがとうございます。
確かに引数は括るべきであって、それを怠った自分が悪いということはわかっています。
ただ、今までは括らなくとも動いていたので、どこの設定でそうなっているのか、ということを知りたく、質問した次第です。
スレ汚し失礼しました。
623 :
622:2008/05/16(金) 21:49:52 ID:cNash65G
sage チェックが orz
>>625 そのまんまだろ
じぶんがひつようになったときにつかう
わかったかゆとり!
627 :
ヌルホース:2008/05/17(土) 01:50:40 ID:???
スレタイ嫁。
はい次の質問者どうぞ。
629 :
ヌルホース:2008/05/17(土) 01:59:21 ID:???
(`・ω・´)
ヌルー
どこのスレいったら、教えてくれるでしょうか?
>>629 海外のサーバを借りているみたいですね
先方に問い合わせたら教えてくれましたよ
>>620 そういう世話焼きすぎがまさにPHP的だと思う。
3分ハッキングにはちょうどいい。
633 :
nobodyさん:2008/05/17(土) 21:19:35 ID:axq+Svx6
$_SERVER['PATH_INFO']を使って2chみたいなURLの掲示板を作成しています。
「read.php/1/」「read.php/23/」みたいに指定し、ログの表示は出来たのですが、
なぜかスタイルシートが適用されません。
何もパスを付けずに「read.php」を実行させると普通にスタイルシートが適用されるのですが、
「read.php/1/」みたいな感じにパスを付けるとどうしてもCSSが適用されません。
どうしたらよいでしょうか?
絶対パスで指定する
635 :
nobodyさん:2008/05/17(土) 21:30:11 ID:axq+Svx6
>>634 本当ありがとうございます。
出来ました。
>>635 あとread.php/1/ってしたなら1ってディレクトリから相対パスで指定すりゃできる
$sql = "
SELECT *
FROM `TBL_1` AS `T1`
INNER JOIN `TBL_2` `T2`
ON `T1`.`hoge_ID`=`T2`.`hoge_ID`
";
$result = mysql_query($sql);
$rows = @mysql_num_rows($result);
while($row = @mysql_fetch_array($result)){
$row[]←ここでどうかけばいいの?
}
こんな風に二つのテーブルをjoinしてその両方に同名のカラムがあった場合にselect * した場合はphp側で同名のカラムをどうやって$row[]の添え字に書いて取り出せば良いのでしょうか?
*を使わずにselectでダブらない様にカラムをいちいちAS ~としてやらずに済ませたい場面がありましたので質問した次第。
638 :
637:2008/05/17(土) 22:32:30 ID:???
すいません、自己解決しました
640 :
637:2008/05/17(土) 22:39:39 ID:???
あなただれですか?
641 :
nobodyさん:2008/05/17(土) 22:40:47 ID:2uwsWgrz
ああ、過去レス読んだらIDださないといけないみたいですね
これで満足ですよね、解決したいので回答よろ
>>641 全くわからんけど
今から風呂はいって
頭洗って
珈琲ノンでから考えてみる。
とりあえず、ptint_rでrowの中身みてみた?
みたけどわかりません
645 :
nobodyさん:2008/05/17(土) 23:08:50 ID:2uwsWgrz
while($row = @mysql_fetch_array($result)){
$row[]←ここでどうかけばいいの?
}
この部分聞いてるのでおねがいしますよ
結合したのに何故混同するw
647 :
637:2008/05/17(土) 23:10:29 ID:1fE1M1vI
>>641 勝手に私を騙ってID出さないで下さい。
もう解決したんですから。
648 :
643:2008/05/17(土) 23:59:54 ID:???
>>637 解決したのか!
print_r($row)で中身みると
Array (
[0] => NULL
[hoge1] => NULL
[1] => NULL
[hoge2] => NULL
[2] => NULL
[hoge3] => ぱんつ
・・・エンドレスはめ殺し・・・
)
だから
while($row = @mysql_fetch_array($result)){
$orz = $row[2];
}
とすれば、hoge3のカラムが取り出せる。
649 :
nobodyさん:2008/05/18(日) 00:48:21 ID:YbibvtLr
よくわからないけどなんで2をしていするの?
650 :
nobodyさん:2008/05/18(日) 01:05:20 ID:Ye23aTZk
指定したディレクトリの.csvファイルのみを配列に格納するPHPスクリプトが書けなくて悩んでいます・・・。
ここまではなんとかなったのですが・・・。
<?php
header("Content-type: text/html; charset=shift_jis");
$filedir='.';#取得したいディレクトリ //[.]はカレントディレクトリを表す
$dirlist=array();#格納先の配列を準備
$strDir=opendir($filedir);#ディレクトリを開く
while($str=readdir($strDir)){array_push($dirlist,$str);}#1つづつ配列に格納
closedir($strDir);#ディレクトリを閉じる
//print_r($dirlist);#配列を表示
$filelist=array();#格納先の配列を準備
foreach ($dirlist as $filename){
if(filetype($filename) == "file"){array_push($filelist,$filename);}#ファイルだけを格納
}
?>
651 :
nobodyさん:2008/05/18(日) 01:10:51 ID:TyvZJlXj
table aaa
id pri message
11 5 あああ
12 2 いいい
13 5 ううう
14 3 えええ
この場合id 14のメッセージが3/(5+2+5+3)の確率で
表示されるようにしたいのですが良い方法はありますか
>>650 人のコード丸々コピーじゃなくて少しは自分の頭で考えたほうがいいよ。
>>651 rand関数
<?php
if (!($dir = opendir("./"))) {
die;
}
while ($fnm = readdir($dir)) {
if (ereg('.csv$', $fnm)) {
print "<P>$fnm</P>\n";
}
}
closedir($dir);
?>
---------------------ここまで俺の誤爆------------------
657 :
nobodyさん:2008/05/18(日) 01:37:51 ID:gOK6sC5j
質問よろしくお願いします。
get_defined_varsで
ユーザ定義の変数のみを取り出すスマートな方法があったら教えてください。
よろしくお願いします。
まず自分で書けるスマートなコードを書いてもらわないと回答に困る
659 :
nobodyさん:2008/05/18(日) 01:49:01 ID:TyvZJlXj
660 :
657:2008/05/18(日) 01:51:46 ID:gOK6sC5j
>>658 自分で考えつくのは、
GLOBALSなどをひとつずつ排除していって、
残ったものがユーザ定義変数である・・・とかそんな感じです。
じっさいに試してはいませんが・・・。
よろしくお願いします。
$array= array(
0=>"a",
1=>"b",
2=>"c",
"あ"=>"d",
"い"=>"e"
);
array_valuesを使ってひらがなのキーの値だけ取り出すスマートな方法がありますか?
コードにして書いてください
ここは宿題スレじゃないので、必要最低限コードぐらいは自分で考えて書いてください
>>659 重み付けがある時にrand関数が使えない理由は?
>>661 なんでキーを取り出したいのにarray_values使うんだよw
>>662 それぞれの値ごとに確率が設定されてるだろザコ
>>664 悪いが何言ってるのか意味が分からんw
それこそrand関数の使い道だろw
int rand ( [int $min, int $max] )
randができるのは↑のこと
今回、質問者の悩みは解決しない
rand関数で一発解決しますなんてどこにも書いてないと思うんだけどw
まだわからないのか^^;
randなんて今回は使わない
ゆとり乙
じゃ何使うの
670 :
637:2008/05/18(日) 03:02:09 ID:tgzZzG90
ここのルールをよく知らないでの質問した私が悪いのですが、今更ですがIDを出します。
>>643 中身は見てます。phpに渡される時点で添え字が数字でなく文字列の場合は上書きされてしまっていますね。
と言うことはphp側ではどうしようもないということか・・・
>>646 マスターテーブルが自身をjoinして参照しなくてはならない場面があったからです。
こういう場合に、SELECT * ってSQLに書いた場合に、いちいち、
`T1`.`hoge_ID` AS `T1_ID`
`T2`.`hoge_ID` AS `T2_ID`
としないで済ませる事が出来る方法がないかと質問しました。
671 :
637:2008/05/18(日) 03:10:52 ID:tgzZzG90
例えばこんな感じ
テーブル
ID|名前|好きな人id
1 |太郎|3
2 |花子|1
3 |美咲|1
で、
太郎は美咲が好き
花子は太郎が好き
美咲は太郎が好き
という結果が欲しい。
まともにASするとか、このテーブルをID=>名前ってな連想配列にしとくとか、そういう手があるのは百も承知で、
SELECT
*
FROM テーブル AS `T1`
INNER JOIN テーブル AS `T2`
みたいに「*」使った場合に上記のような結果が欲しいわけです。
それは使用するAPIの問題だからどうしてもそうしたいなら同名の場合に配慮してくれる奴探せばいいんでない
637は謝ろうって気がないよな
向こうのスレいってこうゆとり
あなたの、ゆ~と~り
676 :
ヌルホース:2008/05/18(日) 09:42:14 ID:???
637顔真っ赤で頭から湯気がでてますw
679 :
ヌルホース:2008/05/18(日) 09:51:07 ID:???
ないよ
681 :
ヌルホース:2008/05/18(日) 10:00:32 ID:???
管理パス(英数6ケタくらい)が漏れるのはCGIが抜かれてるしか考えられないヌ
(・・;)
682 :
森:2008/05/18(日) 11:59:57 ID:???
そう、俺だ。
今は閉鎖されてしまった髭めがねさんの掲示板の
以下のタイプを探しています
↓
「New NICOLE Board Type-2 v1.15b - Edit by 髭めがね」
かなり探したのですが見つけられませんでした。
再配布場所をご存知の方いらっしゃれば教えてください
テンプレ違反かつスレ違いですー
685 :
nobodyさん:2008/05/18(日) 17:48:24 ID:WBHzUPNU
Apacheのダウンロードと設定の仕方がわかりません。
本を見ながらやってますが、「ダウンロードしたソースコードをサーバー上
の適当なフォルダへアップロード」って言うのと、
「tarコマンドで解答処理」ていうのがどこでコマンド入力するのかわかりません。
それのどこがPHPと関係あるのですか?
メーラーを起動させるヘッダはどのように書けば良いのでしょうか?
(リンクなどを押されたときに処理をはさんでからメールを起動させたい)
688 :
687:2008/05/18(日) 18:20:41 ID:P5qlbfWP
ID出し忘れ
689 :
nobodyさん:2008/05/18(日) 18:26:26 ID:NYmCH+10
宗教戦争になりそうですが・・・
最近のPHP開発手法のトレンドは何でしょうか?
690 :
683:2008/05/18(日) 18:28:03 ID:???
どこで聞けばいいかも分からなかったので・・・
すいません
693 :
nobodyさん:2008/05/18(日) 18:55:07 ID:NYmCH+10
CodeIgniterよさげですね。
#ここってネタスレになってます?
PHP以外の開発手法も聞いてみたいねぇ。
大差ないと思うがね。
>>689 中国当たりに丸投げして安く済ませることかな
微修正は日本人が担当する
>>696 今流行のアウトソーシングってやつですね。
Javaばっかりかと思っていたら、PHPでもそうなんですか。
PHPのセキュリティについてはどんな感じで学習すれば良いですか?
PHPは基礎的な部分は簡単だけど、
安全なアプリを構築するのはかなりの知識が要るようなのですが。
>>697 アウトソースよりも、この場合はオフショア開発っていうお。
>>698 オライリーの入門PHPセキュリティおすすめ。
700 :
651:2008/05/18(日) 20:56:15 ID:TyvZJlXj
流れたのでもう一度
table aaa
id pri message
11 5 あああ
12 2 いいい
13 5 ううう
14 3 えええ
この場合id 14のメッセージが3/(5+2+5+3)の確率で
表示されるようにしたいのですが良い方法はありますか
>>700 回答者に対してザコとか発言する質問者さんにはお答えできませんのでお引取り下さい。
>>700 rand使ってあとはお前ががんばって計算式を見つけ出せwwwww 宿題は自分でやれwwww
またきのうの回答者か
rand関係ないし
704 :
651:2008/05/18(日) 21:49:17 ID:TyvZJlXj
>>702 煽ってるのは僕とは別人です
宿題でもありません
706 :
651:2008/05/18(日) 21:53:40 ID:TyvZJlXj
だから確率がそれぞれ設定されてるんだからrandいらねえだろ
>>700 確率なのに100か10にならないところにフイタ
>>707 確率が設定されているからrandいるんだろうw
rand使わないやり方ってあるの?
できなくはないよ
rand関数を使うってことはifなどで振り分ける処理が必要になるよな
コード量がふえるだろ、わかるか
どうやるの?
ひんと
つ配列関数
乱数表使えば作れる。乱数表使って作った関数がrand。
つまり無駄なことをすればrand使わなくてできるんじゃねw
ちなみに予想つきそうなレスを前もってかいとくが
$array = array(1,1,1,2,2,2,3,3,3,3,4,4,4,4,4,4,5,5);
↑こんなのじゃないからな
こんなめんどくさいのならrand使うのといっしょ
あとは自分で考えろってこった
randでいいじゃん簡単だし
これがわからないやつはFizzBuzzを頭の中でコード書けない池沼
とりあえずrandでできるってやろうはここにコードを書いてくれ
おれが手直ししてあげよう
719 :
698:2008/05/18(日) 22:26:23 ID:???
>>699 ありがとうございます。読んでみます。
基本文法習得をなんとか終えた後、
今「PHP サイバーテロの技法」という本を読んでいますが、
ヌルバイト攻撃とかディレクトリ・トラバーサルとか、自分にはかなり難しいですね。
とはいえ一通り対策が講じれるようにならないとまずいのですが…
PHP簡単、というのは良く聞きますがセキュリティまで考えたら
そんな単純な話ではないなぁ、と。
とりあえずrand以外でできるってやろうはここにコードを書いてくれ
おれが手直ししてあげよう
意訳
早くコード書いて俺に答えを教えてくれ。もう日曜の10時半なんだよ。
個数分だけ要素作ってarray_randかけるのか?なんて無駄なことをw randでいいじゃんw
逃げの準備かw
725 :
651:2008/05/18(日) 22:36:59 ID:TyvZJlXj
>>721 まあ、困り度はそんな感じです
ななしで煽るのは止めてくださいずら
宿題丸投げスレじゃありませんのでヒントもらったら自分で考えてください。
array_randでもrandでも好きなようにやればいいさ。
>>651 よし、ここは全くわからない俺が
しかもrand関数って何という俺が
風呂はいって
珈琲飲んで
パジャマに着替えてから一緒に考えてあげよう。
ところで、ID14のPRI値が3でmessage値が「えええ」だから
ID14のPRI/(全部のPRIの値)の確率でID14のmessageを表示されたいの?
728 :
nobodyさん:2008/05/19(月) 00:10:36 ID:i7qsMY9z
iframeを使った自動投稿や自動カウントアップを防ぎたいのですが
どうやればいいですか?
729 :
651:2008/05/19(月) 00:10:56 ID:f/z8MzuC
731 :
727:2008/05/19(月) 00:40:33 ID:???
>>651 idが連番で抜けがないなら
$priarray
$messagearray
にDB取り込んで,取り出したいIDを$keyIdに入れ
function rndAnswer( $priarray,$messagearray,$keyId ) {
$keyId = $keyId-1;
$rndNum = $priarray[$keyid]/array_sum( $priarray );
/**rand使えるようにどうにかする。**/
return $answer;
}
よし、これ以上は小生には無理だ。あとはお前ががんばって教えてくれ。
732 :
nobodyさん:2008/05/19(月) 04:44:41 ID:uTe3T86T
質問させてください。
UTF-8で運用するWebフォームから、iso-2022-jpでメールを出そうとしているのですが
文字コードマッピングの問題で ㈱や~(WAVE DASH)などがどうしても化けてしまいます。
Web上での文字コードのルールについて基本的な知識やルールは承知しているのですが
ユーザが入力してくる文字(機種依存文字が多々あり)をそのままメールに活かすように
したいのです。
もし解決法をご存じの方がいらっしゃいましたら是非お知恵をお貸しください。
よろしくお願いいたします。
733 :
732:2008/05/19(月) 04:51:38 ID:uTe3T86T
書き忘れましたが、
PHP 4.4.2
FreeBSD 4.11-RELEASE-p17
Apache2系
です。
これまでは
mb_convert_string($mail_body, "iso-2022-jp", "UTF-8");
で試みています。
convertしないで添付ファイルの形にする
>>651 目的に合うかわからんけどMySQL側で。。バージョン依存あり
SELECT * FROM aaa WHERE id =14
AND RAND( ) < pri / ( SELECT SUM( pri ) FROM aaa )
736 :
nobodyさん:2008/05/19(月) 10:38:21 ID:qHM47HMz
ファイルアップロード時の変数について教えてください。
ファイルはアップロードできたのですが、
クライアント側のファイルのパスをサーバ側でも取得したいのですが
$_FILES['id']['name']にはファイル名だけしか入っていませんでした。
フルパスを取得するにはどのようにしたらよいでしょうか?
PHP Version 4.2.3 です。
んなセキュリティ的に危険なこと、出来るほうがおかしい
>>736 Javascriptで取得できるから、あとはがんばって。
ただ、ブラウザごとに微妙に動作が違った気がする。
<form onSubmit="alert(this.file.value)">
<input name="file" type="file">
<input type="submit">
</form>
739 :
nobodyさん:2008/05/19(月) 11:46:25 ID:qHM47HMz
>>738 hiddenにthis.file.valueを設定すればよいということですね。
別件で作ったJavaサーブレットのアップロードでは取得できたので
PHPが隠蔽しているのかもしれません。
Javascriptでやってみます。
ありがとうございました。
こんにちわ
PHP+Oracle接続環境を作成の際にエラーが出まして、
もし、分かる方が居たら教えて頂ければと思っております。
仮想マシン:Xen
管理OS:CentOS5
ゲストOS:CentOS5,Fedora8
apache 2.2.8
php 5.2.6
configureは出来たのですが、makeで以下のようなエラーが出ました。
libphp5.la
/usr/bin/ld: cannot find -lirc
collect2: ld returned 1 exit status
make: *** [libphp5.la] エラー 1
CentOS5,Fedora8共にエラーが出ております。
lircが見つからないといわれているので、
yum install *lirc*で全部入れてみましたが駄目でした。
両OSで出来ないのでXenのカーネルが問題なんでしょうかね…
よろしくお願いします。
>>740 自己解決できない人間はWindows使ってくださいよ
>>740 なんでライブラリの問題でカーネルが原因になるんだか
/usr/bin/ld: cannot find -lirc はlircが見つからないではなく
libirc.aが見つからないって意味だ
よって yum install *lirc* とか無駄
libircが入ったパッケージをインストールするか、強引だがリンカの指定から-lircを外して動けばOK
>>742 解答ありがとうございます。
仮想サーバーと同じ構成のマシンがもう1台ありまして、
そのマシンはFedora5なんですが、
makeまではいけたので、
Xenのカーネルが問題なのかなと思ってしまいました。
エラーの意味やライブラリを理解できていない自分には、
リンカの指定をはずすなどかなり難しいそうなので、
libircが入ったパッケージを探してみます。
744 :
nobodyさん:2008/05/19(月) 19:41:48 ID:xzrDZ7d0
Windows XP
Apache 2.0
PHP 5
$h = popen('unko.exe');
if ($h == FALSE) die('失敗したにょ!');
fputs($h, ・・・以下省略
pclose($h);
こんな処理をしたいのですが、unko.exe は実際にはありません。
無いにもかかわらず popen の戻り値が FALSE にならないので
die してくれません。ちゃんと die してほしんです。
何か良い方法はありませんか?
popenする前にfile_existsでチェックしろ
超初心者なんですが…
PEAR::AUTHを使ってみたいのですが、
パスワード暗号化の時saltを付け加える事ってできますか?
暗号化方法の選択でSMD5等が無いようなので…
747 :
746:2008/05/19(月) 20:16:05 ID:???
超初心者なんですが自己解決しました
748 :
746:2008/05/19(月) 20:28:11 ID:xxBfPPP+
↑自己解決してませんが…
マルチ乙
超初心者で質問もしてませんが自己解決しました
昔pearlのHPを見た記憶があるんだがurl知ってる人おしえて
752 :
746:2008/05/19(月) 20:56:08 ID:xxBfPPP+
>>749 他でも聞いたのですが答えがなかったのです。
ちょwがっきじゃなくて
pearlってライブラリなかった?
756 :
ハチミツ:2008/05/19(月) 21:52:54 ID:sdAnx2Kb
ハチミツと申します。私は
ttp://bbs.832tool.net/ のショボい掲示板を作って、パーミッションは604にしました。
しかし、なぜかindex.phpのスクリプトが抜かれてしまいます。
教えてください。
また、サーバはXREA.COMを借りています。
セキュリティの穴があるとか言われたことがあるのですが、誰か詳しい方教えてください。
抜かれてしまうってどういうこと?
758 :
ハチミツ:2008/05/19(月) 22:05:23 ID:sdAnx2Kb
>>757 ほぼ自作のindex.phpに穴があるせいか、パスワードの入ったログファイル(.cgiでパーミッション606)がアクセスされてしまうのです。
普通なら.cgiは、アクセスされないのですが、穴の性で見られてしまっているということです。
ログファイルが開けることとindex.phpに穴があることとどう関係あるの?
761 :
ハチミツ:2008/05/19(月) 22:10:33 ID:sdAnx2Kb
762 :
ハチミツ:2008/05/19(月) 22:13:02 ID:sdAnx2Kb
>>759 よく意味がわからないです。
>>760 不正にindex.phpが見られたら、
同じディレクディレクトリにあったとしたら
pass.cgi
が見られたり、
../pass.cgi
と指定されたら見られてしまいます。
意味が分からない。
日本語も良く分からない。
index.phpに(不正なクエリと共に?)アクセスされと同階層にあるpass.cgiが見られてしまう?
謎。
ドキュメントルート以上に置くかapacheをちゃんと設定するかaccessで拒否るか拡張子phpにすればいいのでは?
764 :
ハチミツ:2008/05/19(月) 22:26:56 ID:sdAnx2Kb
>>763 指定されたファイルが見られてしまうと言うことです。失礼しました。
データの書き込みは
{$id}-log.cgi
と記述していまして、
id=testして、あればログファイルを記述しなければエラーをだすようにしているのですが
この$_GET['id'];
に不正に
index.phpが仕掛けれているせいか、-log.cgiが擦り抜けられてしまうという怖い攻撃らしいです。
昔はそれで、中身が表示されたのですが、今は対策したはずです。しかし、中身が漏れているらしく…
教えてほしいです。
765 :
ハチミツ:2008/05/19(月) 22:29:04 ID:sdAnx2Kb
失礼ですが、もしかして女性の方ですか?
767 :
ハチミツ:2008/05/19(月) 22:38:02 ID:sdAnx2Kb
すいません。期待されてたようですが、男性です。
そもそも、その不正なアクセスを再現もできていなければ、原理的な可能性を理解してるわけでも
ない気がする。そんなの、どう対策すべきかは誰にも判らんだろ。
769 :
746:2008/05/19(月) 22:43:59 ID:???
結局
>>746にはなんだかんだで誰も回答できませんでした。っと・・
>>769 いやー、でもさ何気に
>>746はここの解答者には難しくね?(俺含め)
そりゃ平のMD5がオンライン辞書攻撃であっさり抜かれる事があるのは承知してるが
>>746 ないならpearいじって改造すればいいだけの話
横から悪いが、PEARのソースコードなんてそんな簡単に改造できるもんなん?
逆に聞きたいけど何を理由にできないと?
本日のゆとり晒し上げ
773 名前:nobodyさん[sage] 投稿日:2008/05/19(月) 23:54:40 ID:???
横から悪いが、PEARのソースコードなんてそんな簡単に改造できるもんなん?
すまん、ゆとりはいいすぎた
ソースも読めない池沼と言うべきだった
で、結局なんだかんだでサンプル一つ回答できませんでしたよ。っと・・
多分暗号化部分を変更するだけなら難しく無いんじゃ・・
それすら出来ないならPEARまんま使うか、他のよさげなライブラリ探すしかない。
だって自分で作りたいんでしょ?
779 :
nobodyさん:2008/05/20(火) 01:06:40 ID:YowAhmFQ
PHP+MySQLの処理で、毎回クエリを送信してデータを取得し、表示する方法と、
一回のクエリで全データを配列に入れて、それからforなどで表示する方法と、
どちらが速くて負荷がかからないですかね?
実験では後者ですが、具体的な差が説明されている
サイトなどをご存じでしたら、教えて下さい。
負荷ってなんの?
通信ならDB呼ぶオーバヘッドを考慮して前者
メモリなら後者
あとね自分でベンチとったならそれ信じなよ
こんな匿名のとこで聞いて前者のほうが断然早い!とか言えば信じ込んじゃうわけ?
自分の結果に自信を持ってくれ
>>777 回答はでてる
0からの宿題のためにサンプル求めるところではない
782 :
nobodyさん:2008/05/20(火) 11:27:00 ID:MX4GJ438
$var1_1 = $var1 = $_POST['var1'];
上みたいな記述って問題ないでしょうか? echo $var1_1と試したところ、
ちゃんと表示はされてるんですが、念のため確認したいです。
どなたかご回答お願いします。
問題ない。
でも、こういうの難しいよね。
以前調べたら、PHPだけがJavaとかPerlとかCと三項演算子の結合の向きが違ってたし。
標準出力への出力を文字列として取り込むことってできますか?
つまりこんな関数があるとき、
function hoge() {
echo "hogehoge";
}
$a = `hoge()`
// $a = "hogehoge" となる
ということがやりたいのですが。
789 :
786:2008/05/20(火) 15:14:45 ID:???
ありがとな解決した
すいません、質問です。
echoで自分の定義したオブジェクトを指定した場合に特定のメソッドの結果を返させたいのですが、どうやれば良いのでしょうか。
例:
($barはfooクラスのインスタンスであるとして)
echo $bar;
ってしたときに
echo $bar.toString();
のような動作をさせたいのですが。
あわわ、javaのつもりで書いてしまった。
正しくは
echo $bar->toString();って感じです。
echoが通常呼び出す文字列変換メソッド?を書き換えられれば良いのでしょうか。よくわかりません。
toString()が文字列返せばいいだけでわ?
toString()略したいんです。明示的に変換が必要な場合はともかく、
デフォルトではなんかのインターフェイスを呼んでおいてほしいです。toString()が存在するかどうかすら隠ぺいしておきたい。
なるべくソースコードをすっきりさせるために…
オブジェクトをStringにキャストするのが間違ってる
これは明示的に変換が必要なケースだろ
PHP5なら__toStringで可能かもしれない
>>796 おお、まさにこれです! ありがとうございました!
798 :
nobodyさん:2008/05/20(火) 22:17:15 ID:aFyFy0AF
shift_jisのxmlファイルをfile_get_contents()で変数にいれて
mb_convert_encoding()でShift_JIS→UTF-8に文字コードを変換して
simplexml_load_string()でxmlのデータを扱うおうとしてるけどエラー出るから助けてくれ
エラーは「Entity: line 1: parser error : switching encoding: encoder error」って出てるけどエンコード系でダメなの?
コードは下な感じ
<?php
$_xmlFile = file_get_contents( "etc.xml" );
$_xmlFile = mb_convert_encoding( $_xmlFile, "UTF-8", "Shift_JIS" );
$_xml = simplexml_load_string( $_xmlFile );
?>
ググッたらsimplexml_load_string()はUTF-8でないとダメ!って見つけてこうやってんだけど
他に何かありますか?
xml見せてみ
800 :
nobodyさん:2008/05/20(火) 22:37:15 ID:aFyFy0AF
xmlは下な感じ。実際わ<no_xxx></no_xxx>がもっと続いてる
xmlは別のjavaプログラムからShift_JISで出力してる
<?xml version="1.0" encoding="Shift_JIS" ?>
<data>
<no_001>
<date>2008/05/20</date>
<comment>あいうえお</comment>
</no_001>
</data>
>>798のmb_convert_encoding()の返り値の$_xmlFileを
var_dump()でみたら2バイト文字は文字化けしてないんですけど・・・
エラー的には1行目がおかしい?(文字コード関係?)
encoding="Shift_JIS"って言ってるのにUTF-8のxml送り込んだらそりゃPHPタンも困るんでは・・・
>>798 "Shift_JIS"だっけか?
"sjis"じゃね?
>>798 XMLファイルの中でエンコードが指定されてるから、ファイルの文字コードが正しければ、
mb_convert_encoding は不要。
レスあり
>>801 Shift_JISで出さないとxmlファイルの一部が文字化けしちゃうんだよね
mb_convert_encoding()がなんとかしてくれると思ったんだが
>>802 試してみたが"sjis"でも変わらなかった
>>803 実はxmlファイルをjava側で出力してる時に全角ハイフンの文字化け対策で
ファイル出力のときの文字コード指定はWindows_31Jにしてるんだけど・・・それが原因だったりするのかな(文字コードが合ってないってことで)
文字化けしてないんで大丈夫と思ってるんだけど(xmlにはWindows-31J指定できないんでShift_JISにしてる)
806 :
nobodyさん:2008/05/20(火) 23:50:24 ID:rMEOfKkX
リファレンス元をunsetしても、リファレンス先がunsetされません。
これはどのように理解すればいいでしょうか?
$a = 'hoge';
$b =& $a;
var_dump($b);
$a = 'poge';
var_dump($b);
unset($a);
var_dump($b);
808 :
786:2008/05/21(水) 00:02:21 ID:???
>>787 他のob_関数を使っているときなど完璧ではないようですが、
これしかないのでしょうか。ありがとうございます。
809 :
782:2008/05/21(水) 00:47:56 ID:???
静的なクラスのメソッド内で、自分のクラスの情報って得る子と出来ますか?
名前とか。
良く考えたら __CLASS__ で十分な気がしてきた。
getで送信したphp内のheaderでheader("Location: $url");にtarget_blankを指定するにはどうすればよいでしょう?
ちょw
>>812 おおおおお、って思ったけど、継承使うと基底クラスの名前でるんだよね。
>>815 class BOO {
static function booo() {
}
}
class FOO extends BOO {
}
FOO::booo();
で、booo関数内で "FOO" を取得したいという意味なら、キビシイ気がする。
多分無理なんじゃなかろうか。
ファイル別にしてなら面倒だけど出来なくもないんだけどね。
でもそれだと意味が無いよなぁ。
User::Create();
とかやりたいけど。Factoryでいいか。
818 :
nobodyさん:2008/05/21(水) 13:42:40 ID:8D+5rC/5
非統合型メタ検索ってありませんか?
簡単そうだからみんな作らないのかな・・・
利用するだけの俺にはサッパリだが。
作り方の載っているサイトでもいいのでどなたか教えてください。
staticなクラス名云々は5.3から新しい機能が実装されるから
それまで待つ
820 :
nobodyさん:2008/05/21(水) 17:51:04 ID:7+lnnayN
すみません、聞きます
mysqlにデータを登録するとき、<p style="color:red;">A</p>のような文字列を入れたい場合は
htmlspecialchars()をすべきなんでしょうか?
addslashes()でやったところ上手くいかなかったのですが、html~をしたら上手くいきました
でも、本を読むとhtml~は引き出したデータをhtmlに出力するときに使うものと
あるので、変なことをしている(どこかに手違いがある?)のかと心配になっています。
どうなんでしょうか?
環境はphp5 mysql5 apache2です
よろしくお願いします
>>820 マイエスキューエルリアルエスケープストリングを使う
本が正解
addslashedで何がダメだったのか不明だが、prepareを使うとか
mysql限定でいいならmysql_real_escape_stringとかそのあたりで好きなの使え
文字のエンコードによってはどうのこうの、だったよな。
忘れたけどとりあえず
>>821-822でFA
824 :
nobodyさん:2008/05/21(水) 22:41:35 ID:2LrwwB21
質問です。
prototype.jsのAjax.Requestを用いてPHPから値を取得したいのですが、PHP側からはどのように値を返せばよいのでしょうか?
例として、js側は…
new Ajax.Request(
'return.php',
{
method: 'post',
parameters:Form.serialize(this),
onComplete:function(request){
alert(request.responseText); // ここの受け取り方もいまいち自身がありません…
},
});
とすると、return.php側ではどのように返せばよいのか…単純に return "foo"; ではダメでした。
よろしくお願いします。
>>824 echo "foo"
まあ普通はJSON形式の文字列を返すけど
あ…標準出力なんですね。ありがとうございます!
というか、ウェブアプリは標準出力しか返せないからw
レスポンスコードとかヘッダとか一部の小さいやつ除く)
828 :
nobodyさん:2008/05/22(木) 00:11:42 ID:b0IxLnKb
教えてください
メールで画像を送ったら縮小されてまたメールで帰ってくるcgiかphpとかありますか?
かなり困ってます!
あります
830 :
nobodyさん:2008/05/22(木) 01:35:10 ID:6+GQhqgH
超初心者です。
sakuraのレンタルサーバ借りてるのですが、簡単なお小遣い帳のCGIがありましたら、ご教授ください。
探してます系はスレ違いです
このスレは作る人を対象としたスレです
お小遣い帳のCGIってなんだよw
いいな。お小遣い帳CGI。
いついつにいくらお小遣いをもらったとか、次の日にママンに内緒で銀行からお金振り込んで
モリタポ買っちゃったとか、そういうのを書き留めておきたいと。で、世界中に公開したいと。
ずっと前にWeb制作板の「こんなCGI探してます」スレが埋まって、
誰も次スレを立てないまま現在に至ってるからこうなるんだろうか。
834 :
nobodyさん:2008/05/22(木) 12:16:13 ID:AwS6iPvU
dateの逆関数がほしいです
$timestamp=***("Y年m月d日",$date);
みたいな。
strtotimeは規定の形式じゃないといけないですし
なんか無いですかね?
mktime
836 :
nobodyさん:2008/05/22(木) 13:01:28 ID:mji3QyC6
number_formatを使ったときに「-0.8」などは
「-0」と返ってくる。
0の時はマイナスが要らないのだけど、どうすりゃいいの?
正規表現で-0だったらreplaceで0にするとかやるの?
どうカクのよ
>>838 number_format(round(-0.8, 0))
とか
840 :
838:2008/05/22(木) 17:35:01 ID:???
841 :
nobodyさん:2008/05/22(木) 20:30:37 ID:pnGKUbbW
Thu May 22 20:30:37 +0000 2008 みたいな日付フォーマットを変換してくれる関数とかないかな?
半角スペースでsplitかexplodeしろって話かな…
845 :
820:2008/05/22(木) 23:01:35 ID:???
>>821-823 すごく遅れてすみません、アドバイスありがとうございました
参考にして勉強します、ありがとう
ある関数の中でオブジェクトを生成して、それを return で返す場合、
そのまま返すのと、&を付けて参照で返すのと、違いってありますか?
例えば、以下の2つの関数で戻り値に何か違いはあるでしょうか?
function &bar1(){
$obj = new Foo();
return $obj;
}
function bar2(){
$obj = new Foo();
return $obj;
}
number_formatでdecimalを省略してる場合は
>>839でもいいけど、そうでない場合がマズイってことじゃね?
>>848 -0.8 が -0 になるって時点で、小数部の桁数は0 なのは自明じゃないかって思ってたんだけど、
そういう理解でいいのかな。
どうもありがとう。
850 :
nobodyさん:2008/05/23(金) 00:56:38 ID:AusPFJ9q
$sql = "SELECT FROM no_url WHERE url='$url'";
$res = mysql_query$sql,($conn);
if(mysql_num_rows($res)==1){
echo "そのURLは登録できません";
}
と言うように、MySQLで禁止URLリストの中を検索して
URLが一致すればエラーメッセージを出したいです。
ただ、URLの書式が「
http://hogehoge.com」「
http://hogehoge.com/」
と、/を付けるか否かだけでも違うURLと見なされてしまいます。
どのようにしてURLチェックをすればよろしいのでしょうか?
正規表現
いやらしい
>>849 >>849がおそらく想定しているであろう仕様の範囲内だったら、
>>839でも問題ないです。
ただ、「-0だったら0にする」という目的に対しての
>>839は、
後々いろんな副作用に悩まされるかもね。と言いたかったわけです。
854 :
nobodyさん:2008/05/23(金) 01:20:04 ID:h/rWmUOt
検索キーワード"+"や"<"をinputに入れても、ちゃんと引数が渡されない。
どうしたらよいんでしょうか? 他には大文字記号が文字化けする。
エンコードはSJIS→SJIS
>>853 どうもありがと。
良く見たら質問がおかしいな。 -0.8 だったら -1になるし。-0.08の間違いかね。
>>854 何がどう渡らないのか、サンプルコード載せたら?
856 :
nobodyさん:2008/05/23(金) 01:47:42 ID:kzFC2aJn
<?php
$strPsList = passthru('/bin/ps ax');
?>
linuxのpsコマンドの結果を変数に代入する処理です。
変数へきちんと結果が格納されるのですが、
コマンドラインで上記のファイルを実行すると
ターミナル上にもpsコマンドの結果が表示されて困ってます。。
どうすれば解決するでしょう??
857 :
nobodyさん:2008/05/23(金) 01:47:51 ID:1yGfTtCF
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory. in C:***
って何のエラーを言っているんですか?
858 :
nobodyさん:2008/05/23(金) 01:55:41 ID:nxQoYtgS
すみません、クダ質ですが
echo "<input type=\"hidden\" value=\"htmlspecialchars($_POST['var'])\" />";
っていう表現、できないんでしょうか?
861 :
nobodyさん:2008/05/23(金) 02:54:11 ID:h/rWmUOt
>>857 コンパイルファイルが見つからない。
つまり構文エラー
862 :
nobodyさん:2008/05/23(金) 02:57:03 ID:h/rWmUOt
大丈夫か
>>857 'templates_c' does not exist
>>858 echo "<input type=\"hidden\" value=\"".htmlspecialchars($_POST['var'])."\" />";
866 :
nobodyさん:2008/05/23(金) 13:40:51 ID:z2YBLdy6
PEARのPagerについてです。
Googleの検索結果のようにxx件中 yy-zz件表示というのをやりたいのですが、
xx件中はPager::numItems()で解決したのですが、現在の表示位置(yy-zz)を返してくれる関数がありませんでした。
何かうまい具合に解決する方法を教えて下さい。
867 :
nobodyさん:2008/05/23(金) 14:14:41 ID:Yvld99GN
perPageとgetCurrentPageIDから作れば
Pager::getLinks()にお任せでも良いような気がするけど
何かぴったりの関数があったんですが非推奨なので迷ってます。
870 :
nobodyさん:2008/05/23(金) 15:36:18 ID:zGb3lfL6
至急
web経由でfaxを送信したいのですが、
どのようにすればいいですか?
fax機とwebサーバー機は接続されています。
webサーバー機から通常のfax印刷で送信することは可能です。
大変申し訳ないのですが、急いでいますので詳しく教えて下さい。
faxとサーバはどう接続されているんだ。
急いでるんだ、早く答えろ。
急いでるのならFAXサーバを買うとかASPサービスを使うとかあるだろ
873 :
nobodyさん:2008/05/23(金) 16:13:21 ID:zGb3lfL6
ご回答ありがとうございます。
faxとサーバーはLANで接続されていて、
例えばサーバーから印刷する際に、プリンターをfax機(複合機)を選べば、
電話番号の画面が出て、入力するとfaxが普通に送れます。
それを、このwebサーバーにつながっているブラウザクラインとから、
ボタンを押すと、特定のデータをfaxとして送信できる、とまぁこういう訳です。
宣しくお願いします。結構急いでいます。
そんなに急いでるんだったら、2chで相談せず業者に金払って
教えてもらえばいいと思うんですよね。
875 :
nobodyさん:2008/05/23(金) 16:21:52 ID:zGb3lfL6
ちょーーー、このレスの存在意義を全否定するレスww
どこも全否定しとらんだろ
時間は金で買うもんだよ、坊や
877 :
874:2008/05/23(金) 16:31:42 ID:???
「大至急!カンマで区切られた文字列をひと区切りずつ配列に代入するような関数を探しています。
とにかく急いでるんですが困っています。急ぎですので早急に回答お願いします」
という質問だけのスレなら、確かに存在意義を全否定したことになるんでしょうけど。
>>870 回答が欲しいのは分かりますが、
「至急」
と要求するのはマナー違反ですよ
つか 至急どうにかなる問題じゃないよね
>870がどう考えてるか知らんが、結構大変
>872が正解だよ
880 :
nobodyさん:2008/05/23(金) 17:01:25 ID:zGb3lfL6
至急と書いたのはすみませんでした。
ただやりたいことは、
サーバー側でブラウザからのリクエストデータに特定のキー(fax送信要求コマンド)と値(fax番号)が入っていたら、
サーバーに繋がっているネットワーク対応のfax複合機にfaxをしろと
命令をphpからだす方法が分かればいいだけですので、なんとかなりませんでしょうか?
881 :
nobodyさん:2008/05/23(金) 17:12:19 ID:zGb3lfL6
ちなみに、どうしてこんな仕様になっているかというと、
本日行われたクライアントの本社の沢村という店舗運営統括部長が、
どうせなら本社のパソコンからボタン一発で各店舗にfaxを流せないか、
という一声でこうなりました。
「全部、電線で繋がっているんだから、後は電気信号をうまく出せばいいだけの問題だろ?」と言われて、
「確かにそうですね。来週のリリースに乗っけておきます」と返事をしてしまったのですが、
帰ってやり方がわからず困っています。
しゅくだいはじぶんでとこうね
わからない事は持ち帰って検討させていただきます、が基本だろう
ちなみにできないと思っても最初の返答は一緒だが
>>881 必死なのは伝わるけど名前出してリアルを再現しても答えてもらえるというわけじゃないよ。
>webサーバー機から通常のfax印刷で送信することは可能です。
これがカギでしょ。どういうコマンドを裏で叩いてるかわからないことにはどうしようもない。
>>883 持ち帰りは情報流出になりかねないからどんな些細なことでも禁止されてるんじゃない?
>>884 あ、クライアント常駐の派遣やSESだとそうだね
その場合は単純に検討してみますでいいんだけど
帰ってやり方が云々って書いてあるから、社外打ち合わせの場の話かと思って
せっぱつまってるのを装ってるのにマジレスすんなよw
テキストファイルにでも落として、メモ帳に印刷オプションつけて叩けばいいやん。
まぁ、上司にでも話して、無かったことにしてもらうのが一番だと思うけど。
>>870 Windowsサーバ使ってCOM経由でPHPから通常印刷やFAX送信したことはある。
土日にちょちょいと組めばいいと思うよ。
WebサーバがWin以外だと
>webサーバー機から通常のfax印刷で送信することは可能です。
ここをどうやってるのかによるね。
あとfax機がメール受信をFAX受信としたり、FAX送信のゲートウェイ機能
を持つものもあるから、場合のよっては利用できるかも。
889 :
nobodyさん:2008/05/23(金) 18:12:57 ID:pC5B1H2j
PHPでちょっと多めの画像を縮小して表示してるページがあるのですが
負荷軽減のために、元画像が更新されていなければブラウザにキャッシュさせたいと思ってます。
で画像の更新日時を取得して、日付フォーマットを整形した後
header('Last-Modified: '.$this->_origin_date, true);
header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="'.$this->_origin_name.'"');
で画像を出力しています。
リクエストヘッダーには
If-Modified-Since: Mon, 21 Apr 2008 14:47:20 GMT
レスポンスヘッダーには
Last-Modified: Mon, 21 Apr 2008 14:47:20 GMT
となっていて、IEのキャッシュを見てもちゃんとファイルがあって
最終更新日は送った日になっています。
でも、二度目のリクエストでレスポンスコードが304ではなく200になっています。
ということはキャッシュを読まずに、サーバーから読んでるってことですよね?
画像のURLが
thumb.php?path=/path/to/origin/image.jpg&w=105
と動的というか、?でクエリーが付いてるからでしょいうか?
また、なんか他にヘッダーが必要いなのでしょうか?
キャッシュする方法があったら教えてください。
お願いします。
COMとか久々に聞いたな。
.NET最高だぜ。
>>889 Cache-Control に no-cache とか入ってんじゃない。PHPだとデフォルトで付くっぽいし。
ブラウザ側でヘッダ確認したら。
892 :
889:2008/05/23(金) 19:29:11 ID:pC5B1H2j
>>891 ありがとうございます
header("Pragma: public");
header("Cache-Control: public, max-age=604800");
こんなヘッダーを送ってみたり
いろいろ試してみましたが200のままです。
ヘッダーはこんな感じです
HTTP/1.1 200 OK
Date: Fri, 23 May 2008 10:20:35 GMT
Server: Apache
X-Powered-By: PHP/5.1.6
Pragma: public
Cache-Control: public, max-age=604800
Last-Modified: Thu, 03 Apr 2008 14:08:35 GMT
Content-Length: 2829
Content-Type: image/jpeg
レスポンスコード304がキャッシュから読んでて、200だとキャッシュから読んでないって認識はあってますよね?
>>892 レスポンスに Expiresとかは出てないの?
それを対応してもダメなら自分には分からん。
894 :
nobodyさん:2008/05/23(金) 21:13:10 ID:7Wk9ZZ+b
index.phpでポストアクセス以外遮断かmod_rewriteじゃね?
896 :
nobodyさん:2008/05/23(金) 22:53:10 ID:nxQoYtgS
質問なんですが、フォームでプルダウン(valueは数値)を入力するような場合も
確認画面でhtmlspecialchars()や、登録画面でaddslashes()をかけたりしますか?
しょうもない質問ですみません、ちょっとアンケートというか、教えてください
プルダウンだろうが何だろうがCGIデータは信用できないので
バリデーションをやって数値である事を確認する
その後はエスケープはしないな
898 :
896:2008/05/23(金) 23:17:18 ID:nxQoYtgS
すみません、バリデーションというのは入力値チェックのことでしょうか?
(こんな言葉も知らないですみません、一応調べたんですが。。)
確認画面で数値(期待した型)でなかったら登録させない処理と考えてOKですか?
1つのWebサーバに複数のPHPアプリをインストールしてある場合、
もしそれらが同じ名前のセッション変数を使っていたら、
他のアプリからもその変数が見えてしまうのでしょうか?
901 :
896:2008/05/23(金) 23:43:43 ID:nxQoYtgS
phpかperlでchatシステム作ろうと思うんだけど
どっちのほうが使い勝手いいかな?
ご自分が慣れ親しんだ言語でどうぞ
クラスの配列の作り方って
$test = array( new Human, new Human);
ちゃんと動いたんだがこの方法であっている?
もっと適切な方法があったりする?
それはインスタンスの配列だ
うまく言ったとか書いたけどうまく行くはずないね
なんでうまくいかないの?
909 :
mx:2008/05/24(土) 18:06:52 ID:???
PHPで、プロキシ経由の場合だけ表示される関数について、教えてほしいのですが、
すべての串に共通してあらわれる関数はありますか?
あれば教えてください。
アクセスを拒否したいです。
ないっす
>>909 串制限やアクセスコントロールは PHP 側でせずに、
可能でしたら Apache, .httaccess 側でまとめて面倒見た方がよいと思います
>>912 例えば、携帯電話からのアクセスを PHP で振り分ける、
といった情報が検索するとすぐに見つかると思いますが、
PHP でなく .htaccess (Apache) を使っても同じ振り分けが出来ます
1. PHP で振り分ける方法
2. .htaccess で振り分ける方法
アクセス禁止を例えに、かなりおおざっぱに説明してみますと、
1. の場合は、Apache で HTTP Request を PHP (アプリケーション層)に渡し、
手渡された PHP 側で処理して返すというフローになります
2. ですと、HTTP Request は PHP に渡さず Apache で処理してしまって
返すフローになるため、1. に比べて PHP 処理分だけ処理が軽く済むわけです
「.htaccess」 「プロキシ」 「アクセス制限」 といったキーワードで検索すれば
該当する情報が見つかると思いますので参考までっにっに
914 :
913:2008/05/24(土) 19:36:18 ID:???
追記・補足
.htaccess を使ったアクセスコントロールの使用ですが、
PHP を置こうとしている場所によっては使えないかもしれません
契約しているレンタルサーバ、ISP のウェブサイトスペース、
ウェブサイトスペースのレンタル等、サービスの提供形態や内容で、
--------------------
A. PHP を置くサーバが Apache を使っていること
B. .htaccess の使用が許可されていること
--------------------
最低でも上記 2点はクリアしている必要があると思います
ありがとうございます。
感謝します。
<input type="text" name="gazou">
<input type="text" name="title">
<input type="text" name="toukousya">
<input type="text" name="comment">
・
・
・
以下いろいろ。
と言うフォームがあります。
これをphp側で受け取って、「画像ファイルでなければSJISにエンコードする」などの処理をする場合はどうしたら良いのでしょうか。
元々は
&ReadParse;
while (($key,$val) = each %in) {
if ($key ne "gazou") {&jcode'convert(*val, "sjis", "", "z");}
と言うCGIでした
&ReadParseと言うものを使った時点で、inの中に
gazou => 画像ファイル名 title=>タイトル名 …などが入っていて、それを$keyと$valに割り当てて処理していると言う事は判ったのですが。
extract($_POST)のように取得してしまうと、いきなり$gazou=画像ファイル名、$title=タイトル名、となってしまい、「この場合がこうだったら」と言うような処理ができない上に、どのタイミングでエンコードしたら良いのかがわかりません;
mb_convert_encoding(extract($_POST,EXTR_SKIP),"SJIS");
だと何かおかしいですし。&ReadParseだとGETとPOSTの両方のデータが入っているとの事ですが、extractだとどちらかしか(?)取得できないようなので。
わかりづらい説明ですみませんが、ご教授いただけると助かります。
$_POST["gazou"]
$_POST["title"]
$_POST["toukousya"]
と個別に取得すればよかろう
というか、それってファイル名だけ貰えばいいのか?
あと
>>1な
918 :
nobodyさん:2008/05/24(土) 23:28:15 ID:muO/VwYB
phpだと一つずつ全部取得しないと駄目なんですね。
phpのマニュアルも見てみたのですが、perlとどう比べて良いかが判らなかったもので…。
エンコードも一つずつやらなきゃ駄目って事になるのでしょうか。
gazouならこういう処理
titleならこういう処理…と分けたかったのです。
phpのバージョンは5です。OSはWindowsです。
PerlもPHPもよく分かってないのに、移植しようなんて無理があるだろw
>>918 はい?PHPでも
while (($key,$val) = each %in) {
すればいいんじゃないの?
何が問題なのかよく分からん。
>>918 foreach( $_POST as $key => $val )で取れるが
> gazouならこういう処理
> titleならこういう処理…と分けたかったのです。
関数に処理を書いて、1つずつ取って渡すほうがいいんじゃねえの?
まあこんなのは書き方がいくらでもあるんで
922 :
nobodyさん:2008/05/25(日) 00:43:48 ID:bR/AjWRw
フォームのデータ取得の流れで質問です
checkboxを受けとる場合に name="foo[]" とHTMLに記述し
$foo = $_POST["foo"] で配列を取得できますが、チェックが一切されていない状態では
isset( $foo ) がtrueとなります
$_POSTにfooが入っていないので当然なのですが、$_POSTにfooをnullで入れてくれるような
設定やオプションはあるのでしょうか?
$foo = $_POST["foo"] if($_POST["foo"]);
とかじゃいかんの?
いくらでも方法あると思うけど。
924 :
nobodyさん:2008/05/25(日) 00:57:39 ID:rVIlw47X
>>919 ですね、もうちょっと理解してから質問するようにします。
>>920 phpで、どうやったらinに全部入るかわからなかったもので・・・
>>921 ありがとうございます。それでやってみます。
答えて下さった方、ありがとうございました。
925 :
nobodyさん:2008/05/25(日) 01:25:55 ID:gx/qo6M9
「0」がNULLと同じ扱いになるのなんとかならないですか?
array_search(に限らないかもしれないけど)で、配列の一番目にヒットした場合に返される「0」がNULLと同じ扱いになるので実質機能しないんですが。
===
/⌒| -=・=‐, =・=- |
929 :
nobodyさん:2008/05/25(日) 02:31:58 ID:fA12GUeB
Windows上でNet_DNSを使おうとしたのですが、Net_DNS_ResolverのqueryのresponseがFALSEで返ってきます。
Windows上ではNet_DNSは利用できないのでしょうか?
情報がないため困っています。
// testing Net_dns
<?php
require_once('Net/DNS.php');
$resolver = new Net_DNS_Resolver();
$resolver->debug = TRUE;
$response = $resolver->query('example.com');
print_r($response);
if ($response) {
foreach ($response->answer as $rr) {
$rr->display();
}
}
?>
出力されたメッセージ
;; query(example.com, A, IN) ;; using extended PHP sockets
PEAR :: Package :: Net_DNS
http://pear.php.net/package/Net_DNS 環境:Windows XP SP2
XAMPP 1.6.6a
PHP 5.2.5 (cli) (built: Nov 8 2007 23:18:51)
Zend Engine v2.2.0
Apache/2.2.8
930 :
929:2008/05/25(日) 02:39:03 ID:fA12GUeB
ipconfig /allで調べたネームサーバーを指定したらDNSを引けました。
$resolver->nameservers[0] = '192.168.11.1';
しかし、これは明らかな環境依存です。
一般的な書き方をするにはどうしたらよいものでしょうか?
自分のマシンのDNS設定を取得できたらよいのですが・・・
931 :
929:2008/05/25(日) 03:34:39 ID:fA12GUeB
アドホックですが、ipconfig使っていけました。
もっとスマートな方法があればなあ・・・
function die_message($s)
{
print "$s\n";
exit;
}
define('IS_WINDOWS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'));
function getDNSServer()
{
@exec('ipconfig /all', $ipconfig);
print_a($ipconfig, 'label:nameserver');
foreach ($ipconfig as $line) {
if (preg_match('/\s*DNS Servers.+:\s+([\d\.]+)$/', $line, $nameservers)) {
$nameserver = $nameservers[1];
}
}
if (empty($nameserver)) {
die_message('Can not lookup your DNS server');
}
print_a($nameserver, 'label:nameserver');
return $nameserver;
}
932 :
929:2008/05/25(日) 03:35:00 ID:fA12GUeB
つづき
// testing Net_dns
require_once('Net/DNS.php');
$resolver = new Net_DNS_Resolver();
$resolver->debug = TRUE;
if (IS_WINDOWS) $resolver->nameservers[0] = getDNSServer();
$response = $resolver->query('example.com');
print_a($response, 'label:DNS response');
if ($response) {
foreach ($response->answer as $rr) {
$rr->display();
}
}
ここはあなたの日記帳ではないのですが
934 :
929:2008/05/25(日) 03:37:13 ID:fA12GUeB
935 :
929:2008/05/25(日) 03:37:57 ID:fA12GUeB
>>933 すいません。
どうしてもわからず質問してしまいました。
おさわがせしました。
夜分遅くご協力いただきありがとうございました。
>>929は、bind(Win用DNS鯖)使えば?
このスレで書くことじゃないけどさ。
どうでも良い事なんだけど
なんでdie('めっせーじ);
って書かないの?
938 :
nobodyさん:2008/05/25(日) 14:23:51 ID:BQPLi7Wv
if(!$var) と if($var=="") と if(empty($var)) ってどう違うんでしょうか?
使い分けの注意点など、どなたか簡単に教えてください お願いします
>>938 そのものずばりなページがあるじゃないかマニュアルに
940 :
831:2008/05/25(日) 15:07:35 ID:YGpuFVGv
>>926 レスに気づかなかった。
ありがとうございます!!
Pdoの名前パラメータって昔Where絡むと駄目でしたっけ?
Postとかから直にぶっこめるから楽だったんだけど、その辺で躓いて疑問符に鞍替え・・・・
という自分の記憶は勘違いだったんでしょうか。
日本語でおk
くだらない質問かもしれませんが、色々やってみてわからなかったので、質問させてください。
情報を新しいウィンドウに渡すのは、できるようになったのですが。(JavaScript併用にて)
そのウィンドウから値を戻す方法がわかりません。
<script>
function openWindow(form){
form.target = window.open("about:blank", "win" + new Date().getTime() ).name;
form.submit(); }
</script>
---------略------------
<form method="POST" action="値の送り先.php" ENCTYPE="MULTIPART/FORM-DATA">
<input type="text" name="sendtext">
<input type="button" value="送る" onClick="openWindow(this.form)">
</form>
---------略------------
上記のようなソースで新しいウィンドウを開く&情報渡しをしているのですが。
たとえばこの開かせる側のページに <input type="text" name="modori" value=""> という部分があったとして。
新しく開いた 値の送り先.php から、その部分に値を入れるにはどう書けば良いのでしょうか。
値の送り先.phpのフォームタグのAction部分に、既に開いているウィンドウを指定したいと思ったのですが
どうにもやり方がわからないもので・・・。
JavaScriptで、ウィンドウ名をきちんと指定してやるのでしょうか。
>>944 サンクス。
ちょっとJavascriptスレ行ってくる。
phpDocの可変長引数の表記ってありますか?
947 :
(><):2008/05/26(月) 07:36:02 ID:???
PHP 正規表現
こんにちは。いつもお世話になってます。
今回質問した件は、正規表現で次のように表したいのですが、どうしたらよいのでしょうか?
#DO#コメント#/DO#
ドコモ専用コメント
#AU#コメント#/DO#
AU専用コメント
などです。
【コメント】と書かれた部分は指定した機種しかあらわれないようにしたいのです。
実際にしようで使ってみると
①あなたの携帯は#AU#AU#/AU##DO#ドコモ#/DO#です。
このように記述したらAUからアクセスしたら
①あなたの携帯はAUです
ドコモからアクセスしたら
①あなたの携帯はドコモです。
このようなものを作りたいです。わかる方よろしくお願いいたします。
if文
ない
めんどくせぇからコピペ。
まずは正規表現とは何かググれw
require_once('Net/UserAgent/Mobile.php');
// インスタンス生成(ユーザーエージェント解析)
// 解析するユーザーエージェントを指定することも出来る
$agent = Net_UserAgent_Mobile::singleton();
switch( true )
{
case ($agent->isDoCoMo()): // DoCoMoかどうか
echo "DoCoMoだよ。";
if( $agent->isFOMA() )
echo "Fomaだよー";
break;
case ($agent->isVodafone()): // softbankかどうか
echo "softbankだよ。";
if( $agent->isType3GC() )
echo "3GCだよー";
break;
case ($agent->isEZweb()): // ezwebかどうか
echo "ezwebだよ。";
if( $agent->isWIN() )
echo "winだよー";
break;
default:
echo "たぶんパソコン。";
break;
}
振り分けごときでいちいちインスタンスを作るのが気に入らない
>>947 $template = 'あなたの携帯は#AU#AU#/AU##DO#ドコモ#/DO#です。';
function filter($m) { return $m[1] == 'DO' ? $m[2] : ''; }
echo preg_replace_callback('@#([A-Z]+)#(.*?)#/\\1#@', 'filter', $template);
後は filter() 内を好きなように変えな
955 :
訂正:2008/05/26(月) 13:49:38 ID:v5Q4661m
$text_keyword=trim($text_keyword," ");
これ↑を実行しても全角スペースがトリムされないので
これ↓を実行することにしたけど、全角スペースが"@"マークと勘違いされて表示されてしまう。
"@"マークを表示しようとしても全角スペースと間違えられて表示されたりします。
$item_keyword=ereg_replace('/^[ ]*(.*?)[ ]*$/s', '$1', $item_keyword);
いったいどうしたら、全角スペースをトリムすることができるでしょうか?
mb_関数
957 :
955:2008/05/26(月) 14:04:14 ID:v5Q4661m
いやマニュアル見ろよ
半角スペースも消えると思うんだけど、いいの?
文字コードの問題なんだから、普通に正規表現のuオプション使えばいいような気がするけど。
960 :
質問:2008/05/26(月) 16:52:11 ID:???
なんか4つ割りの表に数字が入ってて
それの統計値を求めるプログラミング教えて下さい。
Math.Absを使うみたい。
Bisual Vasic Stadio2003だった
intA=????
intB=????
これがC、D、N1、N2、M1、M2とあって
textbox9.text=????
意味不明
ASP.NETスレにでも行きやがれ
>>962 RSSはXMLで提供されているので、
XMLを自分で構文解析するか、SimpleXML関数のようなものを使って解析して情報を抜き出す。
タイトル・カテゴリもRSS側でどのタグに対応するか調べて抜き出せばいい。
画像のリンクは記事中の<img src="*">を正規表現なりで探せばいい。
あとは解析して抜き出した結果を一時的に配列にいれて、整形して表示する。
もしくはDBに入れてDBから取り出して表示する。
おおまかな流れをまとめると
・RSSの登録
・登録したRSSから誰かがアクセス毎あるいは一定時間でジョブを実行して情報をとってくる。
・とってきた情報を自分で加工して表示する。
flock($fp,LOCK_UN)
でロックの解除に失敗(返り値がFALSE)してしまったら、
fclose($fp)
でファイルを閉じる必要ってあるんでしょうか???
966 :
nobodyさん:2008/05/26(月) 21:57:33 ID:eOG28j+b
クッキーが有効か否かを調べるには、
setcookie("test","on",time()+3600);
if($_COOKIE["test"]=="on"){
echo "クッキーは有効です";
}
と言う方法を使っているのですが、別の方法(もっと簡単)なのはありますか?
>>966 それで問題ないよ。クッキーを発行してみてチェックする方法が正攻法。
968 :
966:2008/05/26(月) 22:46:31 ID:???
>>967 そうでしたか。では、このまま使います。
ありがとうございました。
969 :
nobodyさん:2008/05/27(火) 09:58:10 ID:fU1I8wAO
fopenの"w"と"w+"ってどう違うの?
両方読込時にファイル初期化してるよね?
973 :
nobodyさん:2008/05/27(火) 10:22:11 ID:fU1I8wAO
>>970-972 ありがとうございます。そのあたりは読んだのですが、
"w+"もオープンしたタイミングでファイルサイズがゼロになりますよね?
「"w+"は読み込み/書き出し用 」とありますがこの「読み込み」は
何を意味するのかがわからなくて。
974 :
nobodyさん:2008/05/27(火) 11:09:32 ID:sLUbAiXg
finfo_mimeを使ってwmvのmimeを取得しようとすると、
「application/octet-stream」になっちゃう…。
httpd.confにも/etc/mime.typesにもちゃんと
AddType AddType video/x-ms-wmv .wmv
って入れたのに…magicデータベースにmimeを追加する方法ってあるの?
教えてエロい人!
/**ソース***
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/file/magic");
echo 'WMV : '.finfo_file($finfo, "wmv.wmv");
finfo_close($finfo);
***ソース**/
975 :
nobodyさん:2008/05/27(火) 11:11:36 ID:o4ksNqHY
PCで携帯専用サイトにアクセスしたい場合
携帯で送信するヘッダーとまったく同じものを送信したのですがアクセスできませんでした
その場合はやはりIPで判別しているのでしょうか。
とはいってもエスパー問題だよな
>>973 $fp = fopen('hoge.txt','w');
fwrite($fp,'a');
rewind($fp);
var_dump(fread($fp,1)); // string(0) ""
$fp = fopen('hoge.txt','w+');
fwrite($fp,'a');
rewind($fp);
var_dump(fread($fp,1)); // string(1) "a"
977 :
969:2008/05/27(火) 11:21:17 ID:fU1I8wAO
>>976 ありがとうございます。
理解できました。
$flg = TRUE;
echo "フラグは".(($flg === TRUE)? "成立" : "不成立")."です。";
こんな使い方できたのか
常識
PHP5.3から
$flg="成立";
echo $flg?: "不成立";
みたいなのも可能らしい。
この場合三項演算子じゃないし、何て呼ぶんだろ。
$name = $_GET['name'] || "defaultName";
みたいな書き方はいつになったら出来るようになるんだ。
先週末、FAXの質問をしたものですが、
全然まともな回答がなくて、がっかりました。
全く役に立たずのスレです。もう来ない。
あ、そうだ。その件どうなった?
面倒そうだし、もうASPでいいんじゃない?
結局、WEB鯖からFAX送信させるために叩いてるコマンドの内容分かったの?
それ分からなかったら、誰も答えられるわけないし、
それさえ分かれば、PHPから実行させればいいだけ。
(串使ったり小細工する必要はあるかも知れないけど)
現段階で、PHPと全く関係ないがな。
ドライバ逆アセしてろカス
以前
>>947 の質問をさせていただきました。
独自タグで
#DO#コメント#/DO#
とすれば、コメントと言う文字がドコモだけ表示させ、
#AU#コメント#/AU#
としたら、AUだけが表示させられる独自タグを正規表現で表すならばどうすればよいでしょうか?
という質問にこのようなレスをもらいました。
954:nobodyさん :2008/05/26(月) 11:04:01 ID:??? [sage]
>>947 $template = 'あなたの携帯は#AU#AU#/AU##DO#ドコモ#/DO#です。';
function filter($m) { return $m[1] == 'DO' ? $m[2] : ''; }
echo preg_replace_callback('@#([A-Z]+)#(.*?)#/\\1#@', 'filter', $template);
後は filter() 内を好きなように変えな
=========
実際にこれをホストがドコモであれば表示させるようにしたいのですが、どうしたらよいのでしょうか?
よろしくお願いします。
少しも考えようとしない姿勢はある意味才能。
絶対一緒に仕事したくないな。