【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カテゴリ)の各スレで
0405nobodyさん
2008/08/02(土) 23:21:45ID:???簡単にデータベース作る方法ご存知じゃないですか?
MYSQLとCSVは苦手でして(汗
0407nobodyさん
2008/08/02(土) 23:31:18ID:WZrTSOfFJavaの場合には、その実装クラス(implementクラスでも可)に、
pubicのフィールド(クラスの定義済み定数)を書いて、
受け手側は、必ずそのクラスのpublicのフィールを用いて、
必要な値を取得します。
phpのスレでこういうこというのは何ですが、
public、privateの区別もないですし、このようなフィールを定義する
機構もありません。生のリテラルで書けばいいのでしょうけど、
これだと、関数の実装が変更された場合にエラーが見つけにくくなります。
# Javaであれば、このような場合、コンパイルエラーが発生して実行できません。
phpはjavaにはない便利な関数があって、生産性が良く気軽に使いやすいですが、
コンパイル時にではなく実行時にしかエラーが分かるのがphpのセキュリティーの点からマイナスです。
0408nobodyさん
2008/08/02(土) 23:34:27ID:???あるよ
0409nobodyさん
2008/08/02(土) 23:38:43ID:WZrTSOfFねぇよ。
0410nobodyさん
2008/08/02(土) 23:47:28ID:???0411nobodyさん
2008/08/03(日) 01:56:20ID:???0412nobodyさん
2008/08/03(日) 02:10:26ID:???そいつは紛れも無いばかもんだろ
0413nobodyさん
2008/08/03(日) 12:44:27ID:HcRMDkB6下記のように記録されているbus_data.csvを住所1に含まれている都道府県を検出しながら、
ken_code.csvの都道府県JISコード昇順にソートして同じファイルに書き換えるプログラムを考えてるのですが
ソート処理に悩んでいます。何か良い方法はないでしょうか。
@bus_data.csv
会社名,住所1,住所2,電話番号
会社名,住所1,住所2,電話番号
会社名,住所1,住所2,電話番号
・
・
・
(約1000件)
Aken_code.csv
北海道
青森県
・
・
・
0415nobodyさん
2008/08/03(日) 13:01:09ID:HcRMDkB6MySQLも勉強しようとはおもってますが、
まだPHPも覚えたてで、どうPHPとDBをリンクさせるのかすらわからないので・・・。
0417nobodyさん
2008/08/03(日) 13:06:00ID:???0419nobodyさん
2008/08/03(日) 14:58:32ID:Tg76RJl4function room_member_check(){
if(false == ($memfile = fopen($mem_file, "r"))){
Func_Error("関数_".__LINE__); ←なぜかこの処理に入ってしまう
}
(以下略)
}
----------------------------------
room_member_check(); ←これをコメント化するとプログラムは正常に動く
if(false == ($memfile = fopen($mem_file, "r+"))){
Func_Error("部屋_".__LINE__);
}
$flg = 0;
(以下略)
大体このような感じなのです。
どちらの関数も同じフォルダにあるので、ファイル名の参照エラーは考えられません。
ヒントか何かないでしょうか?
0420nobodyさん
2008/08/03(日) 15:02:40ID:???0422nobodyさん
2008/08/03(日) 17:24:00ID:HcRMDkB6都道府県名ごとで47回ループさせて別の配列に移し替えていくという方法ですか?
考えはわかるんですが、具体的にどうコーディングすればいいのかということと、
PHPはソート関数が充実してるようですが
どれが一番シンプルに処理できる関数なのかというお考えをお聞かせいただけるとありがたいです。
>>417
出来ればcsvの受け取りからソートまでを自動化したいと思ってるので。。。
>>418
usortというのも目に付いたのですが、本件についてはarray_multisortが良いというご回答とお見受けしますが、
具体的にどんなコーディングをすればよいか教えていただけると助かります。
・・・ネットのリファレンスで見たんですが、私の浅い知識ではまだ理解するに至らず・・・せっかくのご回答に申し訳ございません。
0423nobodyさん
2008/08/03(日) 17:54:35ID:???うん、そういうこと。
俺、PHP詳しくないんだ、ごめんw
0425nobodyさん
2008/08/03(日) 18:46:12ID:RMhtfFUN0426nobodyさん
2008/08/03(日) 18:47:13ID:???0427nobodyさん
2008/08/03(日) 18:48:58ID:RMhtfFUN0428nobodyさん
2008/08/03(日) 19:22:24ID:rj+Na7p9文字化けがするので下記のコードにmb_convert_encodingを付け足したいのですが
どのように書いてあげればいいのでしょうか?
アドバイスお願いします。(馬鹿すぎる自分が嫌になる)
<?php
echo file_get_contents('http://●●●');
?>
mb_convert_encoding($str, "UTF-8", "auto");
0429nobodyさん
2008/08/03(日) 19:24:01ID:???0430nobodyさん
2008/08/03(日) 19:30:40ID:???0431nobodyさん
2008/08/03(日) 19:31:07ID:???暇つぶしに作ってみたお
array_multisort()じゃなくてusort()つかったお
<pre>
<?php
// 比較関数
function compare($a, $b) {
global $ken_code;
$address_a = $a[1];
$address_b = $b[1];
$ken_a = get_ken($address_a);
$ken_b = get_ken($address_b);
$order_a = array_search($ken_a, $ken_code);
$order_b = array_search($ken_b, $ken_code);
if ($order_a > $order_b) {
return 1;
} else if ($order_a < $order_b) {
return -1;
} else {
return strcmp($address_a, $address_b);
}
}
// 住所から都道府県名を取り出す
function get_ken($address) {
if (preg_match('/^(.+?(?:都|道|府|県))/', $address, $m)) {
return $m[1];
}
}
0432431
2008/08/03(日) 19:32:00ID:???// bus_data.csv読み込み
$bus_data = array();
if (($f = fopen('bus_data.csv', 'r')) !== false) {
while ($row = fgetcsv($f)) {
$bus_data[] = $row;
}
fclose($f);
}
// print_r($bus_data);
// ken_code.csv読み込み
$ken_code = file('ken_code.csv');
$ken_code = array_map('rtrim', $ken_code);
// print_r($ken_code);
usort($bus_data, 'compare');
print_r($bus_data);
0433431
2008/08/03(日) 19:37:05ID:???コード中の全角スペースは半角スペースに置換してね
0434nobodyさん
2008/08/03(日) 19:51:02ID:???<?php
echo mb_convert_encoding(file_get_contents('http://●●●'), "UTF-8", "auto");
?>
0435nobodyさん
2008/08/03(日) 20:02:41ID:rj+Na7p9神様有難うございます!
助かりました
0436nobodyさん
2008/08/03(日) 20:04:37ID:???0437nobodyさん
2008/08/03(日) 22:39:25ID:???0438nobodyさん
2008/08/04(月) 00:13:33ID:7EUTIW4hマジックメソッドのような働きをしますが、こういったものは他にもあるのでしょうか?
まとまった情報を知っていましたら教えてください。
0439nobodyさん
2008/08/04(月) 00:21:07ID:???0440nobodyさん
2008/08/04(月) 01:49:48ID:ePD1nbCV誰か俺みたいな馬鹿でも分かるように書いてあるサイト知らないですか?
0441nobodyさん
2008/08/04(月) 01:54:22ID:???http://www.php.net/manual/ja/install.php
0442nobodyさん
2008/08/04(月) 02:38:54ID:LmctVFYq0443nobodyさん
2008/08/04(月) 02:40:58ID:LmctVFYqなにがわからないんだい?
そのかわりけつ毛はないものとおもえ
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:???という質問が来るからうんざりしてんだよ。
■ このスレッドは過去ログ倉庫に格納されています