【PHP】下らねぇ質問はここに書き込みやがれ 44
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】
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)、起動&再起動あたり
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.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
7 :
nobodyさん:2007/04/12(木) 17:34:39 ID:W4YgAsOn
あのう、昨日からPHP+MySQLの独学を始めようと思って大型書店にいったらほとんど
PHP+MySQLの本がなくて、アマゾンや有隣堂で検索してみると大部分のこの手の本が絶版に
なってるんですが、もはや主流ではなくなったってことですか?
個人ユースならSQLiteでいいんじゃないの?
>>7 主流かどうかはしらないけど、
普通にPHP+MySQL使ってるよ。
本がないならWebで勉強するのも手だと思う。
資料たくさんあるしね。
>>7 別々の本で良いんじゃないの
あとはオンラインヘルプを使うのに抵抗がなくなったら
十分だよ
11 :
nobodyさん:2007/04/12(木) 18:26:29 ID:jGSSJUCn
$today = 2007-04-12 18:24:00 //現在の日時
$period = 5 //表示する期間
こういう条件だとして、現在の日時から終了日時を割り出したいと思っています。
(2007-04-17 18:24:00 こう表示したい)
そこで
echo date("$today",strtotime("+$period day"));
とかしてみましたが、思い通りになりません。どのように記述したら良いのでしょうか?
___
, 二¨-―-- 、`丶、
/_ ..-――-.. 、十ヽ\
//::.::,:.:.:./::/::.::.l::.::`ヽ、\ヽ
〃::/:::/:.:.:/::/::.:/::|::.:、:.::.::ヽ ハ `、
l::.:::l:: ,':l:::/::/::.:/::;小:::l::ト、::.:V l ヽ
{::.:::|:::l::|::l::/::.:/::/:/:_j⊥l::ヽ:!} \
. ハ::.::l:::|┼く:/::/ /'´ノ ヽ:∨::.:l | /
〈 l::.:|:::l::|∠、ノ , =≡V::.::/|/
ヽヘ::ヽ::V⌒゙ , "゙ / :::,' l〔
/rヘ::\ ゛゛ rーヘ 彡: / /:::Y⌒i 下らねぇ質問は
l冫/ }`ヽミヽ、ヽ、ノ, イ:`7十/::.::.:l | ここに書き込みやがれ
// /:::_rヘ_`二√ __〉/ レヘ::} | ですぅ!
// ,'/夕r==、∨---/、/ f==ミフ 厂ト、
. // 〃r7,イ| >トマ ̄〉 7ヽ厶ィ {ヽ 」__/ / 〉
, -‐'7/ /:.rク/ {ニ=彳/ ハ ∨, / ̄:{八_‐-┴勹
/ / /: :/7/ /,イ/ / /、/_ /: : : :|:厶 `^´ 人
ヽ冫< / {: : :Y〈__ //〃 ,' / 7ヽ ,仆、: : :|| : :`¨¨´: :冫、
\/ rヘ :`ヾ//__/> //V/ /」 ハ: : l|: :丶: : : ,': ヽヽ
14 :
虚弱PHP:2007/04/12(木) 19:48:07 ID:???
入門用のPHP+MySQL本がコレクター価格…。
これを買うのはもう愚行。
PHP本なら定番はマンモス本かなぁ?
赤マンモスが初心者向け。
>>11 $today = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("y"));
echo date("Y-m-d G:i:s",$today + ($period*24*60*60));
こんなん?
てきとーだから動かなくてもしらん
16 :
11:2007/04/12(木) 20:52:33 ID:???
>>15 いえ、$todayは保存されているデータです。
ですので、その書き方では無理かと思います。。
>>16 エラソウだなお前。質問に答えてもらってるのに。
一旦UNIXタイムに直せ。その上で日付に直すのが早いだろ。
18 :
11:2007/04/12(木) 20:57:53 ID:jGSSJUCn
>>17 すみません、ID晒します。
>>15さんの方法でいけました。自分が書いた
>>1を分解して
mktimeに当てはめたら、希望通りになりました。ありがとうございました。
前
>>974 [0-9]{1,2}|100
では?
それでいいと思う
>>12 イマドキ、特定のRDBMSに特化したようなPHP解説本は時代遅れ。
二昔ほど前は、Perl/CGIではRDBMSを使わない人が多かったせいで
DBサーバーの設置方法から解説しないと十分にPHPを使いこなせない場合が多く、
それでPHP+MySQLをまとめて解説するような「くだらない初心者向け本」が多かったが
そんな本には元々価値なんてほとんど無いんだよ。
今はPerl/CGIも含めてRDBMSを使うのが常識なので、あえて解説する必要は無くなり
役に立たない本が淘汰されただけ。
txtのみアップロードできるアップローダでファイル名と1行コメントを指定して検索機能を付けたいんですけど
データベースとの連携って必須だと思われますか?
phpのみでいけそうですか?
>>23 必須かどうかと問われたら全然必須じゃない。
元々、RDBMSが「必須」になる場合ってのはほとんど無く、
大抵は信頼性・高速性・機能性を求めて
「より良いものとして」RDBMSを使うことを選択するものだ。
それらの条件を捨て去れば、ほとんどのシステムはRDBMS無しでも組める。
素早い回答ありがとうございます。
phpの処理は軽いと聞くのでDB無しでも大丈夫そうかな?
でもアップローダ色々探してみたんですけど検索機能の付いたものって1つも見つからないんですが
やっぱり自分でつくってみるしかないのかなぁ。
>>25 PHPの処理が軽いってのはCGIと比べてのオーバーヘッドの有無の話で、
ファイルアクセスとかは全然速くないので今回の話とはまるで関係しない。
大丈夫かどうかは「要求するシステムの性能」による。
・アップロードされるファイルがどのくらいの数があるのか
・同時に何人くらいのユーザがアップロードや検索をかけてくるのか
・予想される最大アクセス時にどのくらいの速度で検索結果を出したいのか
によって選択すればいい。
これらが大したことないのであればDBは無くてもそれほど困らない。
ただ、DBを使えば複数同時アクセス時にログが壊される心配などが無くなるので
気楽にプログラミングができるというメリットもある。
>ただ、DBを使えば複数同時アクセス時にログが壊される心配などが無くなるので
>気楽にプログラミングができるというメリットもある。
ふ〜ん(笑)
しかしPHPは楽しいな
最近C#も楽しい。
ただJavaだけは好きになれない。
全く持って面白くない。なんでだろ?
29 :
nobodyさん:2007/04/13(金) 02:30:00 ID:5ULGyn4l
前スレ埋まったんで再質問
SHA1って非可逆なん?cryptよりもいいん?
>>27 あんで?書き込みのコンフリクトに関しては、DB側(例えばMySQL)で処理してくれるんちゃうん?
>>29 ハッシュってのは基本的に不可逆。
強度はSHA1>MD5>crypt(DES)
32 :
nobodyさん:2007/04/13(金) 10:19:02 ID:6sDwYx0u
ちょうどDBがらみの話題が出てるので便乗質問です。
DBを登録更新するものと、DBから取り出してきて表示する2つのスクリプトがあるのですが、
ちょうど更新中に、表示側のスクリプトにアクセスしたときってどうなるんですか?
DBの更新は100項目5秒ほどで終わると思うのですが、
更新したとこまでのデータがちゃんと表示されるのかな?
トランザクションのかけ方による
34 :
nobodyさん:2007/04/13(金) 10:29:42 ID:6sDwYx0u
>>33 ナルホド・・・
クエリーを上から1つずつ実行してるので、
更新したとこまでしか表示されなさそうですね。
どうまとめるか今のスキルじゃ検討がつきませんが、
そのうち全て1回で処理するように書き換えたいですね。
>>32 100項目の更新ってupdateを100回なのか?1回のupdateで100項目が更新されるのか?
1回のupdateで全部更新されるなら、それが終わるまではselectが止まる。
よって5秒後まで表示自体が行われない。
100項目がバラバラのupdate実行ならそこまでの内容が表示される。
>>34 全部更新されるまでselectできないようにするなら
update前にlock tableをかけとく手もあるよ。
37 :
nobodyさん:2007/04/13(金) 10:36:06 ID:6sDwYx0u
>>35 効率は悪いかもしれませんが100回updateです。
1回のupdateにかかる時間は、0.1秒〜1秒ほどで、
それを100回行っています。
>1回のupdateで全部更新されるなら、それが終わるまではselectが止まる。
>よって5秒後まで表示自体が行われない。
これは困りますね。最長1分ぐらいは止まるので。
38 :
nobodyさん:2007/04/13(金) 10:49:22 ID:6sDwYx0u
>>36 実はSQLは覚えたてなので、lock tableなるものは知りませんでした。
DBの排他制御ですか。
全部更新されるまでは1分以上とまる可能性があるのでやめようと思います。
>更新をできるだけ早く処理するために、WRITE ロックは、通常、READ ロックより優先されます。
>そのため、あるスレッドが READ ロックを取得し、別のスレッドが WRITE ロックを要求している場合、
>後続の READ ロック要求は、WRITE スレッドがロックを取得し、その後そのロックを解除するまで待機します。
ということなので、update文1つ1つにWRITEロックをし、表示スクリプトにREADロックをしようと思います。
なんかスレ違いすみませんでした・・・
39 :
虚弱PHP:2007/04/13(金) 10:56:20 ID:???
>>38 いや、その使い方なら明示的にロックする必要がないと思うけど。
ってか、update遅すぎないですか?
>>39 必要ないですか?ならばしないことにします。
書き方が悪かったです。
update処理自体はすぐ終わるのですが、
update内容を取得するプログラムが、
サーバの応答時間によって変わるので、
(サーバダウン時の対策でtimeoutを1秒に設定しているので最長1秒)
それで処理が遅れるっていう話です。
DBとは無関係でしたね。すみませんorz
>>40 なら先にデータを全部取得してから一気にupdateかければ?
普通にupdateしてる部分をBEGIN〜COMMITで
1トランザクションにすればいいだけじゃないか?
それで全部updateする前かした後かどちらかになるっしょ
selectが止まることはない
43 :
nobodyさん:2007/04/13(金) 11:36:44 ID:6sDwYx0u
さっきage忘れてました・・・
>>41 更新感覚が3分と短いので、取得に1分かかっては4分ということになってしまうので、
順番に登録という設計にしたのですが、やはりこっちのほうがいいですかね。
>>42 これがトランザクションの開始ですかー
勉強になります。(PHPスレで何勉強してるんだorz)
timeout感覚を0.1秒(100ミリ秒)にして、(これなら最長10秒ほどに)
>>41さんの設計にして、BEGIN〜COMMITでupdateしてみたいと思います。
スレ違いに付き合っていただいて感謝です。
じゃ2分ごとに処理を実行させればいいじゃん?
どういう更新しようとしてるか分からないから何とも言えないけど、
データ取得とSQL発行は普通は分けるね。
まとめて取得+トランザクションやればまず確実じゃね。
45 :
nobodyさん:2007/04/13(金) 11:52:19 ID:6sDwYx0u
>>44 >じゃ2分ごとに処理を実行させればいいじゃん?
3分ほぼちょうどに拘りたくて。
ただよくよく考えると、後ろのほうのデータがどっちみちずれるので、
"だいたい"3分でいいですよね。ちょっと拘りすぎてました。
>データ取得とSQL発行は普通は分けるね。
>まとめて取得+トランザクションやればまず確実じゃね。
参考になります。一般的にこうならやはり分けることにします。
これ以上はDBスレっぽくなってしまうので、これで引きたいと思います。
皆さんお答えくださってどうもありがとうございました。
今日のランチはカレーかとんかつでガッツリ食べようかと思うんですが、
どちらがいいでしょうか?
カツカレーでいいんじゃね?
>>48 その発想はなかった カツカレー行ってくる
50 :
nobodyさん:2007/04/13(金) 14:38:34 ID:pJrPoZVN
前スレで実況配信が流れているかとヴかweb上でチェックする方法について聞きましたが
fsockopen ($addr, $port, $errno, $errstr, $timeout);
で配信している時の確認はいいのですが、配信してない時には
>>環境によってはUNIXドメインまたはオプションの接続タイムアウトは利用 できません。
というわけで永遠に探しに行って固まります。
なにかfalse時の良い処理はないでしょうか?
>>50 子プロセスを起動して一定時間たったら親にシグナルとか?
シグナルトラップもブロックされるかな。
setcookieしてからリダイレクトヘッダを吐くと、
ちゃんとクッキーを食べさせてからリダイレクトされますが、
これはブラウザの標準的な動作ですか?
ブラウザによって、このやり方では駄目ということはないでしょうか?
トリッキーなやり方の気がして
動かない環境があるか気になってます。
PHPの基礎くらいはわかったのですが、例えばブログシステムを作るとして関数をひいただけでは初心者には難しいです。どんな工程が必要でそのためには何の関数を使うとかが知りたいです。参考になるURLなど教えてください。phpのマニュアルは勘弁してください(._.)
いきなり難しいことやろうとしても無理。
マニュアルを見ながら、数行の簡単な処理をこなしていけば、
自然とできるようになるもんだよ。
>どんな工程が必要でそのためには何の関数を使うとかが知りたいです
それは作る人によって工程は異なるし、使う関数も異なる。
実装する機能によって異なってくるから決まったものにはならない。
プログラムの面白いところは、1パターンではなく、
何パターンのやり方でも、結果として同じものが作れるという所。
空のString ""を返してもいい箇所なのですが、
何も返さないというときに返り値にnullを指定してもいいんですよね?
結果はどっちとも同じになるのですが、意味あいが違うんだと思います。
nullっていまいちよくわからない・・・
条件判断で自分のわかりやすいおのぞみの処理を行えば良いじゃん
>>54 それは承知です。しかし、覚え方のタイプの違いだと思うのですが。
確かに理系の頭ではないです。
>>55 では、参考になるコードが書かれているURLなどありますでしょうか?
よろしければ教えてください。
ゆとり世代か?
公開されてるソースが腐るほどあるだろ
>>56 むしろreturnを書かなくていい。値を返さないってことでnullになるから。
もし条件によって値を返さない時があるなら、
return;だけで値は書かなくていい。これも同じくnullになる。
空の文字列は普通に空の文字列、nullは値がないって事。
たとえばisset()でfalseになるとかね。
しかしID出さないの増えたね。
何か目前の課題があるならそれを、なければ自分の作りたいものを何か決めて、
現在の実力でできる範囲でいいからそれを少しずつ作っていく。
その過程で分からないことが出てくるからそれを随時調べたり、
調べていく過程で興味を持った情報を深く調べてみたりしてれば、自然にレベルアップしていくよ。
>>56 おれはソースの可読性をとってreturnでtrueもfalseも書いてる
作り方が分からないならまだそれを作る段階にでないという事。
作り出すため何が必要か情報収集して、実際に色々作ってくしかないわな。
ある程度やったら作り始めるのが一番早いだろうし。
>>63 すごいよくわかる。
やりたてのころはいきなり掲示板とかメールフォームをつくりたくて教本とか
webからコードぱくってたけどけど、
勉強していくうちに知識をためてくと自分らしい組み立てができるようになった
どうでもいいはなしだけどPHPのはじめの一歩はHello Worldでもなくてphpinfoだと思う。
便乗するけどシンプルで読みやすい定番て無いの 初心者向けの
前質問したらどれでも好きなの嫁って言われて困ってphpshotの掲示板読もうとしたけどよく読めなくて
今はとりあえずレッツphpの掲示板読んでる
作りたいのは掲示板じゃないんだけど掲示板の動作が参考になるかなと思って
こうしたらもっと効率よく出来る ってより こういう場合は定番としてこういう処理する ってのが知りたい
公開されてるものが腐るほどあるのはわかる でもどれ見ていいのかよくわかんないんだよ
マニュアルの関数の載ってるページみて使い方覚えろ。
まずは配列関数のarrayから。その次にempty。その次に・・・
と順番にこなしていけ
それでおぼえる
>>66 まさにそれです。
技術者は先生に向かないな。
>>66 ひとつ、ひとつ作りこんでいけばいいだけだよ。
まずはフォームに入力したデータをcsvファイルに書き込む、
次にそのcsvファイルをHTMLで一覧表示する、
次に10件ずつデータを表示して「次のページ」のリンクを表示させる。。。
という感じで。
まず何を作りたいか設計して、順番に作っていくのが基本だから、
その作業の中で、そこはどう処理しているのか参考になりそうなスクリプトを
見ていけば理解は早いかと。というより初心者向けの本を何冊か手元において
おけば、必ず分かりやすい解説がどこかの本にあるとおもう。
あとはばかばかしいかもしれないけど、参考にしたいスクリプトをそのまま
模写、つまり打ち直す。厳しいけどそれが習得の基本らしいよ。
>>58 SNSを作る程度のプログラミングなら理系である必要は全く無い
PHPでプログラム書く奴に過度の期待してもだめだと思うぞ...
プログラムセンスある奴にはウケが悪い言語だからw
>>71 それは他の言語でも言ってるやついないかw
PerlでもPythonでもさw
仕事で他人のを読まないといけない場合や、部分的に参考にするなら話も変わってくるが、
他人の書いたソースを一から読み進めるのってよっぽど読みやすい書き方してない限りはただの苦行だぞ
phpspotは知らんけどレッツPHPのスクリプトって古すぎじゃないか・・・?
他のスクリプトを読むのはいいけどその背景となってる考えを理解しないと最悪な勉強法だぞ。
掲示板作るために何をすればいいかさっぱり分からないうちは、ソースを読むことではなくもっと基礎を学ぶ時期だと思うが。
ちなみに定番を知りたいならマニュアルが最高にお勧め。
最初なんてなんでもいいよ
適当にソース拾ってきてごちゃごちゃいじってりゃ
嫌でもわかるようになるだろ
悩む暇があったら読め書けそして動かせ
>>66 >こういう場合は定番としてこういう処理する
具体的にどの場合か、ここで質問しちゃうほうがいいんじゃないの?
5通りぐらい方法が出てきたら笑うけどw
定番がどうとか、効率がどうとか最初のうちから気にする必要無い
ちゃんとローカルなテスト環境作って、とりあえず動かすことだけ考えて前に進みまくれ
あまりにもおかしい書き方はそのうち気付く
phpspotやレッツPHPに載ってるスクリプトのソースなんてゴミだよ
むしろ変な癖つくから絶対参考にしないほうがいい気がする
一通りのパターンだけ覚えて効率よく覚えていこうとするから遠回りになることを初心者は気づかない
トライ&エラーに勝るものなし
理論さえ学べば実現方法なんていくらでもあるというのにね。
定番とか気にせずにまず作れというのは同意。
>>68 手取り足取り教えてもらっても、全く自分のためにならない。
人に聞いてしか問題を解決出来ないならプログラムなんか出来ないよ。
ヒントや自分で探す術を覚えない限り、教えてもらって終わり。
そのレベルに達していないなら、まずは気に入ったテキストとマニュアルと関数逆引きを読んでみるべき。
WindowsVistaがほしい
↓
名前で検索する→ひっかかったサイトを自分で見に行って時間をつぶす
↓
【ほしい】を【買う】へ→【買う】から【ショッピング】に変換する
↓
でてきたサイトをチェック
↓
ヤフーショッピングでWindowsVistaが買えることがわかったが、
いろんなバージョンがあってどれを買えばいいのかわからない。
↓
検索キーワードを変えて振り出しにもどる
上級者だってはじめから何でもわかるわけでもなかったんだ。
何か壁にぶつかったら自分で検索して調べる能力があるだけでも効率があがるから
>>78 でも他の人がどう処理しているのかは気になる。
今、プログラム系の学校とかどうなんだろ。
チュートリアルをこなすだけなのかな?
自分のスクリプトを評価してくれる人はちょっと欲しい。
プログラムの評価なんてバカげてます
>>73 トレースって意外と大事よ
C言語検定の1級とかだるかった
はいはいそうだね
C言語検定が既に大事じゃない
>>84とか
>>86がプログラミング楽しいとか思ったことあるのかが気になるな
プログラミングヲタになれないと続かないし伸びないよ
90 :
虚弱PHP:2007/04/13(金) 20:21:18 ID:???
PHP Webアプリの参考ソースは、フレームワークじゃない?
俺はソース読んだことないけどw
定番とかは確かに知りたくなるもんだけど、
その前にスパゲッティソース作ってにっちもさっちもいかなくなる経験はした方がいいと思う。
結論:楽してプログラムが身に付くと思うな
まー自分にあったやり方でできる範囲でやりゃいいよ
>>90 てか、今まさにその状況だw
すぱげっちーすぎてヤバイことになりだしてる
94 :
66:2007/04/13(金) 21:23:47 ID:???
みんなありがと 全レスしないけれど参考にする
自分なりにどんどん書いて動いた。
動かないときは手直ししていけばそれでよかったんだけど逆に動いてるときに
これでいいのかな?何かまずい処理してなかったかな?
って気になって他人の定番のソース見るのがいいかと思ったんです
定番と比べて抜けてる処理があれば自分の見落としがわかるかなあと。
自分で気付くようになるまで放置で大丈夫なんですね。ありがと
いやダメだけどw
まぁ遊びならいいんか
見せるのはただ他人の意見に耳を傾ければそれでいいけれど、
早く読むのはそれなりにコツみたいなものが必要だからヒマなときにでも磨いとくといいよ。
ctagsとかそういうたぐいの物の扱いに慣れとくとかね
あれだ、ペアプログラミングでもやってろってこった
>>98 新卒の娘とペアプログラミングあ;sjdlkふぁ;sljふぁ;うぃf!!!!!!
100 :
nobodyさん:2007/04/14(土) 04:02:34 ID:??? BE:1015106887-2BP(396)
このプログラムで$noline=file('comment.txt');から
以後の処理はロックかかってる事に
なってるんですかね?
ロック解除まで
$cwlog=fopen("comment.txt","a+");
flock($cwlog,LOCK_EX);
$noline=file('comment.txt');
$nocount=count($noline)-1;
$bno=explode("\t",$noline[$nocount]);
$no=$bno[0]+1;
$cwdata="$no\t$name\t$contents\t$time\t$delkey\n";
fputs($cwlog,$cwdata);//$wlogの最初の行に$wdataを追加
flock($cwlog,LOCK_UN); //ファイルロック解除
fclose($cwlog);//ファイルを閉じる
>>100 fclose前のロック解除は不要だしあまり推奨もされない。
バッファフラッシュ前にロックを解除しちゃあかんよ。
fcloseすればバッファをフラッシュした上でロックも自動解除してくれる。
flockでのロックは「他のプログラムも同じ方法でロック処理をしてくれている」
という前提で使うものだが、それが満たされているなら特に問題はないかと。
NFS環境とかでは正常動作しなくなったりするけどな。
>>89 WEB制作はプログラムのスキルだけじゃだめだからねえ。
PHP使えるWEBデザイナーも増えてきてるし、WEB制作の中の
ひとつの技術としてとらえるのが普通じゃねえかな。
オタプログラマーじゃなくてWEB制作オタなんだよね。
>>102 PHP使えるWEBデザイナーは センス無いからPHPを覚えるわけだが・・・。
104 :
nobodyさん:2007/04/14(土) 09:49:01 ID:NyirOBTJ
105 :
nobodyさん:2007/04/14(土) 09:53:14 ID:6mTTKqeL
他人の部屋を盗み見て喜んでいる変態どもの癖に
いっちょ前に
善人面こいて偉そうに他人を評価できると思っている
ずうずうしい滑稽な
糞団地住民ども死ね。
106 :
nobodyさん:2007/04/14(土) 12:15:24 ID:Okv6CUFW
スレタイ通り下らない質問を二つほどさせてくれ。
1.クラスや関数・変数などのネーミングはPascal Camel どちらが推奨、というか基準みたいなのある?
2.if とか foraech とか(自作問わず)関数とかで使う半角スペースってなんか基準ある?
if($i=0) //スペース全くなし
if ( $i = 0 ) // ()の前にも、()内の前後にもスペースあり
我ながらくだらね〜質問かと思うけど、プログラマーさんなら結構いいたいことがあるかな〜と期待してw
>>106 PEARとかZFのコーディング規約を見ればいい
その質問の答えも全部書いてある
>>106 PEARとかZFのコーディング規約を見ればいい
その質問の答えも全部書いてある
>>103 逆だ。
技術を次々と習得できる人間はだいたい優秀なんだよ。
デザインセンスのないやつはPHPを覚えるセンスもやっぱりない。
最近は才能格差が激しいね。
PHPとは
下等生物に相応しい下等言語。
HTMLに毛が生えた程度のレベルであり中学生でもマスターできる。
むしろPHPを覚えることは恥である。
このような恥ずかしい言語をマスターしていい気になってるやつは
(ry
>>109 だめなやつはなにをやっても…
>>110 中学生でも使える言語をマスターしてないお前は
世間の笑いものだな…
こういうことを仕事にする場合は少しでも関係のある事柄は積極的に勉強する方がいいね
専任のWebデザイナーやネットワーク技術者が居てもね
プログラミングヲタでもWeb製作ヲタでもいいけど、ヲタがヲタ知識を増やす要領で勉強する方が楽しいし伸びるよって話
>>110みたいなタイプのヲタではダメだけどねw
113 :
nobodyさん:2007/04/14(土) 13:33:56 ID:xk0Q7Wzm
114 :
106:2007/04/14(土) 16:08:13 ID:???
流れをぶった切ってレスサンクス。
推奨する記述ってあったのね、勉強になった。
ところで foraech とか書いている俺はアホですか。
ふげ 命名規約ってちゃんとあるのね
勉強になりました
外部のサイトを取得したいのですが、下記のようにエラーがでます。
試しに別のサーバを利用してみたら、正常に取得できました。
allow_url_fopen は On になってます。
どこか設定の違いだと思うのですが、
他に設定が必要な所ってありますか?
詳しい人、教えてください。
Warning: file_get_contents(
http://www.example.com/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /****/test.php on line 4
$url = "
http://www.example.com/";
$file = file_get_contents($url);
print "$file";
118 :
nobodyさん:2007/04/15(日) 01:08:51 ID:ULXkJ/GO
外部のサイトを取得したいのですが、下記のようにエラーがでます。
試しに別のサーバを利用してみたら、正常に取得できました。
allow_url_fopen は On になってます。
どこか設定の違いだと思うのですが、
他に設定が必要な所ってありますか?
詳しい人、教えてください。
Warning: file_get_contents(
http://www.example.com/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /****/test.php on line 4
$url = "
http://www.example.com/";
$file = file_get_contents($url);
print "$file";
嫌われてるだろw
ま・まさかまた、example.comって落ちじゃw
違うならきちんとテストしたソースを全部張ってね。
行数沢山あるなら、小さく抜き出してテストしてから張ってね。
多分これを自分でやるだけで解決したりするだろうな。
124 :
118:2007/04/15(日) 01:45:33 ID:???
IDだせと言われたレスにたいしてコメントもせずに
IDだしてまた同じ内容で投稿してるのはDQN認定
ID出てないからニセモノだな
URLはgoogleとか絶対繋がるのでテストしてるんだよね?
とにかくきちんとテストしたソースとエラーをまんま出すのが早い。
fsock関数使えば?
129 :
118:2007/04/15(日) 02:02:33 ID:ULXkJ/GO
たんにそこからPHPでの接続が拒否されてるんじゃね。
っていうか403の意味調べた?
>>127とかPEARでなんとかなるんじゃない
単に
>>129が使ってる、そのスクリプトホスト(あるいはそのプロバイダの関連IP全体)
からのアクセスが禁止されてるだけじゃないの?
>○○じゃね?
>○○じゃない?
>○○じゃないの?
自信がないなら答えんな
わかるまでROMってろよ
>403の意味調べた?
は?それくらい知ってるっつーの
まともに答えられる人いねーの?
分かりやすい釣りだな
いつもの人ですね
バレてないとでも思ってるんですかね
136 :
nobodyさん:2007/04/15(日) 14:27:17 ID:Y+7wtgW4
>>101 お返事遅くなりました、
大変に参考になりました
本当にありがとうございました。
さて厨房が多くなる時間になりましたよ
Yahoo・Skype・GoogleTalkなどのボイス&ビデオチャットができるメッセンジャーのIDを登録表示させて目的ごとにマッチングさせるサイト作りたいんです。
(出会い系ではありません)
一行掲示板の改造がいいかと思うのですが、スクリプトやアドバイスありましたらお願いいたします。
特にありません
>>138 改造の前に、一行掲示板作ってみて仕組み勉強しろ
その通りですね
>>142 まぁ、すぐに作りたいなら改造でもいいと思う
俺も最初はすぐに高性能の掲示板を作りたくて、
できたところで穴だらけだったがな
というか、一行掲示板ぐらい自分でプロト作れんやつが
まともな改造とかできるわけないだろう。
一行掲示板なんて数十行でかけるんだからそのくらい勉強しろ。
わからなくなったらここで聞け。
最初から何もしないで聞くなバカ
146 :
nobodyさん:2007/04/15(日) 20:53:39 ID:R8yXAJQX
PHP4とPHP5を共存したいとおもいましてCGIで実行できる形でインストールしたいのですが、
モジュールとして実行することに対して、
パーミッションの設定と速度の面を除いて何か制限されることはあるのでしょうか?
147 :
nobodyさん:2007/04/15(日) 20:56:53 ID:u9QEq4CQ
WAPM環境で開発している人に質問です。
自分はウェブデザインの勉強をしていたのでDWを使っているのですが、
WebプログラマとしてはDWは不評のようで・・・
何のソフトを使っていますか?
>>145 ごもっともですが、いいアドバイスあればみっけもんでしょ。
それと、スレタイ。
PHPを片手間に嗜む学生ですがwordやpowerpointなどを良く使ってます
>目的ごとにマッチングさせるサイト
とあるが、つまり目的別でユーザーのIDを表示するってことかな?
だったら、データベース使わないと厳しいかも
>>147 それは実行環境のこと?
XAMPPで検索してごらん。便利よ。
ソフト板にもスレあるから。
あ、いや、エディターですね。
Ecripsなんかは有名ですね。
ちなみにMSがDWみたいなもん作ったらしい。
こちらもスレがある。
どこだったっけ。
探してくださいな。
>>150 いや、目的は最初からページごとに分けるんでDBは必要ないかと。
>>147 べつにdreamweaverでいいと思うよ。
正規表現、ツリー表示、コード保管しか使ってないけどSOHOとして仕事してるよ。
デバックはできないけど、・・あっても必要ないと感じてる。
会社に勤めてたころはEclipseでPHPコード書いてたけどべつに今は別にイラネ。
ようは使う人の効率があがれば何使ってもいいんじゃないの?
>>147 phpspot.net
で配布してるの使ってる。
PHP専用でプロジェクト用とPHPファイルに関連づけできるスタンドアローン版がある。
スタンドアローン版はDWなど他エディタ使ってる人もインストして関連づけるとファイルからそのままダブルクリックで開けるからいいよ。
作者の宣伝イラネ
※豆知識
Donut RAPTの作者もPHPエディタを使ってます。
はいはい
気になったんだが
DWいじると、HTMLでの作成ではPHPカラーつかないけど
PHPではつくよな?
PHPでHTMLのカラー+PHPのカラーがつくような設定ってないの?
>>147 BBSとかちょっとした物作るならTeraPadあれば十分すぎる
ある程度大きいもの作るなら俺はEclipseかな?
まぁ、デバッガ使わずにprintデバッグしてるけどねorz
Windowsだからあんまり使わないだろうけどLinuxならvi最強
>>160 色分けはxmlに設定が記されてるから直接いじればできるよ
163 :
nobodyさん:2007/04/15(日) 22:01:45 ID:y9EClMBI
http://www.dotup.org/uploda/www.dotup.org1535.txt 出力
「INSERT test INTO test1='test1', test2='test2', test3='test3', test4='test4'」
エラー
「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO test1='test1', test2='test2', test3='test3', test4='test4'' at line 1」
このように、SQL文の一部「test INTO」が消えてしまいます。
function内から別のfunctionを呼び出すとそうなる仕様なのでしょうか?
>>163 エラー文には「SQL構文にエラーがあるよ」って書いてるので
SQLのinsert構文をもう一度確認してみてはいかがですかね
166 :
387:2007/04/15(日) 22:12:18 ID:???
>>159 2ちゃんっておもしろいね、やっぱ。
ID表示されないことを利用して成りすます奴が居るとは。
167 :
nobodyさん:2007/04/15(日) 22:16:23 ID:y9EClMBI
>>165 ありがとうございます
基本的な構文ミスでした。
INTOをSETで解決しました。
INSERT INTOと
INSERT SETは
どちらを使ったほうがいいんでしょうか・・・
自分はSETのほうが使いやすいのですが
168 :
↑:2007/04/15(日) 22:16:39 ID:???
名前:387は
>>138の間違い
ややっこしい事になってしまった。
それなんてPHP?
>>156 実際居るから仕方ないんだけど、状況証拠のチリすらない段階で宣伝扱いするの、いくら2ちゃんでもやめないか?
裏付けや根拠すら全く無い段階でこれいうのって2ちゃんでいう池沼ってやつなんじゃ?
だいたい、作者とするにはタイミング良すぎないか?この実況板と化している当スレでは。
イイヨイイヨー
釣り針が太すぎてもダメです
以下、クマのAA禁止↓
174 :
nobodyさん:2007/04/15(日) 22:34:06 ID:y9EClMBI
再度質問お願いします。
includeで絶対パスで指定したとき、
URL file-access is disabled in the server configuration
とエラーが返ってきます。
ファイルはちゃんとあるのですが、何かphp.iniで設定が必要なのでしょうか?
(例えば、外部からのincludeを許可など・・・)
176 :
nobodyさん:2007/04/15(日) 22:37:03 ID:y9EClMBI
>>176 逆にどうして問題にならないと思ったのか聞かせてくれ
179 :
nobodyさん:2007/04/15(日) 22:44:10 ID:y9EClMBI
DOCUMENT_ROOTだと、外部からのアクセスによっては何か変わってしまうのかなと思ったので・・・
UTF-8とutf8って何か違いあるの?
手元のPHPのソースでgrepしたらこうなってた。
PHPAPI php_stream_wrapper
if (wrapper && wrapper->is_url && !PG(allow_url_fopen)) {
if (options & REPORT_ERRORS)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "URL file-access is disabled in the server configuration");
return NULL;
}
要は、渡しているパラメータ(wrapper)やPHPそのものの設定(allow_url_fopen)によるってこった。
当スレ、のろのろ実況板ってスレタイにいれるべきかと
くだらない質問です。
<form method=post action=hogehoge>
<input type=hidden name=hoge value=hoge>
<input type=submit value=go>
</form>
このpostで送信されるデータを連続投票したい場合どうしたらいいでしょうか?
知識の向上として知っておきたいのですが
一応これを実行してpostで送信すると投票先のスクリプトに移動して
再度戻ってまたgoをクリックしないと連続投票できませんよね?
これを1回実行するだけで100回POSTのデータを送信することは可能でしょうか?
186 :
184:2007/04/15(日) 23:17:46 ID:P44SZArS
100 回 for で回せば良いと思うよ^^
その程度のスキルで荒らしはよくないからやめろ。
どこに向けて打つのかしらないが対策されてるから無駄
189 :
184:2007/04/15(日) 23:21:24 ID:P44SZArS
POSTのデータをどうやってforでまわすの?
終了
楽しいなこのスレは
192 :
184:2007/04/15(日) 23:26:26 ID:P44SZArS
>>188 100%言われると思ったけど、知識として知ってるほうが対策もできるので知りたいだけだから。
100%言われると思ったから書いたはずなんだけどな…
まあそれはいいとして、どうやってforで回すのか知りたい。
わざわざID出したので、よろしく。
for ($i = 0; $i < 100; $i++) {
処理;
}
テラ親切www
現在のスコープ内の全ての変数を返すような関数はあるでしょうか
例外クラスの getTrace() のようなものです
スコープ内で処理に使用する変数を、$var[] とった配列にまとめておき、
print_r すれば良いだけかも知れませんが、あれば教えてください
196 :
184:2007/04/15(日) 23:38:44 ID:P44SZArS
その”処理”の部分を聞いてます
もう1度言いますよ?
その”処理”の部分を聞いてます
さあ説明よろしくwww
>>196 サーバーサイドは1回の送信につき1回のリクエストだから
100回送信すればいいと思う
ここまで言えばわかるだろ
198 :
184:2007/04/15(日) 23:47:09 ID:???
ははは。もういいよ。
わからないならわかりませんって言えw
このカスどもが
199 :
184:2007/04/15(日) 23:48:10 ID:???
>100 回 for で回せば良いと思うよ^^
↑
こいつテラワロスwww
184言語障害乙
>>184 相手側のスクリプトに依って変わる
その荒らしたいページはどこだよ?
>>184 丸投げスレと質問スレの違いを理解してから書き込んでね
知識の向上wwwwwwwwwwwwwwwwwwwwwwwwwwww
微笑ましいな。
こんな馬鹿まだいたのかw
208 :
虚弱PHP:2007/04/16(月) 12:26:49 ID:???
荒らし助長するんなよ虚弱PHP
210 :
虚弱PHP:2007/04/16(月) 12:52:01 ID:???
「教えるからもうくんな」の意
なんて無責任な
mysql_queryでmysqlにデータを入れる際ロックは必須なのでしょうか?
DB板で聞くのが正解かもしれませんが、お願いしますm(_ _)m
insertのことならいらない。
複数のテーブルに書きに行くのならtransactionをかけたほうがいいかもしれない。
classの所を読んでいるのですが、使用するにいたって利便性は何なんでしょう?
セキュリティ面とか、新しいプログラム使いまわせるとかではなく
単一のphp内において、もっと身近な部分で言うと…。
>>208 教えていいことと悪いことぐらいは考えてもらいたいですね
>>214 あるひとつの機能が必要とするデータと処理をまとめて管理できること
SSLが使えるレンタルサーバを2種類借りているのですが、
片方では、httpsプロトコルで、echo $_SERVER['HTTPS']; とやると、onと表示されて、
SSLが有効なのがわかるのですが、
もう片方は、ブラウザに鍵マークはつくものの何も返って来ません。
$_SERVER['HTTPS']の説明をみると、
「スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。 」
とあるので、正常に機能していないということでしょうか?
それともサーバ側の設定で、何も返さないようにしているとかそういうことでしょうか?
218 :
217:2007/04/16(月) 16:54:21 ID:N9diKUei
癖でsageてしまいました。すみません。
>>217 WEBサーバーがSSLをサポートしていると言う事と
PHPがSSLをサポートしていると言う事じゃ全く持って話が違う。
後者はWEBではサポートしているけどPHPじゃサポートしてないんでしょ
phpのsslはまだベータ版だしね
221 :
217:2007/04/16(月) 17:03:26 ID:N9diKUei
>>219 なるほど。そういうことですか。
ではサーバのPHPをかえてもらわないとダメになるわけですね。
MySQL+PHPを使ったログイン機能があるサイトを作ろうと思っているのですが、
そのログインページ(PHPでできた)でSSLをつかいたいと思ったのですが、
PHPでSSLをサポートしなくても、Webでサポートしていれば、
入力された情報はちゃんと暗号化してくれるのでしょうか?
>>221 当たり前だけどしてくれるよ
PHPでSSLを使うって事はプログラムで内部でhttpsなURLに対して
リクエストを送る事が可能になったりするってことだ。
223 :
nobodyさん:2007/04/16(月) 17:25:38 ID:dwzdMgji
できる。
時間帯ずらしてダウンロードをためしてみたらいいよ
225 :
217:2007/04/16(月) 17:28:07 ID:N9diKUei
>>222 ひとつ勉強になりました。これで一安心です。
早速プログラムを組みたいと思います。
どうもありがとうございました。
>>あるひとつの機能が必要とするデータと処理をまとめて管理できること
なんだかクラスを使った場合と使わない場合がうまく想像できないのです
グローバル変数使わなくてもすむだけでも、利便性があるよ。
あれ?全角ひらがなって1文字3byteもあるの?
Unicode
てっきり2byteかと思ってた
SJISやEUCは2byte、UTF8は3byteかな
日本語に関しては
%E3%81%9D%E3%81%86%E3%81%A0%E3%81%AA
%e3%81%ac%e3%82%8b%e3%81%bd
exec、又はsystem()でお聞きしたいのですが
別のサーバからFTPでアップされたjpg画像を
上書き保存されない様にmv、cpとfopenはパーミッションの問題でエラーになりました。
そこで、上記コマンド実行前にchmodを入れてみましたがやはりパーミッションの問題が…。
file_get_contentsはPHPのバージョンの問題で使えませんでした。
要は、常に上書き保存されていってしまう画像をリネームして保存しておきたいのですが
上記以外の手法でパーミッションに捕われないような手法はありますでしょうか?
237 :
236:2007/04/16(月) 19:57:10 ID:???
マニュアルみて解決しました。
238 :
236:2007/04/16(月) 20:29:36 ID:Fo/N831C
>>237 ちょw誰だよwww
解決してネーよw
sageってメル欄だとID出ないんね。
メル欄空でもsagaるんかな?
239 :
236:2007/04/16(月) 20:41:35 ID:???
>>238 解決したのに掘り起こすのやめていただけませんか?
>>236 それじゃ無理だろうね。FTPの方でパーミッションのread許可の対応するしかない。
FTPのユーザもあなたなら、簡単だけど。
>>236 ちゃんとIDださないから3つ分の答えを逃した骨折り損な奴
くだらない質問ですが、セフレってどこで探せますか?
243 :
nobodyさん:2007/04/16(月) 21:55:35 ID:ozAmxKpX
echo $_SERVER['SEFRE'];
MAX(count) AS MAX
東MAX最近みないね、
246 :
nobodyさん:2007/04/17(火) 01:52:56 ID:wSkpW1Us
キャリアを判別しようと思ったのですが
function mobile_agent(){
$agent = $_SERVER['HTTP_USER_AGENT'];
switch ($agent){
case preg_match("/DoCoMo/", $agent):
$agent = "docomo";
break;
case preg_match("/Vodafone/", $agent) || preg_match("/SoftBank/", $agent):
$agent = "softbank";
break;
case preg_match("/KDDI/", $agent):
$agent = "au";
break;
case preg_match("/DDIPOCKET/", $agent) || preg_match("/WILLCOM/", $agent):
$agent = "willcom";
break;
default:
$agent = FALSE;
}
return $agent;
}
auでアクセスすると返り値が「docomo」になります。
switch内でのpreg_matchはダメなのでしょうか?
$agentとpreg_match(〜):の返り値が等しければそこが実行されるよ
>>246 ゆるくていいならそのままのやり方でも止めはしないけど
IP見て振り分けるほうが確実だよ。
UAなんて信用できないんだからIPでチェックしたほうがいいよ
何がなんでもIPアドレスでチェックなんて、業者と犯罪者ぐらいなもんだろうなw
>>246 preg_matchの返り値って知ってる? 0か1がかえってくる。
ということは
case 0:
$agent = "docomo";
break;
とかやってくることになる。
switch使うんじゃなくてelseif使うのが良いと思われる。
253 :
虚弱PHP:2007/04/17(火) 09:27:13 ID:???
>>246 Net::UserAgent::Mobile
使うでいいんじゃないでしょうか。
254 :
nobodyさん:2007/04/17(火) 11:24:13 ID:cz59188T
携帯向けのサイト作成してますが、
ヒアドキュメント内でSIDを付加する方法はありますでしょうか?
255 :
254:2007/04/17(火) 11:28:14 ID:???
自己解決しました。
自己解決したのはいいが解決法も書いていってよね!ぷんぷん
257 :
nobodyさん:2007/04/17(火) 11:46:09 ID:cz59188T
>>255-256 ( ^ω^)お?
気を取り直して、
ヒアドキュメントでHTML部分を出力するのではなく、
<?php ?>と処理後に直接HTMLを書き、↓のように埋め込むか、
<a href="nextpage.php?<?php echo strip_tags(SID)?>">リンク</a>
もしくは、.htaccessが利用できるなら↓がスマートなんでしょうか。
php_flag session.use_trans_sid On
他にはどのような方法がありますでしょうか?御教示ありましたら宜しくお願いします。
258 :
nobodyさん:2007/04/17(火) 12:16:24 ID:wSkpW1Us
>>249 いや、位置情報取得のフォームを出力するんで、
携帯のブラウザによっても変化するからUAじゃないとダメっす
259 :
nobodyさん:2007/04/17(火) 12:33:54 ID:IrxiH2Fq
デザイン用のHTMLにPHPのコードを埋め込んで、WEBシステムとして
公開すると言うのが一般的だと思うのですが、
やっぱりデザインとPHPの分岐・分類って限界がありますよね?
Smartyとか使ってもやっぱり、デザイン用のHTMLにソースを埋め込むわけで。
かといってガチガチのプログラムにすると、後からデザイン面を
修正する時にしずらいし。(CSSを使っても限界あるし)
自分は各パーツをclass分けしてて、「登録内容一覧」とか表示する時は
classを使って必要情報を抽出し、whileで出力してます。
くだ質ですが、作りながら思ったので質問してみました。
260 :
虚弱PHP:2007/04/17(火) 13:05:48 ID:???
>>259 パーツ毎にきちんとテンプレートを分割するだけでも、
デザインとロジックはかなり分離できるよ。
> デザイン用のHTMLにソースを埋め込むわけで。
これは、人によってかなり差が出るところだね。
> デザイン用のHTMLにPHPのコードを埋め込んで
と似たような状態になるなら、
テンプレートエンジンを有効に使えてないと思う。
261 :
259:2007/04/17(火) 13:08:37 ID:???
>>260 テンプレートは分けてますよ。ただ、例えばSmartyの場合でも
<table>
{foreach item=list from=$list}
<tr>
<td>{$list.name}</td>
<td>{$list.date};</td>
{/foreach}
</tr>
</table>
みたいに専用のコードがテンプレートファイルにはいるので、
結局分離出来ていないような気がするんです。
Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
> Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
それはない
>>262 俺、PHP勉強するまでPerlだのPHPだのJavaだのの
区別付かなかったけどw
>>261 それを突き詰めちゃうと完全なHTMLにするしかなくて
完全にHTMLのままでそれをパースして
コードに置き換えてくれるテンプレートエンジンもあるにはあるけど
結局それだとどこがコードに置き換わるのか
一目ではわかりづらくてそれはそれでやりづらいと個人的には思うよ
最小限のループと出力に留めるのが実際の落としどころだと思う
265 :
259:2007/04/17(火) 13:29:42 ID:???
>>262 結構知らない人多いと思いますが・・。
>>264 そうですね。自分も基本的には、パーツ毎に分けてて
includeして読み込んでいるのですが、最近それすら良いのかどうか
よくわからなくなってきました。分離するという意味で。
ただ、おっしゃるようにやっぱり限界はありますよね。
どの程度分離するか考えながらコーティングします。
アドバイスありがとうございました。
PHPはHTMLへの埋めこみ言語として出発して、しかもまだその側面はかなり強いから、
PHPで書かれたテンプレートエンジンって屋上屋を架すみたいな印象はあるね。
267 :
nobodyさん:2007/04/17(火) 14:06:31 ID:ZbMg7dcR
268 :
nobodyさん:2007/04/17(火) 14:09:35 ID:ZbMg7dcR
269 :
虚弱PHP:2007/04/17(火) 14:14:07 ID:???
>>267 前スレにwebcronというやつが紹介されてたのを思い出した
PHP4では Domxml PHP5ではDomなんだけどソースを共通化するには
ラッパー関数でも作らないとダメ?
>>269 >こんな考え方
一見高尚な話しのようにみえるが、一言で言えばラッパでいいじゃん、ということだな。
274 :
nobodyさん:2007/04/17(火) 19:16:53 ID:teAF4U4F
教えて下さい
$temp = array('a','b','c');
echo $temp[2]; // OK
echo array('a','b','c')[2]; // NG
3行目のNGですが、1行で出力するにはどうすればいいでしょうか?
マニュアルも読めないんだ
277 :
nobodyさん:2007/04/17(火) 19:26:58 ID:iyno4+7x
>>274 $temp = array('a','b','c');
echo $temp[2];
を1行で、というか1文で書きたいってこと?
278 :
nobodyさん:2007/04/17(火) 19:34:59 ID:iyno4+7x
function array_pick($array, $key)
{
return $array[$key];
}
echo array_pick(array('a', 'b', 'c'), 2);
とかやるしかないかも。
279 :
虚弱PHP:2007/04/17(火) 19:37:25 ID:???
>>274 簡単に言うとPHPはオブジェクト指向言語ではないということですw
配列の定義と表示を同時にやりたいって要求が理解できん
281 :
nobodyさん:2007/04/17(火) 19:50:13 ID:6MazO8z/
最初の設定の段階で設定ファイルを変更してApacheを起動したところ
エラーが出て起動前に終了してしまいます。
OSはWindowsXPで、PHPはphp-5.2.1-Win32です。
apacheはC:\Apacheフォルダにインストールしました。
httpd.exe: Syntax error on line 115 of c:/Apache/conf/httpd.conf: Cannot load C:/php/php5apache2.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xa9\x82\xe8\x82\xdc\x82\xd9\x82\xf1\x81B
Note the errors of messages above, and press the <ESC> key to exit. 17...
httpd.confのline 115は↓の通りです。
LoadModule php5_module c:/php/php5apache.dll
LoadModule php5_module c:/php/php5apache2.dll
LoadModule php5_module c:/php/php5apache2_2.dll
LoadModule php5_module C:/php/php5apache2.dll
LoadModule php5_module "C:\php\php5apache2.dll"
それぞれどれか一行を入れ替えて試しました。
どれでも同様のエラーになってしまいます。
また、色々な解説サイト様に以下のような記述を足すように書かれていますが、
解凍した段階でAddModuleの行が一行もありません。
http://allabout.co.jp/internet/database/closeup/CU20040928A/set02.jpg AddModule mod_php5.c
この行はどこに書けばよいのでしょうか?
(現在は書いていません)
何か見当違いのことを書いていたら申し訳ありません。
ご教授お願い致します。
まずそのパスにちゃんとファイル置いてあんの?
283 :
281:2007/04/17(火) 20:14:00 ID:6MazO8z/
>>282 phpフォルダもC直下に置いてあって、中身も解凍したものをそのまま入れています。
phpフォルダを開くと直にdllファイルがあります。
半角の確認もしました。
アッパチのバージョンは?
285 :
281:2007/04/17(火) 20:23:42 ID:6MazO8z/
情報が足りず申し訳ありません。
apache_2.2.4-win32-x86-no_sslです。どちらも今日ダウンロードしました。
アッー!パチ
288 :
281:2007/04/17(火) 20:45:08 ID:6MazO8z/
ありがとうございます!
早速拝見し、↓の部分かと思ったのですが違う部分でしょうか?
Apache モジュールの使用
Apache 2.0 でモジュール版の PHP を使用するには、 以下の行を Apache 設定ファイル httpd.conf に追加してください。
例 6.6. Apache 2.0 でモジュール版の PHP を使用する場合の設定
# PHP 5 の場合
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
# php.ini の場所を設定
PHPIniDir "C:/php"
これを足してみたのですが、やはり同じエラーがでます。
それともそういう問題ではなくヴァージョンが合っていないということでしょうか??
289 :
nobodyさん:2007/04/17(火) 21:06:11 ID:teAF4U4F
>>289 そんな事も自分で調べられないような奴が大口叩くなよw
もう同じネタいいよ
PHPのソースを書き換えればおk
っていうか、今思ったんだけど、zendエンジソじゃなきゃダメってことはないよな
>>289 他はどうでもいいが最後の理由だけ教えてくれ
echo foo()()[3]()();
こういう低スキルほど大口叩くって本当だなw
オブジェ糞歯垢と関係ないヤンwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>>296 それはどうしても
echo array('a','b','c')[2];
と書かなければいけないものなのか?
確かPerlやJavascriptはarray(1,2,3)[0]
と言う書き方が通ったから、他でもやりたいって気持ちは分かるよ。
だからオブジェクト指向関係ないじゃん
explode( ',' , $str )[3];
てやりたい時はある
>>302 それはある。
出来ないから変数に突っ込んでやってるけどね。
method()->hoge();
が、でPHP5できるようになったから、
PHP6では
>>302ができるようになるはず!
そんなのより文法にクロージャを。create_functionみたいな間抜けなやつはいらん。
なんでここIDでないの?おしえてエロい人
307 :
nobodyさん:2007/04/18(水) 06:15:48 ID:2pczTFS7
urlを読み込んで、色々処理したいということで
いくつか関数を調べたのですが
どれも失敗しました。
他に何か方法は無いでしょうか?
phpのバージョンは4.2.3です。
$html=domxml_open_file($url);
同一行を指示した同じようなwarningが沢山でて使えませんでした。
$html=fopen($url,"r");
Noと言われる。
$html=implode("",file($url));
bad argument
$html=file_get_contents($url);
undefined function
>>307 ソースとエラーをきちんと晒せ。
最低限エラーはきちんと書かないと分からない。
309 :
307:2007/04/18(水) 06:48:07 ID:2pczTFS7
310 :
307:2007/04/18(水) 06:54:18 ID:???
$html=domxml_open_file($url);
は行数制限でそのままコピペできないので意味のありそうなとこを
クリップします。
Warning:
http://en.wikinews.org/wiki/33_dead_15_injured_in_Virginia_Tech_University_shootings:234: in c:\phpdev\www\ereg.php on line 19
Warning: error: in c:\phpdev\www\ereg.php on line 19
Warning: Entity 'nbsp' not defined in c:\phpdev\www\ereg.php on line 19
Warning: e='submit' name="go" class="searchButton" id="searchGoButton" value="Go" />&nbs in c:\phpdev\www\ereg.php on line 19
Warning: ^ in c:\phpdev\www\ereg.php on line 19
Warning: Entity 'reg' not defined in c:\phpdev\www\ereg.php on line 19
Warning: ons Attribution 2.5 License unless otherwise specified.
WikinewsR in c:\phpdev\www\ereg.php on line 19
Warning: Opening and ending tag mismatch: br and li in c:\phpdev\www\ereg.php on line 19
Warning: ource="
http://web.resource.org/cc/DerivativeWorks"/> -->c:\phpdev\www\ereg.php on line 19
Warning: Premature end of data in tag 0.064 secs. --> in c:\phpdev\www\ereg.php on line 19
このスレでも稀に見る極度のゆとり・・・
curlは?
ろくに見ないで答えて見たけど読んでみたらそれ以前の問題が多いなw
携帯だから細かくかけないけどとりあえずwはねえだろ
すいません。wは念のためやったのがそのまま残ってただけです。
rでやっても同じでした。
>>309 >>Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\ereg.php on line 21
まずもって、この意味もわからんやつが、domxml_open_fileなんぞという関数を使おうと思うな。
$html=fopen($url,"w");
print $text;
せめてfopenぐらいは勉強してから質問しる
>>315 それ見ただけで原因が分かるな
バージョンが違うだろって
<pre>
<?php
$url = "
http://www.google.com/";
$list = file($url);
foreach ($list as $val) {
echo htmlspecialchars($val);
}
?>
</pre>
スクリプトだけ書いて一切言葉しゃべらない人いるよね
まじキモイんですけど…
貴重なノウハウを教えてくれてるんだろ?
立場を弁えろ
おめーのほうがきもいんだよ
echo '
>>319 レス乞食乙。ほらほらうれしいでちゅか〜?';
あとはわからない関数は自分で引いて自分で考えろってことだろ。
それすら理解できないならPHPなんてやらないほうがいいよ。
319の発言に結構ショックを受けた。
何百の言葉よりも簡潔なコードがどれほど雄弁に語っているかがわからないその感性に。
324 :
307:2007/04/18(水) 16:08:19 ID:2pczTFS7
>>318 レスどうも。
fileは
wikinewsでは使えないみたいです。
結局fsockopenでやりました。
325 :
虚弱PHP:2007/04/18(水) 16:11:52 ID:???
>>307 PHPのバージョンが古すぎる…。
ひとまず、最新版を入れよう。そしてマニュアルを読もう。
>>318がキモいのは流れぶった切って しょーもないコード書いちゃってるところ
>>328 そういう態度だから上から見てるとか偉そうだとか言われるんですよ。
>>327 >>326はPHPについて興味津々で話題に入れて欲しくてたまらないけど、
コードは読めないしああいうことしか言えないんだから、
そっとしておいてあげようじゃないか。
>>329 お前、無償で役立つアドバイスをしてもらえることがどれ程有難いことか分かってないのか?
そんな甘ったれた考えだと社会に出てから苦労するぞ
(つーかどこにもそんなこと言われてねーし)
社会に出てから苦労するのは
>>331だと思ったw
ほんと上から見てるなw
>>331 社会人が平日のこんな時間にこんなスレに張り付いてるわけない。
社会人ぶったニート乙。
>>333 ニート乙
ここまでテンプレ。
では次の質問者の方どうぞ。
この時間にレスしてる=ニート
としか想像できないやつも滑稽だな。
そこまでして忠告に対して耳をふさぎたいのか。
もういいから引っ込んでろよニート。
まぁ社会人ならこの時間にレスしてる確率なんてかなり低いけどな。
夜勤とか夜の仕事とかいくらでも言い訳はあるが。
あと忠告とは言わない。ただの余計なお世話。
回答者にかみついてる方がよほど滑稽。
答える気ないならいちいちレスしなくていいからROMっててよ。
はいはい次次。
いいクマ専用しおり
_____________________________
∩___∩
| ノ ヽ
/ ● ● |
| ( _●_) ミ
彡、 |∪| 、`\
/ ヽノ \
~~~~~~~~~~~~~~~~~~~~~~~~
ここまであまさず読んだ
339 :
nobodyさん:2007/04/18(水) 17:13:21 ID:s4cVlRv3
phpMyEditを使って、DBのメンテ画面を作っているのですが、
編集画面でコンボボックスを使う方法がわかりません(><
>>337 もっと謙虚にならないとだめだぞ。
質問スレで回答者に対して敬意を払うのは当たり前。
「初歩から勉強すること」と言われただけで上から見てるとか偉そうだとかいうのは
勘違いもいいところ。一言で言えば「立場を弁えろ」。
初歩から勉強することの大事さが分かってないのかな。
基本を知らないで正解だけ教えてもらっても後々それ以上に苦労するもんだよ。
実際PHPの知識量では下なんだから仕方ないだろ。
上から見られた悔しさをばねに学べばいい。
というかそうしないと永遠に下のままだ。
本筋と関係ないところで個人攻撃して憂さ晴らしても何も良い方向には進まんよ。
マジレスしてみよう
>>337 社会人になればわかるが、平日に休むことは割りとある。
振り替え休日やシフト勤務、有給に体調不良、理由はいくらでもある。
加えて、平日の昼間にだって(本当は良くないが)2ちゃんに書き込みする暇なんざ
少なからずある。
まあ、社会人になればわかるさ。
>>340 自分の考えを他人に押し付けるのはよくない。
勉強の仕方なんて千差万別。
あと話がズレすぎ。
そもそも
>>326みたいなレスをするのが悪いんでしょ。
ここが何のスレかをもう一度考えたほうがいい。
>>318 確かに何も書いてないと一瞬見てただの質問者かと思った
その後のやり取りにワロッタw
>>341 社員でシフトって鯖管ぐらいじゃないの?
このスレ見てる大半がIT関連企業で働いてるっていう認識が間違ってるのか?
で それがどうPHPのくだ質なんだ?
ぶっちゃけ学生も多いんじゃないかな
そんな俺はまさに今仕事中な駄目社員ですけど…
347 :
341 :2007/04/18(水) 18:16:19 ID:???
>>344 んなこたあない。
保守対応とかで24時間待機とかの場合、プロジェクトメンバの中でシフト体制を組む。
後は客先の事情に合わせたりする場合もあるし、鯖管だけとは限らないよ。
でかいプロジェクトだと一ヶ月くらいは24時間待機になったりするね。
あと、なんか新規機能のリリースとかでも監視対応でシフトになったりするな。
で、
>このスレ見てる大半がIT関連企業で働いてるっていう認識
んなこたあなかろ。
mysqlの板がないのでここで質問してみたりする。。
LIKE%-%でなぜかない文字が検索される。
「草」と検索すると「石」もヒットする。
確認できてるのはこれだけなのだけど、なんでなのかな?
デスマーチにでもなれば時間の感覚なんて無くなりますよ
>>349 wwwwwwwwwwwwwwwwwwww
>350
どもです。そっちで聞いてきます。めんぼくないです。
>>349 前スレのだったか忘れたが、そのやり取りがないと効果半減じゃないか!
フォルダ内の複数の画像をリンクをクリックしてPHPに出力するスクリプトを教えてくだちい
ftpでフォルダにうpするだけで勝手に閲覧できるようにしたいんですがあとは↑だけなのにやり方がわかりませんぬ
>>356 書いてることがよくわからないので見当違いかもしれないが、
マニュアルのreaddirの例479じゃない?
例479の
echo "$file\n";
を、
echo "<a href=\"{$file}\">{$file}</a><br>\n";
とかにすればいいんじゃないかと。
>>356 フォルダに画像をアップして、そのフォルダ内にindex.htmlやindex.htmをおかなければOK
>>359 それはApacheのindexesがオンになってたらの話だろ。
セキュリティ上普通はオフにしてある。
htaccessが使用可能ならindexesをオンにできるが、
そうなるとスレ違いだ。
おまいら様がクラス作るときは
Javaみたいに1クラス1ファイルで書いてらっしゃる?
そもそもクラスなんて書かねぇ、てのは無しで
関連するクラスは1ファイルにまとめたりするよ。
何らかのオブジェクトとそのコレクションを収めるためのクラスとかね。
基本は1クラス1ファイルだな。
数クラスで完結するような小規模スクリプトは一ファイルですましちゃうけど。
364 :
nobodyさん:2007/04/19(木) 10:01:37 ID:hqZ1gGO6
copy関数って256倍と超えるパス指定したらだめなの?
<?php include('header.php'); ?>
<p>なんたらかんたら</p>
<?php include('footer.php'); ?>
とするより、1つのPHPファイルにまとめて
<?php include('chinko.php'); printHeader(); ?>
<p>なんたらかんたら</p>
<?php printFooter(); ?>
ってやるほうが賢い選択でしょうか?
教えてエロイ人
いや頭悪い選択
そもそもPHP使う時点で頭悪(ry
369 :
nobodyさん:2007/04/19(木) 11:16:39 ID:hqZ1gGO6
>>365 パス間違ってないのに関数がFALSE返してコピーされないのよ。
ちなみにwindows版。
370 :
虚弱PHP:2007/04/19(木) 11:19:49 ID:???
パスの255バイト制限ってWindowsの仕様じゃなかったっけ?
copy じゃないけど mkdir()で試してみたら
245バイトまでOKだったな。
多分windowsの制限じゃないの?
372 :
nobodyさん:2007/04/19(木) 12:23:32 ID:suDQqd22
MySQLのDBに、データをInsertした際に、auto_increment させたフィールドの値を確認する方法ってありますか?
373 :
366:2007/04/19(木) 12:24:23 ID:???
>>372 phpMyAdminとかでみればいいんでねーの?
掲示板でユーザーが投稿→投稿ないようをそのままPHPファイルのindex.phpに「書き込んで」表示
の場合、<?php 〜〜〜 ?>をエスケープするだけでいい?
(しないとPHPコードが実行されるような状態)
ちなみにタグOKなのでhtmlspecialcharsはしません
>>372 つlast_insert_id
PHP固有の話ではないのでスレ違いだな。
さらに話を続けたければMySQLのスレに行くべし
>>375 index.phpが投稿内容を表示するページってことか?
んで投稿内容にPHP開始タグがあるとPHPが実行されるからエスケープするって?
379 :
nobodyさん:2007/04/19(木) 13:35:51 ID:WBNGWxYV
共通する箇所(データベースから指定データを読み込みなど)は、
class化して、用途に応じてそのclassを実行しているのですが、
複数ファイル内に同じソースの結構があって、このclass処理の部分を
まとめるか否かで悩んでいます。
まとめる=関数にすると言ったイメージがあるのですが、
そもそも関数をまとめているのがclassなわけで、なんか変だと思います。
ただ、共通するclassの部分は別ファイルにして、requireするだけで
良いのかな?とも思いますが、それで良いのかどうかも迷います。
文章では伝わりにくいかもしれませんが、アドバイスいただければ助かります。
修正
複数ファイル内に同じソースの結構があって ↓
複数ファイル内に同じソースの箇所が結構あって
同じようなコードを何度も書く羽目になったらそれはどこか
間違えている。まーでもPHPは貧弱だから止むを得ないことも...
382 :
375:2007/04/19(木) 14:08:54 ID:???
>>376 >>378 投稿された文字列をログに入れてecho で表示するんじゃなくて、
PHPファイルに直接書き出すので、
<?php "ああああああああ"?>と入力されると
あああああああが表示されてしまう状態
この場合、PHPがコードとして評価されるのを防げば、
PHP的なセキュリティはOKですか?
同じコードを何度も書くならモジュール化して使いまわせばいいんじゃない?
それを実装するための手段として関数だろうがクラスだろうが何でも構わない。
自分にとって便利な方法使えばいいと思うよ。
385 :
375:2007/04/19(木) 14:29:40 ID:???
>>384 過去ログ機能をそなえた実にすばらしいアイデアなんですよ
書き込むファイルは日付けを元にしたファイル名なので、
日付けが変わるとファイルが切り替わって過去ログになる
いちいち作り直さなくてもOK
20070419.php
<!--ヘッダ部分-->
わたしの掲示板です
あなたは<?php /*カウンタのコード*/ ?>番目のPHP大好きっ子です!
<!--ここから投稿内容 追記モードで書き込む-->
〜〜〜
〜〜〜
〜〜〜
>>385 ごめん、ID出ていないから別人の成りすましかもしれないが
何を言いたいのか全然分からん
>>386 >>375はindex.phpを書き換えるって書いてるから別人だろう
htmlを書き換えるなら分かるがなぜphpを書き換える必要があるのか理解に苦しむが
388 :
虚弱PHP:2007/04/19(木) 15:14:29 ID:???
SSIみたいなことやりたいんじゃないかな。
まあ、「タグOKなので」の時点で多分XSSし放題。
389 :
364:2007/04/19(木) 15:16:34 ID:hqZ1gGO6
>>370-371 どうしようもないので、こんな関数作ってみたら成功。
function excopy($src, $dst)
{
exec("copy \"{$src}\" \"{$dst}\" 2>&1", $ary, $ret);
return ($ret == 0) ? TRUE : FALSE;
}
性能には全く変わらず。
phpの内部でパスのバッファが256バイトぐらいの固定長なのかねぇ?
390 :
虚弱PHP:2007/04/19(木) 15:17:30 ID:???
>>379 > まとめる=関数にすると言ったイメージがあるのですが、
> そもそも関数をまとめているのがclassなわけで、なんか変だと思います。
ここら辺の認識がちょっと違うような気がする。
classをclassとして有効に使うというより、
単なるネームスペースみたいなものとして使ってるんじゃないかな。
391 :
nobodyさん:2007/04/19(木) 15:18:19 ID:RzPJY5VS
失礼します。質問させていただきます。
ユーザー登録で”半角英数字のみ”という判定をしたいのですが、どのように判定すればいいでしょうか?
よろしくお願いします。
>>391 正規表現で対応可能。
専用のスレがあるから、次からはそっちで。
if(preg_match("/[^a-zA-Z0-9]/",$str)){
半角英数字以外があった時の処理
}
393 :
391:2007/04/19(木) 15:22:08 ID:RzPJY5VS
>>392 ありがとうございました。さっそく試してみます。
394 :
虚弱PHP:2007/04/19(木) 15:32:45 ID:???
>>389 よくわからないので、簡単に調べてみた。
Windowsではフルパスが
MAX_PATH 260
で定義されてて、
PHPのソースでもそのまま使ってるみたい(たぶん /main/php.h)。
execだとOSがショートファイル名使ってるのかもしれないね。
395 :
虚弱PHP:2007/04/19(木) 15:36:50 ID:???
>>391 ctype_alnum()が推奨だったかもしれない。
396 :
379:2007/04/19(木) 16:07:02 ID:???
>>381,383
例えば、「データベースに登録している特定の情報を出力するclass(又は関数)」
があったとして、それをlist.phpでもsearch.phpでも使用している。
という事に関してこれで良いのか否か悩む時があります。
list.phpでもsearch.phpでも同じコードを書くわけですから、classの意味があるのかと。
自分にとってはclass化(モジュール化)してだいぶ効率が上がったのですが、
更に効率が上がる方法はないかと思い、質問した次第です。
>>390 その判断が正直わかりません。他者のコード(例えばXOOPSやphpbbなど)
を見ても、同じコードが出てくる箇所は結構あるし。
周りに聞ける人間がいないので、自分のコード・組み立て方は正しいのか
どうか迷う時があります。WEBシステムとして動けば良いのでしょうが。。
>>396 状況がよくわからないけど、ほとんど同じ振る舞いをするバリエーションであれば、
共通部分を括りだして基底クラスを作って、改めて既存のクラスをそこから派生させてやればいいのでは?
398 :
虚弱PHP:2007/04/19(木) 16:52:24 ID:???
>>396 もうちっと具体的にならないと、
どう設計したらいいかのアイデアは出てこないと思う。
例えば、こういった感じのふたつの処理があるとする。
1) update.php(更新→リスト表示)
2) list.php(リスト表示)
この場合、リスト表示は同じ処理になっちゃう。
でも同じ処理なんだから共通化したいよね。
そしたら処理を細分化して、
1. function update()
2. function list()
1)' 1を呼ぶ → 2を呼ぶ
2)' 2を呼ぶ
とすることで解決。
ここら辺はできてるんじゃないかな?
MVCフレームワークだと1)'や2)'がControllerだね。
1や2がModel。
1)'' 1を呼ぶ → 2を呼ぶ → 表示処理
2)'' 2を呼ぶ → 表示処理
とすると一応MVC。
で、
>>396 は何に悩んでいるかだ。
ここでupdate.phpとlist.phpに同じクラス書いてるとエスパー
401 :
虚弱PHP:2007/04/19(木) 17:06:06 ID:???
1を呼ぶ、2を呼ぶとかをもうちょっと整理すると、
Mojaviで言うActionChainになると思う。
で、ActionChainみたいなのはContollerより上位の考え方だし、
Controllerよりもっと基本レベルで、
(例えば)入力の標準的なValidatorを通したいとか、
権限によって処理を実行するかしないかみたいな、
振り分けをしたいと思うようになる。
そうしたら、Javaで言うServletコンテナみたいなコンテナを用意して
そこら辺の処理をやらせたり。
…とここら辺で俺は満足しちゃったんだけど。
402 :
379:2007/04/19(木) 17:08:05 ID:???
>>397-98 詳しくご説明ありがとうございます。
例えば
a)function memberData(); //会員情報を表示
b)function bbsData(); //掲示板の書き込み内容
c)function categoryData(); //カテゴリ
があるとします。この基本セットは
登録一覧表示(list.php)や検索表示(search.php)
など、一般的にしようするとします。
しかし、list.phpにdが出てきた場合はどうするか?list.phpにdの関数(又はclass)
だけ追加してやればいいのか?もしくは、外部ファイルに分けて読み込むように
した方が良いのか?と言うのが悩みです。
398さんの例で言うと (共通した3を追加する場合)
1を呼ぶ→2を呼ぶ→3を呼ぶ
2を呼ぶ→3を呼ぶ
で良いのかな?と思うわけです。わかりづらかったらすみません。
どうやってPHPでServletコンテナみたいなものを実現させるの?
>>402 やっぱり同じクラスを2つのページに書いてるの?
処理a, b, c, dがあるクラスを両ページでincludeすればいいんじゃないでしょうか?
405 :
379:2007/04/19(木) 17:15:28 ID:???
>>404 そうですね。例えば一覧表示(list.php)の場合は検索のclassはいりませんが、
>>402の例で言うと、a〜cまでのclass(関数)は使っています。
そして検索用のファイル(search.php)では、検索用のclass(例ではd)
を追加している。といった感じです。
現在は両ページでincludeしているのですが、a〜cまでは共通しているので
更にa〜cまでまとめてincludeした方が良いのかな?と言うのが悩みです。
えーとそれだとクラスの再利用とかの意味がないよね。
関数集としての使い方しかしてないみたいだし、普通にfunctions.phpにでも関数入れて
各ページで読み込ませることにしたほうがいいんじゃね?
んでこれが終わったらオブジェクト指向・設計とかクラスとかについて勉強するといいと思われ。
>>402 なんか根本的にclassの使い方判っていない感じがする
被るならextendsなりincludeしたらいい
409 :
379:2007/04/19(木) 19:02:47 ID:???
とりあえずもう少し見直してみます。
オブジェクト指向化していると思うのですが、
自分の思う基準が一般的な基準と違うかもしれませんし。
アドバイスいただいた方、ありがとうございました。
410 :
虚弱PHP:2007/04/19(木) 19:07:32 ID:???
>>409 まあ、class使ってカプセル化する事がオブジェクト指向ではないので。
(といいつつ、定義は難しいよね)
デザインパターンとか勉強してみるといいかも。
今更だけどクラスの使い方わからん
変数がそのまま残るってこと?
だったら消えてくれたほうが使いやすい
(・∀・)ニヤニヤ
413 :
nobodyさん:2007/04/19(木) 19:36:20 ID:JjAom0RF
いちいちincludeかかないで、どこのディレクトリからでも、
特定のクラスを使えるようにしたいのですが、
なんかそういう方法ありますか?
パスとおすみたいなことができればおしえていただきたいです。
414 :
nobodyさん:2007/04/19(木) 20:08:09 ID:E0JBJHfw
DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)
上記の文字列の、「12345678901」の部分を取得したいのですが、
$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
preg_match("/ser(.*);/",$match,$agent);
でマッチしないです。
"/ser\d{15};/"
も試してみたのですが同じです。
この部分はどのような文でマッチさせるのがベストなのでしょうか?
>>414 するけど?
ていうかなんかおかしいぞ。変数が。
$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
if (preg_match("/ser(.*);/", $ascii) {
echo "match";
}
416 :
415:2007/04/19(木) 20:28:24 ID:???
訂正
if (preg_match("/ser(.*);/", $ascii) {
↓
if (preg_match("/ser(.*);/", $ascii)) {
417 :
nobodyさん:2007/04/19(木) 20:29:58 ID:E0JBJHfw
>>416 あー
比較する変数と比較した結果が格納される変数を
書く場所が逆でした
ありがとうございます
418 :
nobodyさん:2007/04/19(木) 21:11:25 ID:g61ARuJQ
サクラのレンタルサーバで、htpd-2.0.53.tar.gzをインストールして
php5を使っています。
先ほどCall to undefined function: array_combine() とエラーが出てしまいました。
sqliteは使えるのでPHP5はインストール出来ていると思います。
何か設定がいるのでしょうか?
ちなみに、同じプログラムは自宅の環境では動いています。
>>418 一応phpinfo()で確認してみれば
422 :
nobodyさん:2007/04/19(木) 22:01:09 ID:3qk/G7nZ
DBからひっぱってきたさまざまな値を表示したいのですが、
select * from table where 1;
とかして、1回のクエリで全部取得して、配列などを駆使して頑張って表示するか、
select column from table where group = 1;
みたいなクエリを数回実行して、
数回にわたり、クエリ送信→結果取得・表示を繰り返すのは、
どちらが一般的な方法なのでしょうか?
あと結果取得する際は、fetch_assocやfetch_objectなど
さまざまな関数がありますが、どの関数を使うのが一般的ですか?(もちろん用途によるでしょうが)
SQLが複雑になっても1回のクエリにした方が
大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い
配列でとるかオブジェクトでとるかは好みでいいと思うが
最初は配列でいいんじゃないかな
425 :
nobodyさん:2007/04/19(木) 22:11:20 ID:3qk/G7nZ
>>423 具体的にテーブルの構成は、
ID, GROUP(int), NAME(char), DESCRIPTION(char)ってかんじで、
GROUP別にNAMEとDESCRIPTIONを表示するだけなんですけど、
イメージとしては
<table>
<tr>
<td rowspan="3">Group1</td>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
</table>
ってかんじです。
#だいぶスレ違いすみません。
426 :
nobodyさん:2007/04/19(木) 22:15:09 ID:3qk/G7nZ
>>424 レスありがとうございます。
>SQLが複雑になっても1回のクエリにした方が
>大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い
やっぱそうですよねー
まだ1度で全てやったことはないので勉強がてら頑張ってやってみようと思います。
>配列でとるかオブジェクトでとるかは好みでいいと思うが
ではオブジェクト慣れしてないので配列で頑張ってみます。
3回に分けてクエリ発行するほうが面倒でない?
428 :
nobodyさん:2007/04/19(木) 23:40:32 ID:0KeZVqYA
はじめまして、ほんとくだらなくて申し訳ないんですが
SimpleXMLのasXML()を使ってxmlファイルを作成する際に、
インデントさせた形でxmlファイルに書き込むにはどうすればよいですか。
$xml = simplexml_load_file('example.xml');
$a = $xml->addChild('a');
$b= $a->addChild('b', 'hoge');
$c = $a->addChild('c','fuga');
$xml->asXML('example.xml');
example.xml:
<a><b>hoge</b><c>fuga</c></a></a>
↑これを
<a>
<b>hoge</b>
<c>fuga</c>
</a>
↑このように整形した形でファイルに
書き込見たいのです。
\nと\t
431 :
428:2007/04/20(金) 00:07:56 ID:b3irjh4D
>>429さん、
>>430さん
すばやいレスありがとうございます。
仕様なら仕方ないですね。
ほかの方法であたってみます。
ありがとうございました。
simplexml使ったこと無いけど
grepで確認してSimpleXMLElementからオーバーライド
433 :
nobodyさん:2007/04/20(金) 00:19:50 ID:SGW4zUZi
session.save_path は、パスの深さが 2 よりも大きい場合、
session.gc_probability, session.gc_divisor の設定では
自動で GC が行われないということですが、
/var/tmp // 自動で GC される
/home/usr/tmp // 自動で GC されない
という解釈でよいのでしょうか?
>>428 DomDocument->dump_file()なら第一引数をTRUEにすれば
整形されるらしいから、そっち使えば
チーッス
array(
array('a', '1'),
array('b', '2'),
array('x', '5')
)
と言う配列を手っ取り早く
array(
'a' => '1',
'b' => '2',
'x' => '5'
)
にする方法はないかな?
ヨロシク!
436 :
nobodyさん:2007/04/20(金) 01:20:37 ID:tutvnVSF
IDだしとくぜ
>>436 配列の要素と中身を入れ替える関数あるから調べてみれ
array_flip
ビットで
010010
と
100010
を処理して
110010
という感じの処理をしたいのですが、これをなんと言うのですか?
またやり方を知りたいです。
ビットを立ててフラグを管理するようなのを見るのですが、やり方がわかりません。
>>435の上下って同じ意味なの?
上の形は初めてみた。
441 :
nobodyさん:2007/04/20(金) 01:46:45 ID:VuqLwFSH
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
完全にスレ違いだが
XMLってエラーあるとページ表示されんのかな?
状況がわからんが、XMLを誰に食わせて、その結果を誰に渡してページを表示するんだ?
444 :
442:2007/04/20(金) 01:57:19 ID:j6HhIKSH
ちゃんとした質問になりそうなのでID表示します。
>>443 CSV形式のファイルをPHPを使ってXMLに書き出そうと思うのですが、
なかなかうまいこといかずに苦戦中・・・
XML宣言してるのに形式が.phpだから表示されなかったり・・・
>XML宣言してるのに形式が.phpだから表示されなかったり・・・
そりゃ当たり前だ。
htaccessで拡張子phpをxmlとして動作させるようにしないと。
phpでechoでxmlを出力してるなら、headerでxml指定すればいい。
446 :
nobodyさん:2007/04/20(金) 02:03:50 ID:j6HhIKSH
>>445 .xmlで実行させてみたんだけど
宣言の<?xml〜?>がPHPとして認識されてしまう・・・
とりあえずヘッダーで出力してみることにします
448 :
nobodyさん:2007/04/20(金) 02:09:34 ID:j6HhIKSH
449 :
nobodyさん:2007/04/20(金) 02:10:07 ID:j6HhIKSH
のような感じに出力できました
更新ボタン押すたびに
XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。
--------------------------------------------------------------------------------
指定したエンコードはシステムでサポートされていません。リソース '
http://localhost/XML/make.php' の実行エラーです。
というページが表示されるが・・・orz
"xml宣言 php"でぐぐれ
450は無しで
>>440 お前は何を言ってるんだ。
上は多次元配列、下は1次元の連想配列じゃないか。
>>449 じゃ出力文書のエンコードが間違ってんだろ
454 :
nobodyさん:2007/04/20(金) 02:16:09 ID:tutvnVSF
>>437,438
元のは必ず多次元配列になるんでarray_flipは使えないモヨリ。
array_mapとarray_walkを試して見たのだが
キー部分が変えられなかった。
はいヒントっつーか答え。これみてよく考えてください。
<?php
header('Content-Type: application/xml; charset=utf-8');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<rss>
</rss>
457 :
nobodyさん:2007/04/20(金) 02:21:30 ID:j6HhIKSH
>>456 あー、
なるほど、charsetのところに文字コードの変数じゃなくて別の変数を当てはめていたのが原因でした
何当てはめてたんだよ('A`)
459 :
nobodyさん:2007/04/20(金) 02:22:38 ID:j6HhIKSH
まぁ頑張った形跡は伺えるな。
462 :
nobodyさん:2007/04/20(金) 02:26:32 ID:j6HhIKSH
どこか直したらいいところがあればアドバイスplz
>>462 普通はxml関数使って出力するけど、別にいいんじゃない?
思い通りに動けばおk
PHP6じゃ<?xmlではじまってるか<?phpではじまってるかで判断してくれないかね。
xhtml使ってる身としてはいちいち書くのだるい・・・
465 :
nobodyさん:2007/04/20(金) 02:38:03 ID:j6HhIKSH
>>463 あー・・・
リファレンスにはxmlファイル取得と解析関係のしか載ってなくて
xml出力の関数もあるんですかorz
short_open_tagだかの設定があるだろ
467 :
418:2007/04/20(金) 03:07:22 ID:/zvZod/N
>>420 php4.4.6でした・・・。
ありがとうございます。サーバにインストールしたのが
WINDOWS版で、UNIX版でなかったからでしょうか。
また奮闘して、インストールしてみます。
468 :
439:2007/04/20(金) 03:26:22 ID:???
>>447 ビット演算って言うんですね、ありがとうございます。
0101 & 0011 = 0001
0101 | 0011 = 0111
0101 ^ 0011 = 0110
~0101 = 1010
0101 << 1 = 1010
0101 >> 1 = 0010
あとは各計算方法の名前を教えて頂ければ嬉しいです。
マニュアルに全部書いてあるので読んで頂ければ嬉しいです。
470 :
nobodyさん:2007/04/20(金) 05:08:42 ID:4Ur3eUeX
オブジェクト指向にもふれとこうとおもって、
いろいろ参考サイトみているのですが、こんな書き方がありました。
function action(){
$this->soul() and $this->weight *= 0.9;
$this->weight < $this->first_weight * 0.6
and $this->soul(true);
以下略
はじめてみる書き方なのですが、
(条件文でもなさそうなのに論理演算子や比較演算子が)
これは一体どういった意味なのか教えていただけませんでしょうか?
471 :
439:2007/04/20(金) 05:45:49 ID:???
>>468 もっと言えば
>>439は論理和。
& 論理和
| 論理積
^ 排他的論理和
~ ビット反転
<< 左シフト
>> 右シフト
あたりがポピュラーな名称かな?
シフトで切り落としたビットを逆方向から挿入するローテイトなんて演算もあるけどこれを実装している言語はほとんどない。
>>470 実はオブジェクト指向とは全然関係ない。
あまりそういう書き方はされないが論理演算子のロジックを利用した条件式。
論理積は全てが真でなければ真とならないため、偽があった時点で評価を止め、偽を返す。
論理和も同様、どれかが真であれば真となるため、真があった時点で評価を止め、真を返す。
論理和の方は「fopen() or die();」などの形でしばしば利用される。
つまりは「$this->soul() and $this->weight *= 0.9;」は「if($this->soul()) $this->weight *= 0.9;」と等価。
ぶっちゃけif文の方が条件分岐専用なので若干(本当に若干だが)効率は良い。
473 :
472:2007/04/20(金) 05:57:05 ID:???
ごめんこれ逆ねorz
& 論理積
| 論理和
474 :
375:2007/04/20(金) 05:59:38 ID:???
わたしの質問の肝心なとこには誰も答えてない件について
>>281 AddModule mod_php5.cはWINには関係ないからスルーしていいよ
>>474 どうしたら教えてもらえのか書き方を勉強してきたほうがいいよ。
インターネットのネチケットについてのサイトをみてこい
>>470 条件分岐のつもりで書いたぽいけど
and演算は代入よりも優先順位低いから
全く意味なしコードになってる予感
and と && は違うのよ
>>477 低いからこそのだよ?
高かったら代入が左に有ったとき論理値が入っちまう。
>>435 内側の配列をマージってことだからループなりでarray_merge
>>470 if (funcA() && funcB());
Aがfalseなら式全体はfalseであることが確定するので
Bは実行されない。これを短絡演算と言う。
ifの条件式内でなくても利用できる。
480 :
虚弱PHP:2007/04/20(金) 10:25:05 ID:???
>>470 それ書いたの、元Cか元BASICの年寄りプログラマーじゃない?w
>>375 君の質問は点数評価するなら10点なのでとりあえずソースを示してくれ。
session_start();ってこれを書いた後からセッションが有効になるのですか?
それとも、ファイルの冒頭に必ずかかなければいけないとか?
session_startで$_SESSIONに値が復元される
>>483 意味分かりました。ありがとうございました。
485 :
nobodyさん:2007/04/20(金) 13:06:25 ID:w/S09GXX
>>272 レス遅くなりました。ありがとうございました。
おかげで解決できました。
そのままreadfile関数を使わせていただきました。
アバター作成ツール作りたいのですが、ググっても参考になるサイトがありません。
基本的には画像の重ね合わせだと思うのですが(GDだけでいける?)。。
参考になるサイトもしくは過去に作った方いらっしゃれば(途中まででも)見せていただけませんでしょうか?
GDだけでもいけるけど、ImageMagick使ったほうが楽
>>486 昔ちょっとやろうとして面倒だからやめたけど、基本的にはあってるよ。
たとえば、基本フレーム、体、服、アクセサリを用意して、それぞれを同じ大きさであわせておく。
このとき、1色を透過色として使うので、その色はほかで使わない。
後はそれぞれを階層的に重ねていく(フレーム->体->服->アクセサリの順)
で、出力。
ただ、これを表示のたびにリアルタイムでGDでやろうと思うとごっつ重いので、
決定したときに一枚の画像で出力しておく。
という感じかな。
489 :
486:2007/04/20(金) 13:47:01 ID:???
>>487-488 ありがとうございます
それにしても参考になるサイトが少なすぎます…(調べ方が悪い?)
GD アバター (PHP)
ImageMagick アバター
でもでないですね…
>リアルタイムでGDでやろうと思うとごっつ重い
なるほど
参考になります。
参考になるサイトって言っても
考え方だけであとは作業的なもんだからなあ…
アバターで検索かけてもそんなピンポイントの
内容を記したところなんてそうないだろう。
やるんなら画像とか透過とか
492 :
470:2007/04/20(金) 16:25:57 ID:4Ur3eUeX
レス遅れてすみません。
皆さん教えていただきどうもありがとうございました。
確かにor die()とか似たようなものはよくみますね。
短絡演算というのですか。
あまり使われないやり方とはいえ、大変勉強になりました。
<html>
<head><title>テスト記録</title></head>
<body>
<table>
<tr>
<th>番号</th><th>名前</th><th>点数</th>
</tr>
<tr>
<td><center>1</center></td><td>鈴木</td><td>67点</td>
</tr>
<tr>
<td><center>2</center></td><td>加藤</td><td>74点</td>
</tr>
<tr>
<td><center>3</center></td><td>高橋</td><td>53点</td>
</tr>
</table>
</body>
</html>
こういうWebページがネット上にあったとして
点数が69点以下の人のみの表を表示するPHPプログラムを作りたいとき
どういう方法が良いのでしょうか
要素を配列に取り込む方法があったりするのでしょうか?
if ($tensu < 69){
echo バカ;
}else{
echo ^^;
}
>>493 すでに作られた静的HTMLを元に動的ページにしようとしてるのか?
HTMLからデータ抽出する方法もない事もないが、
普通は事前に手作業等でデータだけを抜き出して
CSVファイルなりDBなりに保存するもんだ。
HTMLからのデータ抽出は
・表示されてるHTMLからのコピペ
・HTMLソースをテキストエディタで置換
等で大した手間でもなくできるだろ。
>>493 >>495のいうとおりデータを抜き出したものを作るのが妥当。
どうしてもやりたいのなら、
fileあたりで配列に読み込んだあと、
正規表現で該当行の必要なデータを抜き出してそれを成形して表示する。
DBを使わずにPHPのみで、
Yamada: Taro
Suzuki: Ichiro
John: Smith
のデータが入ったテキストファイルを、
例えば、2行目のSuzuki: Ichiroを削除したり、
Suzuki: Suzukiro みたいに変更したりできますか?
file()で配列にすればいいのかと思うのですが。
>>497 いいとおもうならやってみればいいんじゃないですか?
そう言われてみりゃそうなんでとりあえず試してみます
500 :
nobodyさん:2007/04/20(金) 19:01:53 ID:ebFeEZPT
正規表現がイマイチ理解できん…
$a = abcde72;
この72の部分だけ変数にして取り出したいんだがどうすればいいんだ?
自分がどう書いてできなかったのか、まずはソースを出せよ。
502 :
500:2007/04/20(金) 19:10:51 ID:???
>>501 スマソ
$a = abcdef76afrew
$a1 = '[0-9]';
$no1 = strpos($a,$a1);
$no2 = $no1 + 1;
$str = substr($str, $no1, $no2);
echo $str;
503 :
502:2007/04/20(金) 19:11:43 ID:ebFeEZPT
ミスった
$a = abcdef76afrew
$a1 = '[0-9]';
$no1 = strpos($a,$a1);
$no2 = $no1 + 1;
$str = substr($a, $no1, $no2);
echo $str;
>>502 Str型ならちゃんと""or''で囲もうぜ
$a = 'abcde72';
preg_match('/[0-9]{2}/', $a, $match);
print_r($match);
[0-9]{1,}でもいいけど
>>502-503 正規表現は正規表現用の関数(ereg*とかpreg*とか)でないと使えないぞ
506 :
nobodyさん:2007/04/20(金) 19:34:49 ID:ebFeEZPT
なるほど、助かった。サンクス
なんかこの時間帯、脱力系質問多くない?w
ていうか502はマニュアル見て勉強したほうがいいよ。
ソースみてると、変な参考書か適当な解説サイトっぽい粗雑な感じが見受けられる。
509 :
nobodyさん:2007/04/20(金) 20:38:41 ID:jA1Wv9zp
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
510 :
nobodyさん:2007/04/20(金) 21:31:53 ID:2s51Ybcs
2年間でWEB製作とプログラミングを
平行して覚えたいんだけど
無理すれば可能かな?
一般的に独学は効率が悪いのは確か
>>510 口より先に手が動かない人じゃないと無理。
>>513 またいつもの、話に入りたいけど入れなくて、
とりあえず何か言っておかないと気がすまない人ですか?
>>495の言ってることは業務でも至極当たり前。
即座に反応するのが、いつもの人っぽいなw
ファイルポインタの現在位置(オフセット)はftellでわかるそうですが
現在位置の行数って調べることはできますか?
> またいつもの、話に入りたいけど入れなくて、
> とりあえず何か言っておかないと気がすまない人ですか?
>>513は偽者
は?できるだろ。やっぱり、いつもの人はスキルがないな。
>>493の話をぐだぐだやっるみたいだが
前提条件を少しは考えてから話をしたら?
"こういうWebページがネット上にあったとして"
という書き方からすると、その "ページ" とやらが一次情報なんじゃねーのか
>>507 スレタイ通りでいいんじゃまいか
行数というデータに意味は無い。
そもそも行数の実体は先頭からの改行コードの数 + 1。
>改行コードの数 + 1
これが答えだな
>>516はftell()みたいに
ファイルポインタから行数取れるやり方はあるのか
と訊いてるんじゃないの?
そういう意味なら、一発でとれる方法は無いから
自分でファイルの先頭から見ていって
改行をカウントしろ、とか丁寧に書くのはスレ的に無粋ですかね
525 :
nobodyさん:2007/04/20(金) 22:47:16 ID:5u2maBIV
ファイルポインタを弄って処理中なんだから、
その時点で改行をカウントできるだろ。ftell(ファイルポインタ)と同じ程度の
水準でカウントできないとでも?
お前等親切だなぁ
ID出してないから放置してもいいのに
>>521-523 ありがとう
fgetsで各行読み込む毎にカウントして
なんとかやりたいことができました
528 :
nobodyさん:2007/04/21(土) 00:29:45 ID:LOF7z3oT
設計についてなのでスレ違いだと思うんですけど、何処で聞けば良いのかよく分からないのでここで聞いて見ます。
今PHPのメンバー機能付きのスクリプトを作っているのですが・・・
例えば、メンバーデータで、メンバーが決めたユニークな英数字のID「userid」があったとして
他のデータとの結びつけや呼び出しなどをこのIDでするか、
それともこれとは別に、auto_incrementでつけた数字のIDも持たせて
裏側の処理は数字のIDでやった方が良いのでしょうか?
絶対ユニークなものであれば、英数字のIDでも問題ないでしょうか?
よかったら意見聞かせてください。
>>528 DB設計の話なら
数字のプライマリーキー設定したほうが若干スピードが上がる
主キーとユニークで違うもんなの?
>>530 MySQLの場合
INTなら4バイト、SMALLINTなら2バイト
英数字IDの最大長は知らんが
どっちがプライマリキーに適しているかはわかるべさ
何が4バイトで何が2バイト?
メモリ領域ってわかるだろ。常識的に考えて。
534 :
nobodyさん:2007/04/21(土) 01:55:59 ID:4pjJu4sq
ファイルを下から読み込む方法を教えてください。
いや主キーとユニークの検索スピードの違いとそれがどう関係してるのかっつー話。
>>529 つっても比較回数がたかだかO(log n)しかないんだから、
別にどっちでも大してかわらないという話もある。
ものによってはO(1)だったりするし。
それとは別にauto_incrementとかが使えるのが便利だから、
という理由でIDは整数にすることが多い。
>>534 「下から」とは?
テキストファイルを一番下の行から順番に読むってこと?
538 :
534:2007/04/21(土) 02:03:25 ID:???
>>534 >>537の言うことを前提とすると、
array_reverse(file("hoge.txt"));
これでhoge.txtが下の行から配列に入る。
540 :
534:2007/04/21(土) 02:30:30 ID:???
>>472-473 遅くなりましたが、詳細な説明ありがとうございます。
大変参考になりました。
542 :
nobodyさん:2007/04/21(土) 03:33:07 ID:LOF7z3oT
>>529-536 色々意見有難う御座います。
現状、useridとは別にauto_increment(userno)を持たせて内部ではこのusernoで色々やってるのですが
たまにuserid→usernoを検索したり、その逆を検索したりと言う処理が入ってくる為
それほど変わらないようでしたら、useridで処理を行うように変えてみたいと思います。
参考になりました。
543 :
nobodyさん:2007/04/21(土) 03:35:32 ID:LOF7z3oT
あ、ちなみに↑を変更すると同時に
useridをプライマリキーに変えようと思います。
つーかwhere句で指定するカラムに張らないと基本的に無意味だろ
?
546 :
nobodyさん:2007/04/21(土) 07:12:06 ID:9SFJ2Fse
PHPで検索機能を作ってます。
通常の検索機能はできたのですが
-(マイナス)を付けた文字を除く機能はどうやるとよいのでしょうか?
正規表現による置き換え。
$str = "abc123+-=";
$newstr = preg_replace('/-/', '', $str);
echo $newstr;
>>548 いちいち煽らないで間違ってると思うなら正しい答えかけよ。
>>547 今できてるところを晒したら?
じゃないと質問があいまいで答えようがねーずら
abc123+-=
abc123+ -=
=入らないって事?
いつもの人じゃないの?放置でおk
>>547 >正規表現による置き換え。
には吹いたw
どこに正規表現使ってるのww
答えstr_replace
574がなにをやりたいのかはわからんが、
/-/ だって立派な正規表現だろ
ああ、546に対する答えか。547は。なにがやりたいかもわかるな。
>>553はいつもの人か?
556 :
nobodyさん:2007/04/21(土) 11:40:10 ID:PuJ1NL9p
構造について質問です。よくある会員登録フォーム・申込みフォームでは、
個人情報+企業情報+アンケート
などの入力枠がありますが、これらの保存先はすべて同じファイル(もしくはDB)
上にした方が良いのでしょうか?それか、用途毎に分けた方が良いのでしょうか?
1つにするとファイルを分ける手間が減りますが、ログが長くなって重くなる気がします。
かといって複数に分けても処理が早くなるのかもわかりませんし・・。
複数に分ける r + w * 3
一つにまとめる r + w *1
558 :
556:2007/04/21(土) 12:11:59 ID:???
>>557 と言う事は、やっぱり1つにまとめた方が、処理も早いわけですかね?
DBの場合、全部一つにするとフィールド数が多くなって、それだけ処理が
遅くなると思っていました。(前にこのスレでも言われたような・・。)
それにDBでもテキストログでも長くなると見づらいと思っていたのですが、
プログラム的には処理が早いほうが良いので、1つにまとめた方が良いですね。
フィールド数を増やすのは最悪の手法
正規化で検索してきてください
560 :
556:2007/04/21(土) 14:05:14 ID:???
>>559 それじゃ、やっぱり分けた方が良いのですか?
これまでは正規化を考慮して、複数テーブルに分けていました。
ただ、
>>556に書いた用途だと分けた方が処理が早くなるのか遅くなるのか
よくわからなくなって、質問した次第です。
今までは、分けて、必要な時のみ情報を追加していました。
(例えば、企業情報が入力されていない場合は、
企業情報用のテーブルに追加しない など)
1カ所でしか使わないなら分ける必要なんてなくね?
>>559 会員登録時に企業を選択式にでもするの?
>>556 会員登録でアンケートというと普通一過性の情報なので
こいつだけ外に出しておいた方がいいかもしれない
申し込みフォームというと「システム的に情報を再利用せず
あとは人間が読むだけ」って感じをイメージしたけど
そういう場合は一まとめにしたCSVがあると便利
ログファイルはfp最後にしたら最速、ヨルダンまでぶっ飛ぶからDB1択
そんなに速度にこだわるのはなに?
564 :
556:2007/04/21(土) 14:30:49 ID:???
>>561 自分もそう思って質問した次第です。
>>562 そうですね。アンケートだけは分けた方が良いかもしれませんね。
確かにCSVやログに落とした時に、個人情報と企業情報が繋がっている
方がわかりやすいし、見やすいですからね。
わけると、単純にそれだけ処理の回数が増え、負荷もかかると思っていたんです。
今までは、
a)個人情報だけ入力 →memberのテーブルのみデータを追加
b)個人情報+企業情報 →memberとcompanyのテーブルのみデータを追加
c)個人情報+企業情報+アンケート
→memberとcompanyとankのテーブルにデータを追加
みたいな事をしてました。編集の時は、それぞれのテーブルに会員IDの
データが登録されているか否かを判別して。
ただ、それをすると正規化としては良いんだろうけど、見づらいし、
余計な処理も入ると思い、質問しました。
やっぱり個人情報と企業情報は一緒にします。ありがとうございました。
アンケートフォームなんて正規化必要ないし・・・
初心者は教えてgooで聞くほうが的を得た回答や回答率もいいよ。
567 :
nobodyさん:2007/04/21(土) 18:11:02 ID:7D1RcruI
FTPでアップロードをして「更新日時」が新しくなってしまったファイルがあるのですが、
PHPで(Linuxのコマンドライン?)更新日時を古く変更などすることはできますでしょうか?
568 :
nobodyさん:2007/04/21(土) 18:20:42 ID:vgvHFl4R
無理だとは思うが
フォームを使わずにPOSTデータ送信とかできないよな
fsockopen だった
571 :
nobodyさん:2007/04/21(土) 18:45:47 ID:RkazuUUh
すみません、質問です。
Smartyってありますけど、皆さん使ってますか?
MVC実現のために便利と本には書いてありますけど
必ずしも必須ではないし、変なエラーもおおいみたいだしで気後れしつつ、
気になっている状態です。
(サンプル動かしてるけどエラー多発でイライラです)
どうなんですか?
プロとして活躍されてる人の現場では利用して当たり前なんでしょうか?
僕はシロウトです。(デザイナが幅を広げたくてphpやってます)
573 :
nobodyさん:2007/04/21(土) 18:54:55 ID:7D1RcruI
>>569 ありがdです。
touch() [function.touch]: Utime failed: Operation not permitted
フォルダ777でファイル666とか変えてもエラー出まくってるけど、頑張ってみます。
いつもの人はほんとレベルが低すぎるな
そこでロム組みのおれが参戦しますよ
>>573 ファイルの所有者じゃないと更新時間の任意変更はできないんじゃね
スクリプト実行時のユーザが誰か調べてみ
577 :
nobodyさん:2007/04/21(土) 19:50:08 ID:sL28nTPU
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
578 :
573:2007/04/21(土) 20:24:34 ID:7D1RcruI
>>576 FTPでアップしたファイルだと、ファイル所有者が自分のユーザ名になってました。
面倒だけど、PHPからファイル作成して所有者apacheのファイルを作ってから
touch()でOKでした。ありがとうございました。
>>566 聞いたが答えこない…
ちと難しいこと言ったかな
580 :
nobodyさん:2007/04/21(土) 23:30:34 ID:0pUFJgAt
PHPを勉強しようと思うのですが、本買う金も、近くに書店もないので、分かりやすい解説サイトを教えていただけませんか?
582 :
nobodyさん:2007/04/21(土) 23:42:14 ID:Ja/OZfS8
初めて2、3ヶ月
さて次は何をやったらいいんだろうか・・・
今までHTML→JS→FLASH(AS)とやってきました
付け加えるとPHPとプログラムじゃないけど
リナックスも少しかじりました
585 :
nobodyさん:2007/04/22(日) 00:49:17 ID:J1vbWRUn
array([0]=>'foo',[1]=>'bar')をarray('foo'=>'bar')にする配列関数ってありますか?
jsって今更勉強する必要ある?
587 :
nobodyさん:2007/04/22(日) 00:54:33 ID:Du7ZfW0q
>>581 ありがとうございます。
よくみたら
>>1に書いてあったんですね^^;
よく読まずに失礼しました。
>>585 配列関数のところ探してみるといいよ^^
>>586 googleが使いまくってるから勉強してもいいと思う
>>586 それがJavascriptのことならば、Ajaxでググってみると勉強する必要があるかどうか判断できると思う。
jsに完全にとってかわるスタンダードは無いわけで、「今更」って表現は理解して無いゆえの表現な気がする。
591 :
nobodyさん:2007/04/22(日) 05:05:28 ID:6BzHCPPl
PDOにインサートした行の主キーを返してくれる関数ってありますか?
GoogleマップのせいでAjaxが一気にはやってから
非同期通信してない普通のJavaScriptつかってる
サイトが増えたけどマジで勘弁してほしい
本気でうっとしいぐらいJavaScriptはちゃんと動かない
それjsが悪いんじゃなくて、使い方が悪いだけじゃねぇの・・
作ったやつがヘボなだけ…といいたいところだが、
javaScriptの互換性問題は、ブラウザのベンダーもヘボだからなあ。
標準のテストケースくらい作ってそれにパスしたものだけを
リリースするって態勢を何故とれない。
そういえばPHPProってサイトがあるんだけど
そこって関数にポインタもっていくとその関数
マニュアルがポップアップしてくる。(JavaScript)
で、ポインタを関数からはずすとポップアップが
消えるんだけど30%の確立で消えずにずっと画面
に残る
ああいうのが一番イライラする
すれ違いではあるが
Javascriptは
オブジェクト指向の言語だからな。
HTMLをかじったくらいのやつがまともにかけるはずがない。
外出だがブラウザの互換性も面倒だし。
それにまともな書籍がペーパーバックしかないしな。
combineじゃだめ?
599 :
nobodyさん:2007/04/22(日) 11:46:47 ID:b9VJcguV
すみません、質問です。
以下のようなエラーが出たんですが、どういう意味なんでしょう?
Warning: Smarty error: unable to read resource: "store.tpl" in C:\php\include\SMARTY\libs\Smarty.class.php on line 1095
"store.tpl"を読み込めない、Smarty.class.php の 1095行目で処理できない って意味でしょうか?
問題があるのは"store.tpl"でOKですか?
Smarty.class.php の 1095行目で、おそらく store.tpl を include しようとしているが、store.tpl が開けず読み込めてない。
たぶん store.tpl が存在しないか、テンプレートディレクトリの指定とかが間違ってるんでしょ。
601 :
nobodyさん:2007/04/22(日) 12:20:47 ID:ctFC3eVb
PHPで、
list($abc,$def) = explode('/',$_SERVER['PATH_INFO']);
として、URLから ?= などを消そうと思っていますが、
www.○○○.jp/abc/def などとしてアクセスすると、
画像やCSSが読めなくなってしまいます。
(実行しているファイルの階層が変わってしまったような感じです)
原因が分からないのですが、パラメータも一つ目しか
受け取れません。
.htaccessは下のようにしています。
<FilesMatch "html$">
ForceType application/x-httpd-php
</FilesMatch>
AcceptPathInfo on
Options MultiViews
考えられそうな原因を教えてください。
602 :
nobodyさん:2007/04/22(日) 12:30:57 ID:b9VJcguV
>>600 なるほど! すぐ確認してみます!!
ありがとう!
603 :
nobodyさん:2007/04/22(日) 13:24:04 ID:XnNxCKoz
セッションの仕組みを検証しています。
ブラウザの更新ボタンを猛連射すると、セッションが切れる場合があります。
HTTP リクエスト、レスポンス上の Cookie のセッション ID のやり取りには問題はないので、
サーバ側の session_start あたりのPHPの処理が追いつかないからですかね?
他にも session_regenerate_id 等を処理しています
// リロードしまくる相手は切れてしまっても問題ないとは思いますが
>>603 セッションの生存期間はどうしてる?
更新連打でセッションが切れるのは生存期間の切れたセッション
をガーベジコレクタが片付けるからだろう
605 :
nobodyさん:2007/04/22(日) 13:52:34 ID:yrmSDayR
>>598 用途が違うから出来ないんじゃないの?
>>601 言ってることが不明。
list($abc,$def) = explode('/',$_SERVER['PATH_INFO']);
でなにを取得したいの?
$a = explode('/',$_SERVER['PATH_INFO']);
print_r($a);
してごらんよ。/abc/defなら配列4個になってるはずだ。
パラメタ1つ目(abc)なのはあたりまえだし。
606 :
603:2007/04/22(日) 14:07:18 ID:XnNxCKoz
>>604 session.cookie_lifetime は 0 でセッションクッキーにしています
GC の動作は、検証用に 100% (1/1) の確率で 4 分経過したものを対象にしていますが、
連続リロードとは関係ありますかね?
「他にも session_regenerate_id 等を処理〜」と書きましたが、
session_start した後、セッション変数 expire (アクセス時間に 3 分追加した有効期限)
をチェックする処理を通しています。
expire が存在しない => 新規で有効期限をセット
存在、有効期限内 => expire を更新し、session_regenerate_id(true)
存在、有効期限外 => 全セッション変数を unset 、expire を再セットし、session_regenerate_id(true)
のようなちょっと回りくどい処理をしていますが、
ここら辺の処理のどこかが追いついていないのかな、と現状想像しています。
書き忘れましたが、PHP 5.2.1 です
607 :
nobodyさん:2007/04/22(日) 14:17:21 ID:dThJ7LN8
関数のパラメーターの数って指定数があるのでしょうか?
function hogeHoge($aaa,$bbb,$ccc,$ddd,$eee,$fff,$ggg){
}
とすると、Missing argument 5 というエラーが出ました。
サーバはPHP5です。
>>607 hogeHoge(1,2,3,4);
とかにしているからでしょ
function hogeHoge($aaa='mmm',$bbb='zzz',$ccc=TRUE,....
と、ちゃんと初期値を書くこと。
文字列にインデントを入れる関数はありますか?
もしくは\nみたいなものでも良いんですが・・・
611 :
603:2007/04/22(日) 15:02:39 ID:XnNxCKoz
度々すみません。
PDO で PDO_PGSQL ドライバを使用した際、
prepare() メソッドのパラメータ string statement に
意図時に正しくない、例えばプレースホルダ (:name や ?) がない文を
与えて実行すると、false を返さず、エラーログに
[notice] child pid ***** exit signal Segmentation fault (11)
を吐いて処理が終了します。
PDO::ATTR_ERRMODE を PDO::ERRMODE_EXCEPTION に設定した場合でも
PDOException をスローせずに同じエラーを吐いて終了します。
PDO_MYSQL ドライバでは問題なく false を返す、もしくは例外を投げてくれます。
細かいことだけど、環境と合わせてバグ報告したほうがいいのかな?
(sendpr したことないし、英語も自信ない)
>>611 やりたければどうぞ。
英語なんか他のbugレポートを真似すりゃいいんじゃね?
↑一生懸命検索してきたけど何もわからず的の得ない回答
以下、負け犬の遠吠え禁止
614 :
603:2007/04/22(日) 16:17:12 ID:XnNxCKoz
>>612 最新の CVS 版入れてもでないか確認して、
PHP を --enable-debug でリビルドして
gdb でバックとレースした内容を添えて、
さらに英語で送るとか、へたれの俺には敷居が高い・・
誰かに変わって報告してもらうにも、環境によって出る出ないがあるかもしれないし。
とりあえず、余裕ができたら自分でやってみます。
>>613 まぁそんな言い方せずに
615 :
612:2007/04/22(日) 16:36:13 ID:???
>>614 bug reportで、最後の「英語」の敷居それ自体は低い。
むしろ問題は、本当に、snapshot入れて出るのかどうかってことと、
出てレポートした後、feedbackするのを放置しがちってところだと思う。
>>613 segfaultに関するようなことはPHP Bugsとの関係でやることであって、それだけのスキルを
603はもってるでしょ。レス見れば判る。
>>603 エキサイト翻訳
文体は短く切りながら書く。正しい日本語、漢字にできる語句は漢字を使う。
617 :
607:2007/04/22(日) 16:55:51 ID:???
>>608 教えていただいたようにするとエラーが出ませんでした。
ありがとうございました。
618 :
nobodyさん:2007/04/22(日) 17:10:14 ID:0zzEw5U5
19860523
から現在まで何年経っているか
簡単に出力する関数とかないですか
年齢チェックをしたいので…
マニュアルはどこまで読みましたか?
>>618 そのフォーマットで、単に年齢出せればいいんだったら日付関数なんかも使わず
$str = '19860523';
$str2 = '20070422';//今日の日付にしたいならdate()あたりで求める
$year = substr($str2,0,4)-substr($str,0,4);
if(substr($str2,4,4)-substr($str,4,4) >0 ){
$year++;
}
echo $year;
でいいんじゃない?。マニュアルってほどじゃない。
グレゴリウス暦1127年3月2日生まれの人間が今生きてたら、何日何秒生きてることになるか
ということになると日付関数じゃ足りずに、オプションのカレンダー関数とかでやるしかないと思うけど。
つーか
substrもつかわず、単に$str2-$str1で終わるような気がする。
>>596 サイ本は結構楽しいけど
まだ3版だとしたら、ちと古いがな
623 :
nobodyさん:2007/04/22(日) 20:59:08 ID:bqPmYs5Q
PHP+PostgreSQLで今サイトを作っているんですが、
なぜか表示ができません。
DBの接続もOKでPHPinfoも出るのですが、
これ文字化けが原因で表示されないということって
ありますか?
結果の中身が空なんだろ
>>623 ソースを出せ
または全ての変数で var_dump するなりチェックしましょう
もしくはcharsetでUTF-8指定してないからとかな
627 :
nobodyさん:2007/04/22(日) 21:48:44 ID:bqPmYs5Q
<?
require('./include/init.php');
$name = $_POST{'name'};
$company = $_POST{'company'};
$tel = $_POST{'tel'};
$email = $_POST{'email'};
$address = $_POST{'address'};
?>
<html>
<head>
<meta http-equiv=content-type content="text/html;charset=x-euc-jp">
<title>・譯シ・カ。シナミマソ</title>
</head>
<body>
<b>・譯シ・カ。シナミマソ</b><br>
イシオュ、ホニ簣ニ、ヌホノ、ア、・ミナミマソ・ワ・ソ・。、キ、ニイシ、オ、、。」<br>
EUCで投稿するなよ・・・
629 :
すいません。623です。上もソースです。:2007/04/22(日) 21:49:25 ID:bqPmYs5Q
<table border=1 cellpadding=4 cellspacing=0>
<form action="ktouroku3.php" method="post">
<input type=hidden name=name value='<?echo $name?>'>
<input type=hidden name=company value='<?echo $company?>'>
<input type=hidden name=tel value='<?echo $tel?>'>
<input type=hidden name=email value='<?echo $email?>'>
<input type=hidden name=address value='<?echo $address?>'>
<tr><td align=center nowrap>、ェフセチー</td>
<td><?echo $name?></td></tr>
<tr><td align=center nowrap>イメフセ</td>
<td><?echo $company?></td></tr>
<tr><td align=center nowrap>」ヤ」ナ」フ</td>
<td><?echo $tel?></td></tr>
<tr><td align=center nowrap>」ナ。ン」ヘ」チ」ノ」フ</td>
<td><?echo $email?></td></tr>
<tr><td align=center nowrap>スサス・/td>
<td><?echo $address?></td></tr>
</table>
<input type=submit value='ナミマソ'>
</form>
</body>
</html>
ちなみにこのソースはPHP&PostgreSQLをそのままんま
コピーしたんですが...
EUC(笑)
<input type=submit value='ナミマソ'>
並マンコってどんなだよ
で、なにを論評しろと言うのだ?
必要なのは init.php の中身じゃね。
っていうかそのぐらいの判断が出来ないんなら、一からテキスト買って勉強したほうがいいよ。
いきなり難しい事を飛ばしてやっても無理。
634 :
nobodyさん:2007/04/22(日) 21:57:51 ID:bqPmYs5Q
<input type=submit value='ナミマソ'>
を直せばいいのかな?
PHP&PostgreSQLにはinit.phpはEUC-JPに設定を直しました。
データベースはUTF-8です。
この本のとおりにやったのですが...
635 :
nobodyさん:2007/04/22(日) 21:59:31 ID:bqPmYs5Q
すいません。
文字コードをPHPはなににすればいいのでしょうか?
本見てやったのですが、
すいません。教えてください。
先ほどのカキコミは627です。
もう全部統一してEUCならEUC一式にしろよ
本を参考にしても環境に合わないとか色々あるけどなあ
とりあえずなんでEUCに拘ってるんだ
じゃあUTF8に統一っていったら・・・ループするのか?
639 :
nobodyさん:2007/04/22(日) 22:36:26 ID:bqPmYs5Q
EUCにしました。
文字のめちゃくちゃなところを直せば動くかな?
どうでしょうか?
後、誰も同じ本もっていないのかな?
もしかして俺だけ?
エスパーじゃねえんだから、本、本って言われてもわかんねぇっすよ
わかったけど
eo規制くらったから書き込めない
642 :
627です。:2007/04/22(日) 23:03:33 ID:bqPmYs5Q
誰か教えてください。
お願い致します。
とりあえず何でスクリプトソースに文字化けした文字書いてるの?
627に質問がなにひとつ書いてない件について
要するにID出しての、単なる荒らしってことで
646 :
nobodyさん:2007/04/22(日) 23:45:04 ID:iPHGhE3V
ライブラリを作りたいのですが、
class〜でクラスでライブラリを貯めていくのと、
function〜でユーザー関数をファイルにただ詰め込むのは
どちらが推奨でしょうか?
はやりフレームワークのようにclassを使うのが妥当でしょうか?
ある程度たまってきたら全部公開したいと思っているので、
みなさまのご意見をお聞かせください。
1週間に1回は出てくるOOPの是非はいい加減テンプレに入れるべき
>>646 どっちでもいいよ好きなように作ってください
DBに格納する前にエスケープ処理をすれば
取り出すときにhtmlspecialcharsしなくてもいいと思うのですが
あるスレで格納する前は処理しなくて取り出すときにhtmlspecialcharsするような
ことが書いてあったのですがどちらがいいのでしょうか?
理由がわかっても後者をすすめる
理由が分かったら前者を選ばないと思う
>>648 変数を何らかの文法の中に埋め込む(HTMLとして出力する、SQL文を発行する、JSONとして出力する)
際にエスケープ。
理由はエスケープの目的(文法上のエラーや意図しない動作を防ぐ)と手段(エスケープ)
の対応が明確になり、必要十分なエスケープ処理を行えるから。
高木さんの言うこともわからんでもないけど、
結局あれこれあるから、最終viewのところで制御するのが安全だなあ。
でも格納前にSQLインジェクション対策はしろよな!
格納前というか発行前か?
クエリ文字列を形成するときかな
たかぎくんも意見も大事だと思うけど、あの人は自分の意見が絶対だと思ってるとこがやだ
658 :
nobodyさん:2007/04/23(月) 02:01:49 ID:J6ot4vJK
すいません。
627です。
この文字ばけを直せばきちんと表示されるでしょうか?
これが質問です。
よろしくお願い致します。
660 :
nobodyさん:2007/04/23(月) 02:03:23 ID:Ks2m9GLI
何?
文字化けで直らないと文字化け直さないの?
見てあげたいけど携帯だしどうしようもない…
>>658 お前あのソースどっからコピーしたの?
エディタからソースをそのままコピー?
それともブラウザで何も表示されてない状態で
右クリックしてソースを表示したのをコピー?
なんか後者の気がムンムンするんだけど・・・
もしそうならちゃんと結果は返ってきてるんだから
100%文字コードの設定だろう。
ちょっとブラウザの表示からエンコード変えてみれ
662 :
nobodyさん:2007/04/23(月) 02:21:23 ID:Ks2m9GLI
>>661 ソースコピーしたらphp表示されなくね?
DWのソースコピーしたらこうなるよ
663 :
661:2007/04/23(月) 03:03:56 ID:???
俺としたことがあああああああああああああああ
>>627 はphp.ini の short_open_tag がoffなのに、<? だけで書いてる臭い。
665 :
nobodyさん:2007/04/23(月) 03:21:53 ID:J6ot4vJK
意味がよくわからないのですが、直してまたうPします。
ありがとうございました。
サーバに定期的にデータを蓄積していき、そのデータ数が一定の値を越えたら処理を実行させる
というような使い方をしたいのですが、
PHPでもcronなどを使えば実現できますがそういう処理はJAVA Servletやアプリケーションサーバ
向きかなと思いましてどうしようか悩んでいます.
どちらがいいでしょうか?経験者の方などがいましたら違いを教えてください.
667 :
666:2007/04/23(月) 08:28:41 ID:sNG4PNgp
ID出し忘れたので出しときます
668 :
nobodyさん:2007/04/23(月) 08:47:16 ID:LOUhoqIW
それトリガーじゃね?
前スレにwebcronというやつが紹介されてたのを思い出した
>>666 一番金のかからないやり方で実装すればいんじゃね
つか、なんでその文脈でサーブレットがでてくるのかわかんね
クーロソ使えるなら使えばいいじゃない
672 :
nobodyさん:2007/04/23(月) 09:56:28 ID:oOc9kXWC
質問です。
他人様が作成したphpスクリプトの一部にHTMLタグを加えたのですが
上手く反映されません…。
スクリプトはこちらの物です。
ttp://www.rocomotion.jp/php/p_link.php 左側のmenuバーの所にだけ<head>用のタグを貼り付けたかったので
#-----------------------------------------------
# フレーム部分(main)
#-----------------------------------------------
と言う項目の下にある<head>の下に付け加えたのですが、反映されませんでした。
アドバイス頂けないでしょうか。 よろしくお願いします。
673 :
672:2007/04/23(月) 10:05:42 ID:oOc9kXWC
訂正です。
編集したのはメインスクリプト、
#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
以下の部分でした。
>>672 そこのどれだよ!
アドバイス
人の質問を見て、何を提示すれば回答が得やすいか考える。
675 :
nobodyさん:2007/04/23(月) 10:33:47 ID:sNG4PNgp
>>670 servletやjspに関してあまり知らないので見当はずれなことを言っていたらすみません.
ただ、クライアントのリクエストに関わらず処理させるサーバにWeb特化のPHPは向いてないと聞いたので、
どのようなシステムを使うのが良いのか知りたかったので質問しました。
>>675 一般解は無いよ。
もっと情報出せば答えが出るかもしれないけど。
677 :
虚弱PHP:2007/04/23(月) 10:42:53 ID:???
>>603 ブラウザの処理の途中でリロードされてるんじゃないかな?
session_regenerate_idでIDが変更されたのに、
変更前のセッションIDを送ってるとか。
678 :
虚弱PHP:2007/04/23(月) 10:46:04 ID:???
>>675 俺の周りではshellとPerl使ってる人が多かったかな。
俺はPHPのシステムだったら、バッチ処理もPHPで書いてた。
>>674 失礼しました。
#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
function frame()
{
global $title, $script, $col_devide;
print<<<head
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<head>の下に1行だけ加えただけです。
だから何加えたんだよ
681 :
648:2007/04/23(月) 11:07:10 ID:???
ありがとうございました
よくわかりました
たかぎさんのサイト面白いです
683 :
nobodyさん:2007/04/23(月) 15:34:47 ID:Ks2m9GLI
実務経験なしでフリーランスのアシスタントすることになったが不安
685 :
nobodyさん:2007/04/23(月) 15:46:15 ID:EsFw1dKU
http://aaaa .com/ が公開サイトでのドメインだとします。
会員登録などしてログイン情報をセッションで持ち回る事で、
会員専用のページなどにもアクセス出来ます。
それはわかるのですが、SSLを使った場合はどうなるのでしょうか?
ただリンクを
https://aaa .com/にすればいいだけなのでしょうか?
SSLのディレクトリにあるファイルでsession_start()とすれば、公開サイトの
会員IDなどが引き継げるのでしょうか?
独自ドメインでSSLを使ったサイトを作成した事がないので、気になりました。
686 :
nobodyさん:2007/04/23(月) 15:58:34 ID:qAG2+B55
youtubeみたいなサイトつくってみたいんだけど、
参考サイトありますか?
特に動画アップロードの作り方が詳しくでているところ希望します。
動画もファイルもアップロードは同じ
FLASH板いけ
正規表現じゃなくて[A-Z0-9]を文字列として表示するにはどうすればええのん?
$unko 1++; とか以外の方法で。
688は自己解決しますた
メタ文字のことです、、、うへへw
691 :
nobodyさん:2007/04/23(月) 16:40:46 ID:LAYu+KhN
クラスとインスタンスの概念がいまいちよくわからないです
抽象化とか実体化とかわけわかめです
簡単な例文とか見るとなんでいちいちこんなことするのかと思えるのですが
複雑な処理になってくるとクラスを使った方がいいというわけでしょうか?
簡単な例えで概念を教えてください。
独り言ですが、何でもかんでも関数でまとめようとするのも考えものですね。。
必要なデータを参照する時に関数かし、その結果、処理がスムーズになると
思っていたのですが、関数化する事で複雑になりすぎて扱いづらくなってしまいました。
単純に別ファイルにしてincludeした方が良いのかも・・。
694 :
nobodyさん:2007/04/23(月) 17:09:43 ID:hrPvjONA
>>692 クラス => 素材(変数)と料理の本(メソッド)
インスタンス=> ↑を準備した台所
ちょっと違うか
>>693 関数の使いどころ間違ってないか?
頻度の多い処理は、関数を作るべき
695 :
693:2007/04/23(月) 17:21:45 ID:???
>>694 頻度の多い処理の中に、いろんな変数を参照する物があるんだけど、
そういう場合、その処理に使う変数をすべて関数内にいれなきゃいけないよね?
それをするのにソースが複雑になりすぎて、後から見直すと「どうだっけかな?」
っと思う時がある。俺の書き方が悪いのかもしれないが。
>>695 自分で作った関数の使い方忘れてたら元も子もないわな
PHP Doc みたいに、説明文書いておけば?
関数の前にコメントでどういうものか記述するわな普通。
頻度関係なく関数は数行でぱっと見理解できる程度に分けたいけど
匿名関数つかえね
701 :
nobodyさん:2007/04/23(月) 18:49:46 ID:YDuj5yCb
while文を変数に代入することってできますか?
702 :
nobodyさん:2007/04/23(月) 18:52:17 ID:YDuj5yCb
自己解決しなすった
703 :
虚弱PHP:2007/04/23(月) 19:01:59 ID:???
>>695 おそらく関数間の依存関係が強すぎるんだね。
そうだとしたら設計の問題。
それ以外だったら、オブジェクトにまとめて関数に渡せばOK。
PHP5では参照渡しってデフォなんですよね?
以下の場合、&$hogeはどんな解釈になるんですか?
また、どっちがはやい?
class hoge {
foo($hoge) {
echo $hoge;
}
foo2(&$hoge) {
echo &$hoge;
}
}
705 :
nobodyさん:2007/04/23(月) 19:11:51 ID:wES6lMlt
個人的好みを聞きます。初期config設定をするとき
1)override予定していないものは、出来るだけ定数にする
2)定数できるものも変数でやっちゃう
どっち派ですか?
あとconfigファイルは
1)phpファイルに書き込むか
2)iniあるいはcsv風テキスト
3)xmlなど
どれ派ですか?
あっしは(1)-(3)なんですけど。
>>704 気になるならベンチ計ればいいだろうが馬鹿か?
707 :
704:2007/04/23(月) 19:17:45 ID:???
>>706 計ったに決まってるでしょ…
私の環境だとたいした差がないし、どう違うのか分からないから聞いてるんですけど!
バカとは失礼な!
大差ないなら大差ないんだろ
709 :
704:2007/04/23(月) 19:30:33 ID:???
>>708 わかんないんなら黙っててくれる?
興味あるから知りたいだけですから…
あんたみたいな大雑把な人はプログラミング向いてないからやめた方がいいよ(迷惑だし)
>あんたみたいな大雑把な人はプログラミング向いてないからやめた方がいいよ
(´,_ゝ`)プッ
春ですね^^
713 :
704:2007/04/23(月) 19:40:52 ID:???
>>710さん
ネタじゃないですよ…○;ω;)…
クダラナイ質問ではありますが…
714 :
虚弱PHP:2007/04/23(月) 19:49:15 ID:???
>>704 オブジェクトは参照渡しだけど他はPHP4と変わらず。
速度はZendエンジンがごちゃごちゃやるはずなのでコード依存じゃないかな。
715 :
704:2007/04/23(月) 19:53:37 ID:???
>>714 ありがとうございます
>>ほか
みんなヒドイです…
ネットでいじめられてるみたいでショックでした さよなら
はいさようなら
717 :
704:2007/04/23(月) 19:58:49 ID:???
自分の環境が信じられないのに他人の環境は信じれるのか
1→001
10→010
と修正したいのですが、
どうすればいいでしょうか?
>>718 と言うより自分でテストしたにも関わらず
匿名掲示板で他人の意見聞いてそれを信じられるってとこがもうやばいなw
721 :
672:2007/04/23(月) 20:17:35 ID:???
>>721 >>674もいってるがそのサイトの
どのプログラムの
どのファイルなのかわかんねーと
わかんねーよ!!
ついでに、どう修正したのかも載せとくとか考えようぜ
質問の仕方が悪い
あと、そのサイトのプログラム
PHP使う意味あるの、って書き方だな…読みずらすぎ
>>722 では改めて。
プログラムはこれです。
ttp://www.rocomotion.jp/manage/dl/plink.zip plink.phpの以下を書き換えました。
#-----------------------------------------------
# フレーム部分(menu)
#-----------------------------------------------
function frame()
{
global $title, $script, $col_devide;
print<<<head
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<!--nobanner-->←追加
確認しましたがタグは有効になりませんでした。
但し、フレーム部分(main) の所のhead下に同じ様に書き加えたら有効になりましたが
全てのページに反映されてしまったのでダメでした。
メニューページにだけ有効にしたいのです。
よろしくお願いします。
head
}
>>724 plink.phpの154行目に以下を挿入
$nobanner = ('left'==$frame) ? "\n<!--nobanner-->\n" : '';
すぐその下の<head>を以下に置き換え
<head>' . $nobanner . '
なお、なにが起きても当局は一切関知しない
>>724 ・DLできません
・だから何を追加したんだ?
高度な釣りだ
729 :
724:2007/04/23(月) 21:31:56 ID:???
と思ったら出来てました。
>>726さん有難う御座いました。
コピペ属性の教えて君は図々しいのが多いな
732 :
719:2007/04/23(月) 21:54:11 ID:???
>>723 レスサンクスです、
001は数字ではなく文字列としてしか扱えないのでしょうか?
例えば、001 に1を足して002にしたい場合、
一旦1に戻して、sprintf使うしか無理なのでしょうか?
001から直接002にすることは不可能でしょうか?
001はどう考えても文字列だろ
734 :
719:2007/04/23(月) 22:49:33 ID:???
>>733 そうですか・・・・orz
ちなみに
sprintfでがんばろうと思ったのですが
1から001への変更方法はsprintf("%03d", 1)
でよいかと思いますが、
001から1への変更方法が思いつきません。
こちらもsprintfでいけるのでしょうか?
intval($val)
sprintf("%d", $val);
IDを001にするみたいな事は、サニタイズと一緒で表示する直前にやった方が良いよ。
サニタイズいうと高木センセが怒っちゃうからメ!!w
738 :
nobodyさん:2007/04/23(月) 23:19:38 ID:+n8U2EAi
WEB上で動画のサムネイルを表示させたいんだけど、どっかにサンプルコードまたは参考サイトないですかね?
サンプルないですかじゃねーよ
まず自力で探せよ
googleでもyahooでも簡単にみつかるだろが
>>734 $foo = 1;
sprintf ("%03d", $foo);
$foo++;
sprintf ("%03d", $foo);
741 :
nobodyさん:2007/04/23(月) 23:29:28 ID:+n8U2EAi
>>739 だってお目当てのものが見つからなかったんだもん。
だから諸兄たちに聞いてんのさっ
だったらどのページを見て、そこのどこが気に入らなかったかぐらい書けよ
環境に制限があるならそれも書け
二度手間になるだろ
743 :
nobodyさん:2007/04/23(月) 23:39:47 ID:+n8U2EAi
動画 サムネイル 作成 PHP コード スクリプト
このあたりのキーワード絡めてググったかな〜
ffmpegってのにピピンときたが、よくわがんね。
オレの頭に制限ありってとこだ。
言われたことにまともに答えられないのなら無視して構わないんじゃね?
746 :
nobodyさん:2007/04/23(月) 23:51:20 ID:WTwJGp5Q
uge|hoge|
[email protected] みたいに、名前とメアドが区切られてるのを一行とし、
それを何個か作ったのをtxtに保存しておいて、
任意の行を削除したい、という時に、
その行以外を一度$tmpに保存したいんですけど、
$listf = fopen ("user.txt", "r");
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
$tmp = "";
while (!feof($listf))
{
if(trim($fname)!=$usr)
{
$tmp .= $fname."|".$lname."|".$email."\ n";
}
list($dusername,$dpassword,$first,$last,$mail,$org,$lv) = fgetcsv($listf,4096,"|");}
fclose($listf);
こんな感じで試してみたんですがダメでした。
間違いか代替手段か何か教えてもらえないですか?
どうダメだったのか書いた方がいいと思う。
748 :
nobodyさん:2007/04/24(火) 00:00:26 ID:WTwJGp5Q
$tmp .= $fname."|".$lname."|".$email."\ n";
}
list($dusername,$dpassword,$first,$last,$mail,$org,$lv) = fgetcsv($listf,4096,"|");}
fclose($listf);
の$flist以降は
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
です。
>>747 $tmpの中にちゃんとデータが入ってるか確認しようと
echo $tmp;
っていれてみたんですが、何もでてきませんでした
言葉足らずですいませんです
とりあえず落ち着いてコードを張ってくれ
変数名がめちゃめちゃでどこから突っ込んでいいのかわからんw
750 :
nobodyさん:2007/04/24(火) 00:16:27 ID:eGs+hfXK
$usr = $_GET['id'];
$listf = fopen ("user.txt", "r") or die("error");
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
$tmp = "";
while (!feof($listf))
{
if(trim($fname)!=$usr)
{
$tmp .= $fname."|".$lname."|".$mail."\ n";
}
}
fclose($listf);
>>749 すいません。
貼り直しました。
list($fname,$lname,$mail) = fgetcsv($listf,4096,"|");
はwhileの中でやろうね
752 :
nobodyさん:2007/04/24(火) 00:35:19 ID:eGs+hfXK
どうやら自己解決できました。
お手数かけました。ありがとうございます。
自己解決したらそれ書けよ
phpはオブジェクトのメソッド呼び出しに->使うんですか
気持ち悪いんですけど。そんなところまでperl真似なくて
いいと思うんですけど。
::のほが気持ち悪い
気持ち悪いならPHPつかなけりゃいいだけの話
他にもたくさんwebで使えるいい言語はあるぜ
アロー演算子ってPerlとPHPにしか無いの?
あとPHPの$記号って何か意味あるんですか。
変数の前に$記号しかないなら、無くても同じだと思うんですが。
$記号打とうとして#と打ち間違えたりして、毎回いらいらするんですが。
PHPを捨ててCかJavaへ逝きなさい
$がつけば変数ってことでたとえば
$a = 'baka';
$b->$a; // $a->baka
みたいなことができる。なんに使うのか? って疑問に思うだろうけど、
結構これは使い出がある。なんとも汚い文法だとは思うけどもね。
じゃあruby使えよ
XML扱う方法がRubyじゃ良くわからなかったので
PHPでやってみてたんですが、Rubyだけで何でもできるようになりたいです。
766 :
762:2007/04/24(火) 01:25:32 ID:???
>>763 ruby使ってますよ。むしろあれでリフレクションを覚えて
「おー、PHPでもできるワロス」とかいいつつ使っていました。
あと訂正
$b->$a; // $a->baka (×)
$b->$a; // $b->baka (○)
#コメント
$変数
を打ち間違えていらいらするなんてプログラマとしてあり得ん。
自分の覚えた言語が誰かに否定されたんだろ
で、周りでは皆PHP・・・あたし悔しい!みたいな?
>>762 可変変数はインスタンス量産する時に必要になる
>>754 遅レスだが、CGI=Perlっていうのが今でも当たり前になってるだろ?
PHPが浸透してきているとはいえ、今でもWebのシェアはPerlが大半を占めている。
Web特化というのが売りのPHPは、当然Perlを一番意識している。
なんでPerlに大部分が似ているかというと答えは簡単。
Perlユーザーを移行させるのが狙い。
他にもJavaやCからの移行者を増やすためにそれらの言語に似た処理を取り入れてる。
そして新規参入のプログラマにもとっつきやすい言語となっている。
利用者を増やすというのは勝ち残る為に一番の条件なのだよ。
そしてperlはshとCの記法を踏襲したとっつきやすい言語。
・・・のはずであった。
クラスの継承はJavaでもPHPでもextends
コレは全く問題ない。
だがしかし!
C#の「:」だけは許せねぇ!
ソースをざっと読んだだけじゃ見落としちゃうじゃないか!
趣味でPHPやってたんだけど
学校でCとかJavaやると時々変数に$付けてしまう
>>759 あとPHPの$記号って何か意味あるんですか。
変数の前に$記号しかないなら、無くても同じだと思うんですが。
$記号打とうとして#と打ち間違えたりして、毎回いらいらするんですが。
この中で変数はどれですか? $記号ですか?
>>773 たくさん言語覚えてる人なんていっぱいいるし慣れればなんとかなるもんさ。
理系の俺は自然言語よりは楽だ
777 :
nobodyさん:2007/04/24(火) 12:55:14 ID:sEkvt9e4
カレンダーで六曜(六輝)を表示する方法ってありますでしょうか
鯖にインストールされてるPHPのモジュールを見る方法はありますか?
phpinfoみたいなやつです
779 :
虚弱PHP:2007/04/24(火) 13:02:54 ID:???
>>778 おまいは何を言ってるんだ。
phpinfoに書いてるだろ。
また参考書買ってしまた
ろくに理解してないのに3万も使ってる…
ここは日記帳じゃありません。
783 :
nobodyさん:2007/04/24(火) 13:13:05 ID:aF4+VraQ
教えてください。
掲示板の書き込みとか、何かの新規登録受付フォームとかで
ランダムな文字をノイズの入った画像にして、
その文字を入力しないと登録できないようになってる仕掛けが
ありますが、あの仕掛け、フリーなCGI(PHP含む)でどこかに
ありませんでしょうか?
784 :
虚弱PHP:2007/04/24(火) 13:13:22 ID:???
785 :
虚弱PHP:2007/04/24(火) 13:17:42 ID:???
>>783 あれ、CAPTCHAというやつなので、検索してみてください。
そういう名前でしたか、Thx >785
CAPTCHAでガチャピソさんを思い出すのって俺だけ?
788 :
nobodyさん:2007/04/24(火) 14:20:59 ID:43dSuuSB
[環境]
PHP4.4.6
RHL7.3
[行ったこと]
canpen.php
1. フォームからテキストエリア内に文字列を入力。$messages
2. POSTで飛ばす。$messages
canpen_write.php
3. $messagesの取得
$messages = str_replace("<", "<", "$messages");
$messages = str_replace(">", ">", "$messages");
$messages = str_replace("\t", "", "$messages");
$messages = nl2br($messages);
4. $messages出力。確認表示。
※改行されて、<>←も表示されている。
5. 「書き込み」ボタンにて、POSTで飛ばす。hiddenで。
→自ページ canpen_write.php
6. $messages取得。
ここで、再度、「3.」でやった文字列の整形をするんでしょうか?
で、再度整形して、$messagesを出力すると、
$messages:<ccc><br />
<ddd><br />のように出力されます。
はじめにフォームで、入力した文字列は、<ccc>エンターキー<ddd>エンターキー
です。(です。は、入力していません。)
<br />が出力されるので、これを出力させない方法があれば、
どなたかご教授して頂けないでしょうか?宜しくお願い致します。m(..)m
789 :
nobodyさん:2007/04/24(火) 14:23:57 ID:43dSuuSB
[省略されましたので、省略された部分です。]
※改行されて、<>←も表示されている。
5. 「書き込み」ボタンにて、POSTで飛ばす。hiddenで。
→自ページ canpen_write.php
6. $messages取得。
ここで、再度、「3.」でやった文字列の整形をするんでしょうか?
で、再度整形して、$messagesを出力すると、
$messages:<ccc><br />
<ddd><br />のように出力されます。
はじめにフォームで、入力した文字列は、<ccc>エンターキー<ddd>エンターキー
です。(です。は、入力していません。)
<br />が出力されるので、これを出力させない方法があれば、
どなたかご教授して頂けないでしょうか?宜しくお願い致します。m(..)m
>>788 とりあえずstr_replaceじゃなく、htmlspecialcharsを使っとけ
タイミングとしては、「送信されたとき」というよりむしろ「表示するとき」にhtmlspecialcharsを呼び出せば間違いは減る
792 :
nobodyさん:2007/04/24(火) 14:58:28 ID:43dSuuSB
>>791 791さん、ありがとうございます。
htmlspecialcharsで出力すると、&lt; &gt;と、そのまま&lt:&gt;
がブラウザに出力されます。実体参照に戻されて、<>等と出力されるはずが、
そのまま出力されます。
htmlspecialcharsを使用するときは、何か特別な設定がいるんでしょうか?
m(..)m
793 :
nobodyさん:2007/04/24(火) 15:01:19 ID:43dSuuSB
もう少し色々調べて、トライ&エラーしてみます。
レン鯖でインストールしてくれないモジュールとかを使いたいときどうすればいいですか?
>>788 確認画面でhiddenに埋め込む方にはnl2brをかけなくていい
(表示する方だけにnl2brを行えばいい)
796 :
nobodyさん:2007/04/24(火) 15:22:16 ID:43dSuuSB
>>791 Success!!です。成功しました。とても助かりました。
今やっている部分を頭の中にまとめて理解したいと思います。
791さんのおかげで、モヤモヤが今スッキリしていきそうです。
(まだ、完全に理解していないw)パターンで覚えるよりも、仕組みをキッチリ
理解していこうと思います。速レスでとても感謝しています。
ありがとうございました。m(__)m
799 :
603:2007/04/24(火) 16:41:18 ID:YIKrD66n
>>677 あれから調べてみましたが、
session_regenerate_id(true) の処理が問題のようでした
この処理を外したところ、問題は出なくなりました
また、session_regenerate_id() ではセッションが切れるということはありませんでした
今、セッションデータを file ではなく、
データベース上で処理する仕組みを作って検証しています
session_set_save_handler は使用せず、Cookie, GET, POST の値を拾って
独自に PDO クラスでセッション ID や有効期限を保存、更新処理等するものなのですが、
こちらは複雑な処理に関わらず、更新ボタン猛連射でもまったく問題が出ていません
session_regenerate_id(true) は、古いセッションデータファイルを
自動で削除してくれるとはいえ、DB コンテナに比べて
大したオーバーヘッドになるとも思えないし、
セッションファイルが多数存在するのなら別ですが、検証上では 5 ファイル程度です
推測ですが、session_regenerate_id(true) の処理には
連続リロードに耐えられない問題があるのではと思います
アクセスが多いサイトのセッションの仕組みに利用すると問題がでるかもしれません
800 :
虚弱PHP:2007/04/24(火) 16:47:27 ID:???
>>799 俺も推測でしかないけど、
session_regenerate_id()で問題出ないなら、
余計にsession_regenerate_id(true)の問題じゃなくて、
ブラウザ側の問題だと思うよ。
ブラウザがサーバーから返されたCookieヘッダを解釈・設定する前に
F5押したとかじゃないかなぁと思うんだけど。
802 :
nobodyさん:2007/04/24(火) 16:57:34 ID:EJNwdirJ
>>794 適当な場所にライブラリパスを通して、そこにファイルコピーすればいい
>>797 なにやってるのかさっぱり分かんねぇorz
>>801 ちょwさっきと比べてデカくなってないかw
806 :
603:2007/04/24(火) 17:17:38 ID:YIKrD66n
>>800 どうも
>>603 で書いたとおり、HTTP リクエスト、レスポンス上で見る限りは
Cookie, Set-Cookie は切り替わったものを正しくやり取りしてるんですよね
今、独自 DB コンテナの方で session_regenerate_id(true) の相当の機能を
作成中でして、これで連続リロードしてみれば
ブラウザ側動作の影響かどうかある程度はっきりすると思います
ブラウザ側動作の影響なら、連続リロードした人間だけの問題になりそうなので
この件は無視できそうです
>>801 わらた
807 :
797:2007/04/24(火) 17:58:01 ID:???
作ったのは間違いで参考元のを書き直しただけでした
>>803俺も何やってるのかさっぱりわからん
おっきワロスwwwwwwwwww
おっきのソースがないぞ
810 :
虚弱PHP:2007/04/24(火) 18:45:46 ID:???
>>806 うむむ。そうかぁ。
save_handlerがmmだと切れるって話があったような気がするんだけど、
今回はfilesみたいだしね。
811 :
603:2007/04/24(火) 19:25:37 ID:YIKrD66n
>>810 そちらのご推測通りでした
独自DB コンテナで再現した session_regenerate_id(true) 相当の機能でも同じ症状がでました
再度検証してみたところ、致命的な見落としがありまして
例えば連続で素早く 10 回程更新ボタンを押すと、サーバ側には
本来残らないはずのセッションデータファイルが 5 〜 10 近く残っているが、
HTTP Header キャプチャ(Live HTTP header on Firefox) 上では
3 つ程のやり取りしか残っていない・・
試しに ieHTTPHeader on IE で調べたら、Firefox で行った同じ速度でリロードしても
すべてキャプチャしてくるし、セッション自体も切れないみたい
Opera では Firefox 程ではないけどまれに切れる
ちなみに、GET だけに制限してみたセッション ID のやりとり(この場合はリンクの猛連射)
でも同じ症状がでるので、HTTP レスポンス自体を受け取ってないんでしょうね
どうもありがとうございました
// 正直、JavaScript や CSS 以外でブラウザ別の動作に悩まされるとは思わなかった
おっきのソースください
813 :
虚弱PHP:2007/04/24(火) 19:55:52 ID:???
>>811 ご苦労様。
検証は参考になりました。なるほど。
814 :
nobodyさん:2007/04/24(火) 22:36:23 ID:DXOCGV6O
質問させてください
長ったらしいテキストファイルの1部分のみ情報を取り込みたいのですが、
そういうのに適した関数等はありますでしょうか。
fopen
fopenよりfileやfile_get_contentsのほうがいいんじゃね
youtubeなどのフラッシュをRimoやニコのように動画データだけ抜き出したいのですが、
それらの仕組み、もしくはそのシステムが構築できてあるソースのURLなど知っている人がいましたら教えていただけないでしょうか。
それどっかのブログで検証してたよ
URLはシラネ
まず自分で調べたのか?調べたなら成果も書く
youtubeは解析されまくってるから仕様なんかはすぐ出てきそうだけど
821 :
nobodyさん:2007/04/25(水) 01:01:57 ID:j8qAcKjI
.htaccessで文字コードをEUCにしたんだが
PHP見るとデフォルトでSJISになる
PHPに記述しないでデフォルトをEUCにできないかな
>>821 んならばHTMLのMETAタグでどうだ!
824 :
nobodyさん:2007/04/25(水) 01:52:00 ID:j8qAcKjI
そういうのって保存時のエンコード指定してないからじゃない?
タグに記述してもPHPで指定しても文字化けすることもあるしね
EmEditorとかで保存時のエンコードをEUCに設定すればいいと思ふ
未確認
というかShift-JISで保存してるからだろ
827 :
nobodyさん:2007/04/25(水) 02:01:56 ID:j8qAcKjI
EUCで保存してあります…
じゃあおまえのPHPがSJIS好きだってことで諦めろ、おまえのせいじゃない。
じゃPHPのmb_string関連
830 :
nobodyさん:2007/04/25(水) 02:10:20 ID:j8qAcKjI
EUCで設定してあります…
EUCに嫌われたかな
mb_stringで指定しても無理だって話じゃないの?
それ前提で話してるのかと思ったけど
ブラウザのキャッシュが残ってるとかじゃないの?
そういうレベルの質問にしか見えない。
>>821 .htaccessの設定と
<html>のmetaタグの設定出しなさい。
834 :
nobodyさん:2007/04/25(水) 02:28:29 ID:j8qAcKjI
キャッシュでしたさーせん
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
┌
\
>
/
(^^)/ なんてこったい!
/\ ̄\
/ \ \
< | |
\ / ̄ ̄\
ゝ / \
/ >
/ /
/ /
いつも思うんだが、文字化けも一人で解決できない様な奴は
output_bufferingをonなんかにするなって話じゃない?
PHP初めて3年半たつがoutput_bufferingなんて一度もonにしたことねぇ
テスト環境や自鯖なら好き勝手にphp.iniいじれるけどな。
キャッシュ残していたのが原因で同じように一日潰したことがあったが、
そのときからキャッシュは1MBまでに制限してる。
更新する度にページをダウンロードするようには設定できないのかな。
レン鯖でも.htaccessで設定すりゃいいじゃんoutput_bufferingくらい
全てのレン鯖でhtaccessが使えると思ったら大間違いだぜ。
環境に左右されないようなプログラムを目指せよ
なんでいきなりoutput_bufferingの話になってんだ?
おっきが output_buffering を利用している模様
なんにしろブラウザのキャッシュにoutput_bufferingは関係ないな。
レン鯖でいきなり開発とかすんなよ!
848 :
nobodyさん:2007/04/25(水) 09:36:06 ID:Hk5iwc7F
GETを使って動的ページを作ろうと思うのですが
たとえば
index.php?hoge=0001
というページは存在するので、問題なく表示します。しかし
index.php?hoge=0002
や
index.php?hoge=
などのような場合今だと白紙?のページになります。
そこを、404や403を返すようにしたいのですが、どうすれば出来るのでしょうか?
header()
>>848 if (存在しないページ) {
header( レスポンスコード404を送る );
// 以下自分の好きな404のページ
?>
<html>
404 そんなページはないでやんす
</html>
<?php
exit;
}
?>
851 :
nobodyさん:2007/04/25(水) 12:54:42 ID:j8qAcKjI
852 :
nobodyさん:2007/04/25(水) 12:54:59 ID:1/ImtFz/
現在はカテゴリ一覧とか広告バナーとか
アクセスする度にDBから読み込まれている状態になっているのですが、
これだとサーバに負荷がかかって、ページの読み込みが遅くなる気がします。
こういう、あまり変動しないデータを読み込んで表示させる場合、
どういう風なソースを書けばいいのでしょうか?
>>852 DB 側を更新したらその HTML 吐き出すとか
ページ丸ごとが難しければ、部分部分を吐いて include とか
854 :
852:2007/04/25(水) 13:42:18 ID:???
>>853 例えばこういう流れでしょうか?
DBにカテゴリを登録(編集)→静的なHTMLページを作成
→そのHTMLを公開するサイトで読み込み
現在は、カテゴリ一覧の部分は別ファイルにしてincludeするようにしています。
そのファイル内にwhile($row = mysql_fetch_array($res)){ 〜 }
みたいなソースを書いて、カテゴリ一覧を表示していました。
ちょっとHTMLの件は試してみます。ありがとうございました。
>>854 静的なHTMLページを表示すればいいじゃん
てかコードで説明するな。口で説明しろ。
die('ぬるぽ');
861 :
nobodyさん:2007/04/25(水) 15:35:07 ID:dvPhqtzS
863 :
862:2007/04/25(水) 15:55:24 ID:???
form.php
<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
864 :
862:2007/04/25(水) 15:56:44 ID:???
<html>
<head>
<title>Sample01</title>
</head>
<body>
sample.php
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
意味不明
日本語勉強してから来いカス
866 :
862:2007/04/25(水) 15:58:15 ID:???
× なんですか
○ なんでですか
>>864にコピーミスあり
o...rz
訂正します
――――――――――――――――――――
Sample01.php
<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
自分で組んだ方が早いとおもうお
原因が知りたい
870 :
862:2007/04/25(水) 16:21:14 ID:???
間違いがあってわかりづらいと思うので、最初から書き直します。
871 :
870:2007/04/25(水) 16:23:37 ID:???
http://plog.pya.jp/program/php/lesson07/sample01.html このURL内のコーディングなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なぜでしょうか?
以下のような具合
――――――――――――――――
一行掲示板
書き込む内容を入力してください。
----------------------------------------
|入力フォーム| |書込|
----------------------------------------
記事NO.0:
----------------------------------------
記事NO.1:
----------------------------------------
記事NO.2:
----------------------------------------
いや、もう書かないで
873 :
870:2007/04/25(水) 16:24:47 ID:???
まずはサイト例(ちゃんと動く)form.php
<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。<hr>
<form name="form" action="./sample01.php" method="POST">
<input name="body" type="text" size="40">
<input type="submit" value="書込"><hr>
</form>
<?php
$data = file("./data.txt");
for($i=0; $i<sizeof($data); $i++){
print "記事NO.${i}:${data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
874 :
870:2007/04/25(水) 16:25:35 ID:???
サイト例 sample.php
<?php
$body = $_REQUEST["body"];
$body = $body."\n";
?><html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
echo "書き込み完了<br>",
"<a href=\"./form.php\">戻る</a>";
?>
</body>
</html>
死ね
876 :
870:2007/04/25(水) 16:26:47 ID:???
書き換え版 form.php
<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
877 :
870:2007/04/25(水) 16:27:30 ID:???
書き換え版 sample.php
<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
そんなのも一人でどうにか出来ない様な奴が
スマートとかほざくなよw
段階踏んでから言えカスが
881 :
nobodyさん:2007/04/25(水) 16:43:37 ID:j8qAcKjI
PHP4でsimplexmlが使えないのですが
代わりになる関数はありませんか?
PHP5を使えばいいんじゃね?
883 :
nobodyさん:2007/04/25(水) 16:47:18 ID:j8qAcKjI
さくら鯖が5対応してないんで
>>883 え、さくらってそうなんだ。
古い鯖利用だからか?
wing2.jpならいけるよ。
初年2000円で独自ドメイン運用可
翌年以降1500円。
885 :
nobodyさん:2007/04/25(水) 16:55:40 ID:j8qAcKjI
co.jpてどの鯖でも使えたっけ?
>>885 DNSサーバー側で飛ばす先のIPアドレス設定さえすれば関係あんめな。
ドメインが取れるか自体は別問題
>>884 なにこれ安すぎ
信用はできないけど面白いな
890 :
nobodyさん:2007/04/25(水) 18:08:21 ID:bcYDhRpq
PHPでajax使うのはどのライブラリがベストですか?
>>883 5を独自コンパイルすればいいじゃん。簡単だよ。
どうせcgi版なんだから。
>>887 スタッフ募集ここんとこずっとかけてないか?
激安サーバーで給料安いから、最近言われるITの3K化の代表格みたいなんじゃないか?
ただ、あなたも知らなかったように、まだマイナーだから負荷は軽いんじゃない?
メールもやってるが、メジャーサイトへのメアド登録でフリーメアドとして弾かれなかった。
それだけマイナー。
隠れてないででてこいや
かもんムムキチい
とぼけるな
ドメスレ荒らしのキチガイ
謝れや!
絶対に許さない
必ず見つけ出してやる
ムムキチ隠れるな
k
899 :
nobodyさん:2007/04/25(水) 21:00:09 ID:IXKwV2TH
質問させてください。
以下のようなPHPスクリプトを作りたいと思ってます。
@PHPで、あるシェルスクリプトを実行させる。
Aシェルスクリプトを実行すると、データテキストが作成される。
Bデータテキストの内容をPHPで取り込み、データの内容によって、
OK / NG等の判定を行う。
この手順のAで作成されるデータテキストなのですが、
実際には作成されるまでに、20〜30秒ほど時間が掛かります。
直ぐにBを行うと、不完全な状態のデータテキストを読んでしまうのですが、
PHPで『ファイルが生成されるまで待つ』といった命令や関数等はありますでしょうか。
ご助言よろしくお願いいたします。
SLEEP 30
>>900 サンクスです!
そんな便利な命令があるとは知らなかったです
902 :
nobodyさん:2007/04/25(水) 21:34:24 ID:Hk5iwc7F
>>899 Aが完了するまでシェルスクリプト自身がブロックするように、
(シェルスクリプト内でバックグラウンドプロセスを立ち上げないように、)
シェルスクリプトを工夫するほうが簡単確実。
無理ならPHPでsleepとfile_existsをループ。
904 :
nobodyさん:2007/04/25(水) 22:15:02 ID:ooT1ogQP
質問スマソ
PEARのXML_Tree使って
拡張子がphpのXMLファイル作ったんだが
そこからどうやって読み込めばいいのかわからんorz
$xml = new DOMDocument;
$xml->load('collection.php');
$xsl = new DOMDocument;
$xsl->load('collection.xsl');
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
905 :
nobodyさん:2007/04/25(水) 22:22:46 ID:ooT1ogQP
何か日本語変な気がする・・・
つまりは拡張子phpのファイルをどうやってxmlに変換するかってことです。
906 :
nobodyさん:2007/04/25(水) 23:31:08 ID:ckD8GJA9
907 :
nobodyさん:2007/04/25(水) 23:42:59 ID:0HmGKMgn
2つのファイルを同時に編集・削除するときその関係性も保証するためにトランザクションみたいな機能ってありませんか?
やっぱり最大限安全な順番を採るしかないんですか?
>>904 httpから書けばできると思います、強引で汚いですけど
>>906 confでモジュール読み込んでしてます?
あと[L]の前に半角スペース要りませんでしたっけ
またRewriteRule のfirst argは.htaccessのpathですが
second arg はベースが指定してない場合はdocument root からのpathです
> あと[L]の前に半角スペース要りませんでしたっけ
確認した所必要ないですね
>>906 404になるとすれば、多分
^/( ←ここ
^( ←こうだろうな
ccessって、俺が間違えたから皆使うのか!?
それとも、もともと皆がccessって使ってるのか!?
関数を忘れてしまったので質問させてください
文字列を、指定した文字で区切り、配列に分割する
関数の名前は何でしたでしょうか・・・
916 :
906:2007/04/26(木) 00:47:15 ID:b54Zcwq0
みなさんありがとうございます!
/ が余計だったようです・・・
詰まってて簡単な事も見逃していたようです。
表示されてわかったのですが、[L]の前には半角スペースは必要でした。
ない場合は、表示された「hello[L]になるようです。
ほんとうに助かりました!
>>916 まずはエラーログチェックの癖をつける。
918 :
848:2007/04/26(木) 01:54:55 ID:fEqE9au7
>>850 すみません。
考えてみたのですが、まったく理解できません・・・
もう少し噛み砕いて教えていただけないでしょうか?
0001の部分は0001.phpとしてファイルを作ってあります。
例の0002は現在作成していないファイルということになります。
index.php?hoge=0001 はすでに0001.phpとしてファイルがあるのでそのまま表示
index.php?hoge=0002や中途半端なアドレスの
index.php?hoge=や
index.php
は403 404を表示したいのです。
何度もすみませんがよろしくお願いします。
919 :
nobodyさん:2007/04/26(木) 02:00:58 ID:g6GrkNsN
>>918 すごく噛み砕いてソースの具体例まで出してくれたのが850だと思うが。
理解できないならどこが理解できないか言ってくれないとこっちも全く理解できないんですよ。
923 :
848:2007/04/26(木) 02:25:03 ID:fEqE9au7
みなさんレスありがとうございます。
やってみようとしたところ、鯖の緊急メンテに入ってしまいました。
数時間のメンテらしいのでメンテ明けにやってみます。
だからレン鯖で開発するなと何度言えば
925 :
848:2007/04/26(木) 04:34:29 ID:fEqE9au7
自宅でやってみました。
現在index.php には
<?php
$GET_PAGE=$_GET['hoge'];
if(@fopen($GET_PAGE.".php", "r")){
include($GET_PAGE.".php");
}else{
header("HTTP/1.0 404 Not Found", true, 404);
?>
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<p>404 Not Found</p>
</body>
</html>
<?php
exit;
}
としたところ、
index.php?hoge=0001では正常に
index.php?hoge=0002やindex.php?ho などでは
そのアドレスのままページには「404 Not Found」と書かれたページが表示されるようになりました。
ここでさらに踏み込んで、現在自前でエラードキュメントをphpで作っておいてあるのですが、
index.php?hoge=0002やindex.php?ho の場合にそのエラードキュメントで表示するようには出来ないものでしょうか?
上記htmlの部分へ同じようなhtmlを書けばいいのかもしれませんが、せっかくなのでphpで表示したいのですが。
また上の書き方で何か問題はないでしょうか?fopenしてるので、閉じないといけないかもしれませんしもっとスマートは方法とかありそうですが。
ここはお前のサポセンじゃないんだよ
まずは自分で調べるなり考えろ
あとレン鯖で実験するな
> if(@fopen($GET_PAGE.".php", "r")){
このままでも閉じる必要は無い
is_file使えば見やすい
> エラードキュメントで表示するようには出来ないものでしょうか
.htaccess 404
927 :
848:2007/04/26(木) 05:09:41 ID:fEqE9au7
>>926 レスありがとう。
fopenで閉じなくても問題ないと言うことですのでそのままにしておきます。
またis_fileの方がファイルがそうではないかと言う事みたいなので、is_fileに変更しました。
現在の.htaccessでは、
ErrorDocument 401 /library/error/error.php
ErrorDocument 403 /library/error/error.php
ErrorDocument 404 /library/error/error.php
ErrorDocument 500 /library/error/error.php
としていますが、それでも、
index.php?hoge=0002やindex.php?hogeなのでは、
うまくerror.phpが動作してないようです。
>>927 }else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
か
}else{
Location("
http://自分のサーバの存在しないURL");
exit;
}
929 :
848:2007/04/26(木) 07:28:15 ID:fEqE9au7
>>928 何度も申し訳ありません。
}else{
header("HTTP/1.0 404 Not Found", true, 404);
require "/library/error/error.php";
exit;
}
を試したところ、200が自前error.phpから戻ってきました。また
Location("
http://自分のサーバの存在しないURL");
だと問題なくエラー表示されるのですが、アドレスが変わってしまうで自分がやりたいこととは、
少し外れてしまいます。
あまりスレを消費するのもあれなので、この辺で失礼します。
かなり勉強になりました。
レスを頂いた方ありがとうございました!
もうgdgd
931 :
nobodyさん:2007/04/26(木) 12:15:12 ID:MU7hy9Ys
phpを勉強しています。
参考にしている本のサンプルコードに
while($false !== ($entry = $d->$read())) {
(中略)
}
というコードが出てきました。
これはどういう意味でしょうか?
特に$d->$read()この「->」の意味が分かりません。
どなたかお分かりになるかた、教えてください。
∧∧
/⌒ヽ) now loading ...
i三 ∪
〜三 |
(/~∪
三三
三三
三三
三三
三三
>>931 点プレに入ってたかもshirenが
アロー演算子でググれ
>>931 そういう時は「php 演算子」でぐぐろう
どうでもいい雑談だけど
==より===で比較するほうが場合によっては処理が早くなったりするのかね
かおそー
>>935 場合によってはというより普通に速い。
気にするほどでもないけど。
936は誤爆
939 :
931:2007/04/26(木) 13:00:30 ID:MU7hy9Ys
>933,934
レスありがとうございます。
クラス内で使用することがあることは知っていたのですが、
そのサンプルコードの中には1度もクラスが書かれていません。
ぐぐったところグローバル変数にも関係するようなのですが、
筋としてはそちらっぽいです。
もう少し調べます。ありがとうございます。
おぶじぇくと
雑談2
===による厳密な比較ってPHPだけ?
他の言語では==で厳密に比較されるが一般的なのかしら
つ型
比較されないと思う
以前booleanとNumberで===のベンチした時は10%程度速くなった記憶
10%とか処理速度が正確に分かるのか?
正確かと言われれば正確じゃない
xdebugかmicrotime()使かって10秒程度のループを数回やった記憶
雑談に乗じて超初心者レベルな質問が飛び交うのがこのスレの醍醐味ですね。
お前みたいに無知だけど口を出さずにはいられない輩もな
いやいや私は真面目に回答してますよ。
あまりにレベルの低い回答者のせいで質問者が不憫に思えた時なんか。
あ、雑談という体じゃなくてちゃんとした質問時の話ですよ。
うざぃ
くだスレだからいいんじゃね?
953 :
nobodyさん:2007/04/26(木) 14:50:00 ID:UlKx/JN4
すいませんXML_Treeについて教えてください。
こんな感じに書いてあるんですがXMLの要素が全部でちゃいます。
どうすれば指定した部分だけ取得できるんでしょうか?
print_rしても配列がいっぱいでてきてさっぱりです。
<?php
require_once'XML_Tree/Tree.php';
$xml_filename = "
http://map.simpleapi.net/stationapi?x=139.8025&y=35.6657";
$xml_str = join("",file($xml_filename)); // xml_str にファイルを読み込み
$tree =& new XML_Tree();
$root =& $tree->getTreeFromString($xml_str);
if(XML_Tree::isError($root)) {
//エラー処理
}
echo $tree->get();
?>
すみません、質問させてください。
1つのphpがPOSTメソッドを受信するプログラムだとします。
別のphpがPOSTメソッドを送信するプログラムだとします。
この時、<form action>で送信した場合画面が切り替わってしまうのですが、
これを遷移させずにデータを送信する方法は何か有りませんでしょうか…
指定した部分だけ取得ってどこにも指定してないじゃん
957 :
954:2007/04/26(木) 15:05:23 ID:6G3Gma2a
>>957 画面切り替えが嫌ならJavaScript使え
って、JavaScript全然知らんがな
959 :
nobodyさん:2007/04/26(木) 15:11:33 ID:UlKx/JN4
>>956 指定の仕方がわからないんです…。
phpspotのサンプルでは
$children = $root->children;
って感じになってるんですが
$childrenをprint_rしても配列がいっぱいで…
>>959 子ノード以下のオブジェクトが返ってきてるんじゃないの?
見たい部分をそのまま指定すりゃいいじゃん。
マニュアルは読んだの?
962 :
nobodyさん:2007/04/26(木) 15:31:18 ID:UlKx/JN4
>>961 xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => [name] => [namespaces] =>
Array ( ) [error] => [use_cdata_section] => [lineno] => 3 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] =>
Array ( [0] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] =>
[name] => [namespaces] => Array ( ) [error] => [use_cdata_section] => [lineno] => 4 ) [1] => xml_tree_node Object ( [attributes] => Array ( ) [children] => Array ( ) [content] => 越中島駅 [name] =>.....
こんな感じに返ってきてるわけですがこれの「越中島駅」を出す場合
$content = $root->content;
print_r($content);
ってやってみたんですが上手くいかず…
マニュアルを読んでもさっぱりなんです。
せめて改行マークでも入れてくれよ・・・
964 :
nobodyさん:2007/04/26(木) 15:37:35 ID:UlKx/JN4
>>962 マニュアル読んでどこが分からなかったの?
967 :
954:2007/04/26(木) 15:43:20 ID:6G3Gma2a
968 :
nobodyさん:2007/04/26(木) 15:45:36 ID:UlKx/JN4
969 :
954:2007/04/26(木) 15:51:27 ID:6G3Gma2a
自己解決しました。
普通にtest_key=test_value&test_key2=test_value2という風にやればいいんですね。
970 :
nobodyさん:2007/04/26(木) 15:53:19 ID:8BvigEmE
他サイトのフォームの値を取得することは不可能ですか?
例えばあるサイトのあるフォームの
textの値を取得したいのですが.
宜しくお願い致します。
>>968 $root->children[1]->children[1]->content
みたいにアクセスするっぽいけど。
そんな事より、公式に書いてある通りXML_SerializerかPHP5でSimpleXMLとか使ったほうがいいよ。
>>968 XMLツリーを取得したらあとは自分で指定するだけ。
PHPの基本的な配列とオブジェクト操作の話。
SimpleXMLやらのサンプルにも載ってる。
>>970 他サイトを読み込んでformのvalueのところ取ってくればok
973 :
nobodyさん:2007/04/26(木) 16:05:14 ID:UlKx/JN4
>>971 >>972 なるほど…こうすれば良かったんですか。
ありがとうございます。
SimpleXMLはサーバーがphp4しか対応してないのでできませんでした、
XML_Serializerをちょっと見てみます。
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
>php4しか対応してないので
今時どこの糞サーバだ
976 :
nobodyさん:2007/04/26(木) 16:10:17 ID:UlKx/JN4
>>974 …失礼しました。
レンタルなので自分の環境ではphp4しか使えません。
今時PHP4なんかやってらんないしサーバ変えたら?
978 :
nobodyさん:2007/04/26(木) 16:16:09 ID:g6GrkNsN
さくら鯖がphp4だからおわってるな
980 :
nobodyさん:2007/04/26(木) 16:21:34 ID:UlKx/JN4
>>977 会社で指定されたサーバなので変更ができないんです…。
なんとか使い方わかりました。
ありがとうございました。
エンジニアの端くれならサーバが糞だってことちゃんと説明して説得しる
そう簡単にバージョンアップってできないもんなの?
それとも単に要望が出てないから放置してるか、ただめんどくさいだけなのか
バージョンアップできないことは無いだろうけど、古い方がまだメンテされてるのに
運用中のサーバのソフトのメジャーバージョンをホイホイ上げる管理者も珍しいんじゃないか。
運用中のサーバなら、難しいだろうな
バグフィックスならともかく、メジャーバージョンをあげるのは
躊躇するだろう
jじゃずっと4のままで大変だね
メンテ終了がアナウンスされれば移行するだろ
sakuraなら自分でインスコすればいいじゃん
>>983 変えるとしても、準備期間で最低でも告知から1ヶ月ぐらいは無理だろうね。
Xreaとかそこら辺の安い鯖借りておけば良いと思うよ。