【PHP】下らねぇ質問はここに書き込みやがれ 71
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/07/17(木) 19:42:52ID:DVaNTncwPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0444440
2008/08/04(月) 02:43:03ID:ePD1nbCVダウンロードしたあとの設定です
httpdをメモ帳で変えるところが多分違うのかと思います
0445nobodyさん
2008/08/04(月) 02:45:51ID:LmctVFYqwindowsか。
ちゃんとphp.iniの設定とかしたのか?
httpdconfの設定は?
なんか情報が少なすぎてわけわからんよ
0446nobodyさん
2008/08/04(月) 02:48:49ID:???:. / _ ___ 、\
/ / i \ \\ :.
:. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ
,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
:. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
|i .i l :N_, -弋 \弌弋ナ:}:.:}
:. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な…
.| :メヽ.', `ozZ} izN。ハ::{ なんでですか?
:. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :.
| :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんでPHPの設定
ができないんですか?
:. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:.
/ ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
:. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:.
/ / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ',
./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ',
{ /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ
ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧|
ヽ! )人 : : :人 : : : / \! :.
" ヽ : : : : :/イ{ :.ノ: : : :.\ :.
:. \__///: :\______/: : : : : : : ヽ
/ //: : :|;|: : : : : : i: : : __: : : : ',
:. / 、 {;{ |;| . : i/. : : : : : :|
0447nobodyさん
2008/08/04(月) 02:51:18ID:ePD1nbCV一応PHP Laboの通りにやりました
PHPは新しいのをダウンロードしました
iniの設定はフォルダを作ったり メモ帳でいじりました
httpdconfはたくさんいじってなにがどうなったのかわからない状況です
0448nobodyさん
2008/08/04(月) 02:56:27ID:???外部にポート開いてなければセキュ的にも問題はない
自分で解決できないようなやつは難しいことをしては駄目だ
0449440
2008/08/04(月) 02:59:04ID:tFXIqt4S昨日XAMPPをやっていたら違うスレで
一個ずつやった方が楽って言われて…
最終的にはPHPを公開したいですが…とりあえず勉強がしたいです
0450nobodyさん
2008/08/04(月) 03:14:05ID:???>一個ずつやった方が楽って言われて…
サーバソフトに熟知してるやつでもどっちが楽かといわれたらXAMPPだ
なぜなら必要なパッケージは一通り入ってるし特別設定しなくてもすぐ使える
サーバ設定など細かなカスタマイズが必要になるのは
サーバを外部に公開したりセキュリティが絡んでくる場合のみ
PHPを開発するだけならXAMPPでいい
>最終的にはPHPを公開したいですが…
作ったスクリプトをレンタルサーバで使ったり公開したいってことでしょ?
上でいってるのは自分のパソコンをサーバとして公開する(自宅サーバ)っていうことだから別の話ね
0451440
2008/08/04(月) 03:17:57ID:tFXIqt4Sみなさん親切にありがとうございました
とりあえずまたXAMPPを入れてみたいと思います
出来なかったらまたここに来ます
ありがとうございました
0452nobodyさん
2008/08/04(月) 03:21:22ID:???XAMPPは諸悪の根源。
0453nobodyさん
2008/08/04(月) 03:23:06ID:???あんま混乱させるなよ
とりあえず勉強がしたいっていうんだからXAMPPでいいじゃないか
よく使ったりする必要なオプションはあらかじめついてるんだし
鯖屋になるわけじゃねえんだから
0454nobodyさん
2008/08/04(月) 03:26:52ID:???0456nobodyさん
2008/08/04(月) 03:28:57ID:???慣れてる人が手早く環境を作るために使うぐらいがいい。
それにXAMPPでうまくいかないというのは逆にノーマルな手法のほうが
向いてる可能性もあるしな。
全体の構成を頭で覚えるか体で覚えるかの違いだ。
0457440
2008/08/04(月) 03:29:17ID:tFXIqt4Sサイトを見てやっているんですが
とりあえず>>450さんの言うように
プログラムを作ってから セキュリティ面をどうするか考えたいと思います
あまり仕組みがわかってないので間違っているかもしれませんが
0458nobodyさん
2008/08/04(月) 03:30:19ID:???0459440
2008/08/04(月) 03:31:34ID:tFXIqt4S正直頭で覚えるよりも体で覚えていくタイプなので
XAMPPは何か後から後悔しそうな気がしそう
うーん もう一度だけPHPの環境設定してみます
0460nobodyさん
2008/08/04(月) 03:39:20ID:???0461450
2008/08/04(月) 03:51:25ID:???俺は業務脳なので業務開発者としての意見をいったまでなので
結局趣味開発なら自分の考えどおりやるのが一番だと思うよ
というわけでぜひ設定頑張ってくれ
0462440
2008/08/04(月) 03:54:32ID:tFXIqt4S0463nobodyさん
2008/08/04(月) 04:32:10ID:???プログラムのセキュリティーとサーバーのセキュリティーを混同してるんだろうな
前者はXSSやSQLインジェクション対策などのプログラムを書くテクニックのようなもので
後者はサーバーを外部に開くときクラッカーからサーバーを守る防衛策のことだな
で、PHPを開発するのにWebサーバーやらメールサーバーやらDBサーバーが必要になるから
それらをインストールするわけだが
それらはローカル上で自分の作ったPHPの動作確認をするためだけに使うのであって
外部に自分のパソコンから情報を発信(サーバーの外部公開を)するわけではないので
サーバーのセキュリティーは一般的にはサーバーが外部接続のために使うポートを閉じるだけで良い
ルーターはさんでるなら最初から全部閉じてるはずなので問題ないと思うが
設定で先すすまなくて挫折じゃ本末転倒なので俺もXAMPPのようなミドルウェア薦めとくよ
毛嫌いしてるのは何でなのか不思議だなw
だって結局中身はApacheやPHPで同じなのに(httpd.confやphp.iniもあるしもちろん設定もできる)
専用コントロールパネルまで入ってて管理もしやすい
そこらへんのサイトのhttpd.confやphp.iniの中身をコピペしてるようじゃどっちみち同じこと
0465nobodyさん
2008/08/04(月) 05:17:57ID:???文法学びたいとかなら、XAMPPで十分事足りる。
0466nobodyさん
2008/08/04(月) 06:50:54ID:???種別はなんでも良いんですが、XOOPSはでかくてしり込みしてます
0467nobodyさん
2008/08/04(月) 06:55:01ID:???ていうかフレームワークを使った開発手法覚えとけ
0468nobodyさん
2008/08/04(月) 08:07:09ID:3goeRlYF0469nobodyさん
2008/08/04(月) 09:01:48ID:???フレームワークといってもいくつか有ると思いますが何が良いと思いますか?
今はCakePHPを使ってるところだから、この辺でも良いんですかね・・
綺麗なコードとか設計とか、良く判らなくて
0470nobodyさん
2008/08/04(月) 09:22:22ID:???クエリーへ名前形式のパラメータを渡したいのですが、
クエリー側でパラメータの適用箇所が複数あると
期待した動作をしないのです。
申し訳ないのですが解決する方法を教えて頂けたら嬉しいです。
例えば以下のように :p1 を複数箇所に書くと
結果は 0 件になってしまいます。
select * from x where x.a = :p1 and x.b = :p1
MySQL のクエリーログでは、
パラメータが疑問符形式 ? になっていたため、
改めて :p1 に加え :p2 を用意し、
select * from x where x.a = :p1 and x.b = :p2
とすると期待通りに動作します。
※予め PHP 側からは同じ値を :p1 と :p2 にバインドします。
名前形式パラメータを複数箇所に適用することはできないのでしょうか?
PHP 側の設定あるいは MySQL 側の設定で対応できるのでしょうか?
0471nobodyさん
2008/08/04(月) 09:24:37ID:???同様の他言語のフレームワークでもある程度応用が利く
他言語の理解がまったくなくてもある程度作れてしまうだろう
設計も勝手にフレームワークがやってくれてる
めんどくさいことを考えるの嫌いで特段こだわりがないなら
フレームワークの勉強をするといい
言語として綺麗なコードを書きたいとかきちんとした設計をしたいというのなら
Webの世界を一旦出て完全なオブジェクト指向言語で勉強をするといい
0472nobodyさん
2008/08/04(月) 09:31:08ID:???ありがとうございます
>言語として綺麗なコードを書きたいとかきちんとした設計をしたい
この辺りが近いです
フレームワークの勉強は続けるつもりなんですが、
アプリやフレームワークを作れるようになりたくて
良いお手本が欲しいと思って質問しました
>>467,468,471
ありがとうございました
0473nobodyさん
2008/08/04(月) 09:32:55ID:???予告inのXSSつかれた不正攻撃ってどうやってやられたんですか?
URLの投稿のところでエスケープミスがあったとのことですが
投稿といったらPOSTだろうし
掲示板とかでGETで不正なパラメータ渡されたURLが貼り付けてあったわけじゃないですよね?
実際に自分のサイトに脆弱性がないか自分で攻撃をして確かめてみたいけど
そんな技量がないので不安です
XSSでどういうコードをどう投稿して実験してみるとか
攻撃確認の手法みたいなことをどなたか説明していただけませんか?
0474nobodyさん
2008/08/04(月) 10:29:59ID:???投稿したURL 「http://www.yahoo.co.jp」
<a href="http://www.yahoo.co.jp">http://www.yahoo.co.jp</a>
・後
投稿したURL 「http://www.yahoo.co.jp\" onclick=\"実行させたいプログラム\"」
<a href="http://www.yahoo.co.jp" onclick="実行させたいプログラム">http://www.yahoo.co.jp\" onclick=\"実行させたいプログラム</a>
基本的にググレカスだけど。
実行させたいプログラムにpostで送信するように書けば良い。
0475nobodyさん
2008/08/04(月) 11:12:21ID:???0476nobodyさん
2008/08/04(月) 11:33:13ID:???0477nobodyさん
2008/08/04(月) 11:39:25ID:???たしかFirefox使ってたと思うが
ブラウザ固定じゃなくてたまにIEでも見てたりするから
そのときどっちのブラウザ使ってたかは覚えてない・・・
犯行予告されてませんように
0478nobodyさん
2008/08/04(月) 11:56:59ID:???ちゃんとぐぐって調べたりしてわからないところを
聞かないと、おれもXAMPPはお勧めしない。
きちんとひとつずつインスコして設定すべしだな。
windowsなら簡単だと思うのだが
0479nobodyさん
2008/08/04(月) 12:34:36ID:???そういう人達はtarballからコンパイルして使ってんだろうか
0480nobodyさん
2008/08/04(月) 12:42:03ID:???0481nobodyさん
2008/08/04(月) 12:45:24ID:???0482nobodyさん
2008/08/04(月) 12:55:08ID:???0483nobodyさん
2008/08/04(月) 13:22:32ID:???そういう問題解決の方法はプログラム書いていく上でも同じだぞ。
0484nobodyさん
2008/08/04(月) 14:27:44ID:???昔もあったけど、xamppをanhttpdとかと勘違いしてるんだろーなw
0485nobodyさん
2008/08/04(月) 14:35:42ID:???0486nobodyさん
2008/08/04(月) 14:55:24ID:???ローカルはxamppで公開鯖は半手動。
0487nobodyさん
2008/08/04(月) 15:09:02ID:???本番環境に合わせられるってのがあるかな
xamppの方がバージョンが新しい場合が多いので、うっかり本番環境の
バージョンで使えないコードを書いたりすることがたまにある
0488nobodyさん
2008/08/04(月) 15:10:42ID:???上のほうでも出てるがお前らは何をやりたいんだ?
プログラムの開発か?それとも鯖屋か?
0490nobodyさん
2008/08/04(月) 15:15:00ID:???0491nobodyさん
2008/08/04(月) 15:15:47ID:???0493nobodyさん
2008/08/04(月) 15:27:47ID:???1からの場合
最低限アパッチ、PHP、MYSQLの3つのサイトのURL探しから
xampp
xamppのURLのみ
頭の良い奴ならこの時点でわかるよな
winならxamppで構築するのが最速
どっちでやっても時間が変わらないというド素人は、どっちの環境も作ったこと無いかリアル池沼
細かい鯖設定を覚えたければ他のスレへw
0494nobodyさん
2008/08/04(月) 15:46:51ID:???0495nobodyさん
2008/08/04(月) 15:47:59ID:???0496nobodyさん
2008/08/04(月) 15:48:27ID:???井の中の蛙ってやつか。
0497nobodyさん
2008/08/04(月) 15:50:15ID:???0499nobodyさん
2008/08/04(月) 16:25:07ID:???0500nobodyさん
2008/08/04(月) 16:27:03ID:???0501nobodyさん
2008/08/04(月) 16:28:51ID:???どれくらい要るんだろうな。
動作させるサーバ環境なんて、
最終的に動かす環境のバージョンとの
互換性を満足できれば
正直なんでもいいしな。
0502nobodyさん
2008/08/04(月) 16:31:11ID:???何か問題にぶつかるたびに無駄に調べまわってなかなか先に進めないタイプ
>>497は無駄なく開発に専念できる賢いやつ
>>499はデバッガつきなら賢い
0503nobodyさん
2008/08/04(月) 16:35:48ID:???PHPだけの開発のためにPC使ってるやつのほうが稀
お前らもMMOとかWindows用のゲームとかを開発してるPCでもやるよな?
0504nobodyさん
2008/08/04(月) 16:41:51ID:???という質問が来るからうんざりしてんだよ。
0507nobodyさん
2008/08/04(月) 16:47:45ID:???0508nobodyさん
2008/08/04(月) 16:48:14ID:???0510nobodyさん
2008/08/04(月) 16:49:48ID:???なんでですか?
0512nobodyさん
2008/08/04(月) 17:08:58ID:???$text = split('<!--メイン-->' ,$text);
$text[0] = 'あいうえお';
$text[1] = 'かきくけこ';
としたいのですが、うまく動作しません。
splitのとこの書き方が悪いと思うのですが、どう書けばよいのでしょうか?
0514nobodyさん
2008/08/04(月) 17:24:10ID:???mb_split はどう?
0517nobodyさん
2008/08/04(月) 18:29:34ID:???$text = split(quotemeta('<!--メイン-->') ,$text);
0518512
2008/08/04(月) 18:50:00ID:???穴があったら入りたいです・・・
$textの中の文字コードとソースの文字コードが違っただけでした><
1度確認したつもりだったのに
お騒がせしました
0519nobodyさん
2008/08/04(月) 19:28:54ID:???0521nobodyさん
2008/08/04(月) 20:53:22ID:???(д`* )
(⊃⌒*⌒⊂)
/__ノωヽ__)
0522nobodyさん
2008/08/04(月) 22:24:24ID:mchfEoZH添え字は、どうして0からスタートしているのでしょうか?
もしかしたら、2進法の流れでしょうか?
10進法でいえば始まりは1が基本ですよね?
配列を処理する場合に、$i + 1としなければいけないなど、
生産性が著しく悪いのですが、配列回りの所作について
定義している箇所はありますか?
0523nobodyさん
2008/08/04(月) 22:34:10ID:???10進数でも2進数でも0からなのは同じだろ。
>配列を処理する場合に、$i + 1としなければいけないなど、
わからん。具体例をあげてくだちい
0525nobodyさん
2008/08/04(月) 22:38:38ID:mchfEoZHご回答ありがとうございます。
いや、現実の世界では0ではなく1から始まりますよね。
# 会員番号、出席番号、駅のホームの番号など0からスタートするなんてまれです。
その事から、業務プログラムを作ると、そのような連番処理をする場合に、
for文の中で$i + 1としてから、連番を振らなければいけないなどの
面倒な処理が出てきます。しかし配列は$array_sample[$i]のように$iです。
このような処理があちらこちらに出現すると、バグの元にもなりますし、
$iを使っているのか$jを使っているのか訳が分からなくなります。
0526nobodyさん
2008/08/04(月) 22:41:40ID:???0527nobodyさん
2008/08/04(月) 22:42:06ID:t2yFOOOp言語によってはデフォでは配列の添え字が1から始まったりする
だからphpでは単にそう決まってるだけだよ
まぁ最初に作った奴は0からのが便利って思ったってだけだろ
0529nobodyさん
2008/08/04(月) 22:49:06ID:3goeRlYF>このような処理があちらこちらに出現すると、バグの元にもなりますし、
変数の使い方をしっかり決めておけばそんな混乱は起こらない。
あと出席番号=添字にするのなら、[0]を使わず[1]から振っていけばいい。
0530nobodyさん
2008/08/04(月) 22:51:19ID:mchfEoZH> まぁ最初に作った奴は0からのが便利って思ったってだけだろ
最終的にはそういうことですね。
1からではなく0から使うことのメリットを逆に知りたいくらいですですが・・・。
現実の世界とかけ離れたivory towerの中で作られたという印象を受けます。
phpの新しいバージョンで1から始まるように、願うしかないのでしょうね。
0531nobodyさん
2008/08/04(月) 22:53:43ID:???0532nobodyさん
2008/08/04(月) 22:56:05ID:???それは自然数だね。
>for文の中で$i + 1としてから
$iがいくつから始まるとか言ってくれないとわからん。
$iを1から初めて$array_sample[$i-1]みたいに使うこともあるだろ。
>$iを使っているのか$jを使っているのか訳が分からなくなります。
それは別のことの気がする。
0535nobodyさん
2008/08/04(月) 23:04:04ID:???0536nobodyさん
2008/08/04(月) 23:13:50ID:???どーぞ
どーぞ
0537nobodyさん
2008/08/04(月) 23:16:12ID:mchfEoZH貴重なご意見を頂きましてありがとうございました。
phpがC言語を影響を受けるのは必然的な流れで、
よく考えずに実装をしてしまったというのが妥当な推測でしょうか。
例えば、配列$company_memberを処理する際に、
for ($i = 0; $i < count($company_member); $i++)
とするのは見慣れてしまっているので、むしろ自然の形かもしれませんが、
これを日本語風に翻訳すれば、「0より大きく最大数未満で処理しろ」ということですが、
for ($i = 1; $i <= count($company_member); $i++)
として、「1番目から最大数になるまで処理しろ」というのが自然のリアルの思考です。
自然の思考に従って、後者の書き方で実装すると良さそうに見えますが、
phpの関数の言語仕様が0で始まっている以上、phpの標準関数を使う際に色々と支障が出てきます。
また、チームでやっているので、0から始まったり1から始まったりでは、
認識のズレが生じて、それも又バグの元です。
これを回避する方法はなく、結局郷に入りては郷に従え、悪法も法なりで
# 結局、0から始まることのメリットを言われる方がいないのもその裏付けだと思いますが
phpの言語思想の中で実装をしなければならないというのが結論と理解しました。
ありがとうございました。
0538nobodyさん
2008/08/04(月) 23:19:41ID:???\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんなエサで俺様がクマ――!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;;
0539nobodyさん
2008/08/04(月) 23:19:58ID:???0541nobodyさん
2008/08/04(月) 23:23:14ID:???混在しているとややこしいね。
以下のxは配列の先頭とか20とか33とかと仮定する。
xから5番目といったら$array_sample[x+5-1]なんだよな。
これはxと同じ位置のことをxから1番目と数えるからなんだろうな。
つまり1から数えるのはデメリットもあるってこと。
>よく考えずに実装をしてしまったというのが妥当な推測でしょうか。
そうは思わない。
>また、チームでやっているので、0から始まったり1から始まったりでは、
>認識のズレが生じて、それも又バグの元です。
配列に関係なく認識のずれがある時点でダメだろ。
># 結局、0から始まることのメリットを言われる方がいないのもその裏付けだと思いますが
なんだその視野の狭い即決は。
0542nobodyさん
2008/08/04(月) 23:23:59ID:???添え字が0から始まる言語のすべてに当てはまることを
さもphpだけに当てはまるように書いているのには
なかなか興味深いものがあるな
0543nobodyさん
2008/08/04(月) 23:24:38ID:???詳細設計しろ。
添え字が何を意味するのか曖昧なまま開発したらバグって当たり前だ。
0を使いたくなければ使わなきゃいい。
0を使わない方向でチーム内で意思統一すればいい。
■ このスレッドは過去ログ倉庫に格納されています