トップページphp
1001コメント318KB

【PHP】下らねぇ質問はここに書き込みやがれ 71

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/07/17(木) 19:42:52ID:DVaNTncw
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、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カテゴリ)の各スレで
0390nobodyさん2008/08/01(金) 23:23:03ID:???
>>389
PHPの連想配列には順番あるじゃん...
0391夜中に質問すいません2008/08/02(土) 03:58:45ID:F4PgkzNb
サーバーが自分の鯖内ファイルすらfile_get_contentsしか使えません
file_get_contentsって下記のように書いて取得してみましたがうまくいきませんでした。
どのように書いてあげればいいでしょうか?
yahooにしてますが、URLは自分のサイト内になります。

<?php file_get_contents('http://www.yahoo.co.jp'); ?>
0392nobodyさん2008/08/02(土) 04:08:44ID:???
echo
0393夜中に質問すいません2008/08/02(土) 04:17:14ID:???
>>392
こんな夜中に有難うございましたm(_ _"m)ペコリ
0394nobodyさん2008/08/02(土) 05:53:14ID:Fpbct2Dc
若干このスレとは違うのかも知れませんが、
ブログ内検索のような検索ルーチンを作りたいと思っています。
こういう事が出来るプラグインや作り方の参考になるサイトはありませんか?
0395nobodyさん2008/08/02(土) 11:54:38ID:???
>>394
ブログっていっても色々あるだろ
おおざっぱすぎるんだよ
ていうか多くのブログでデフォルトで検索機能はついてるはずだが
ないならNamazuでも入れときゃいいんじゃね?
0396nobodyさん2008/08/02(土) 17:51:03ID:???
最近、Namazu使ってるところ見たこと無いな
あれ正直使えないんじゃないかと思うよ
0397nobodyさん2008/08/02(土) 18:21:43ID:QOTyBDTF
394もうちょっとkwsk

0398nobodyさん2008/08/02(土) 18:27:10ID:???
googleでいいじゃん
0399 ◆gw9Vq5kGF2 2008/08/02(土) 19:03:15ID:37jLYgzM
連続でデータを送信するプログラムを作っています。
for ($rand=0; $rand<10; $rand++){
$data .= $rand
}while($i<$count){
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp) {
error("接続できません<br>\n");
0400 ◆gw9Vq5kGF2 2008/08/02(土) 19:04:55ID:37jLYgzM
} else {
// 読み書きのタイムアウト設定
fwrite($fp, "GET" . $url . " HTTP/1.0\r\n");
// ヘッダの終了を通知
fwrite($fp, "\r\n");
// 内容の送信
fwrite($fp, $data);
// 内容の終了を通知
fwrite($fp, "\r\n");
while (!feof($fp) && $he != "\r\n"){
$d= fgets($fp, 512);
}
// ソケットがタイムアウトしたかどうか調べる
$stat = socket_get_status($fp);
if ($stat["timed_out"]) { echo "timeout"; }
// ソケットを閉じる
fclose ($fp);
$i++;
$rand++;
}
}

だいたいはこんな感じで、実際にデータを送信してみました

一回目は1で2回目は2......
と、ループの回数だけデータを送信したいのですが、レスポンスには、
555555555
と、5が9回帰ってきます。
これを123456789
とレスポンスがかえってくるようにすすにはどうしたらよいですか?
0401nobodyさん2008/08/02(土) 19:34:24ID:xYLkDBTE
$data ってのは何がはいってるんだい。インクリメントしてるのは$iと$randのようだが
0402nobodyさん2008/08/02(土) 20:01:05ID:lDM3zReI
ユーザーフォルダのパスを取得する方法を教えて下さい
ユーザーフォルダ php だとphpはurlにばっか引っかかってphp関係無いページもヒットするから使えない
0403nobodyさん2008/08/02(土) 20:02:20ID:???
無理
0404nobodyさん2008/08/02(土) 23:20:28ID:WZrTSOfF
関数から複数の"種類"の値を返却したいのですが、
よい方法はないでしょうか?

phpの標準関数をみていると、
このような場合、連想配列に入れて返却して、
受け取り側で、連想配列のキーを元にデータを取り出しています。

ただ、これは受け手側がキーの名前が分からないといけないし、
あまりにも無骨過ぎるので、もう少しスマートな方法がないかと思っています。
# そもそもphpの言語仕様としてjavaにあるようなクラスのpublicフィールドがないために、
# このようなことがおこるのだと思いますが、phpにもそれに相当する機構が欲しいですね。

よろしくおねがいします。
0405nobodyさん2008/08/02(土) 23:21:45ID:???
こんにちわ
簡単にデータベース作る方法ご存知じゃないですか?
MYSQLとCSVは苦手でして(汗
0406nobodyさん2008/08/02(土) 23:22:46ID:???
>>404
え、javaだとどうやんの?
>>405
sqliteは?
0407nobodyさん2008/08/02(土) 23:31:18ID:WZrTSOfF
>>406
Javaの場合には、その実装クラス(implementクラスでも可)に、
pubicのフィールド(クラスの定義済み定数)を書いて、
受け手側は、必ずそのクラスのpublicのフィールを用いて、
必要な値を取得します。

phpのスレでこういうこというのは何ですが、
public、privateの区別もないですし、このようなフィールを定義する
機構もありません。生のリテラルで書けばいいのでしょうけど、
これだと、関数の実装が変更された場合にエラーが見つけにくくなります。
# Javaであれば、このような場合、コンパイルエラーが発生して実行できません。

phpはjavaにはない便利な関数があって、生産性が良く気軽に使いやすいですが、
コンパイル時にではなく実行時にしかエラーが分かるのがphpのセキュリティーの点からマイナスです。
0408nobodyさん2008/08/02(土) 23:34:27ID:???
>public、privateの区別もないですし、
あるよ
0409nobodyさん2008/08/02(土) 23:38:43ID:WZrTSOfF
>>408
ねぇよ。
0410nobodyさん2008/08/02(土) 23:47:28ID:???
いつまでもphp4使ってんじゃねえよ
0411nobodyさん2008/08/03(日) 01:56:20ID:???
テスト環境でやれって話ではないのか
0412nobodyさん2008/08/03(日) 02:10:26ID:???
サポートが5日後には終了するphp4をテスト環境で使用しているとしたら、
そいつは紛れも無いばかもんだろ
0413nobodyさん2008/08/03(日) 12:44:27ID:HcRMDkB6
php初めて2週間の初心者です。
下記のように記録されているbus_data.csvを住所1に含まれている都道府県を検出しながら、
ken_code.csvの都道府県JISコード昇順にソートして同じファイルに書き換えるプログラムを考えてるのですが
ソート処理に悩んでいます。何か良い方法はないでしょうか。

@bus_data.csv
会社名,住所1,住所2,電話番号
会社名,住所1,住所2,電話番号
会社名,住所1,住所2,電話番号
   ・
   ・
   ・
(約1000件)

Aken_code.csv
北海道
青森県
  ・
  ・
  ・
0414nobodyさん2008/08/03(日) 12:53:03ID:???
>>413
俺なら楽するためにDBにぶち込む
0415nobodyさん2008/08/03(日) 13:01:09ID:HcRMDkB6
>>414
MySQLも勉強しようとはおもってますが、
まだPHPも覚えたてで、どうPHPとDBをリンクさせるのかすらわからないので・・・。

0416nobodyさん2008/08/03(日) 13:03:18ID:???
>>413
単に北海道から順に検索していけばいいんじゃね?
0417nobodyさん2008/08/03(日) 13:06:00ID:???
というか普通にExcelでcsv開いてソートかければ、、というのは無しですか
0418nobodyさん2008/08/03(日) 13:21:32ID:???
>>413
array_multisort
0419nobodyさん2008/08/03(日) 14:58:32ID:Tg76RJl4
分からない現象が起きたので質問させてください
function 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:???
room_member_check関数の中では$mem_fileは空
04214192008/08/03(日) 15:16:15ID:???
>>420
なるほど。
staticやらglobalの意味を勘違いしていたようです。
ありがとうございました
0422nobodyさん2008/08/03(日) 17:24:00ID:HcRMDkB6
>>416
都道府県名ごとで47回ループさせて別の配列に移し替えていくという方法ですか?
考えはわかるんですが、具体的にどうコーディングすればいいのかということと、
PHPはソート関数が充実してるようですが
どれが一番シンプルに処理できる関数なのかというお考えをお聞かせいただけるとありがたいです。

>>417
出来ればcsvの受け取りからソートまでを自動化したいと思ってるので。。。

>>418
usortというのも目に付いたのですが、本件についてはarray_multisortが良いというご回答とお見受けしますが、
具体的にどんなコーディングをすればよいか教えていただけると助かります。
・・・ネットのリファレンスで見たんですが、私の浅い知識ではまだ理解するに至らず・・・せっかくのご回答に申し訳ございません。
0423nobodyさん2008/08/03(日) 17:54:35ID:???
> 都道府県名ごとで47回ループさせて別の配列に移し替えていくという方法ですか?

うん、そういうこと。
俺、PHP詳しくないんだ、ごめんw
0424nobodyさん2008/08/03(日) 18:34:20ID:???
>>422
マニュアルにサンプルが載ってるじゃん
そんな難解なものではないから少しずつ理解していけば大丈夫
0425nobodyさん2008/08/03(日) 18:46:12ID:RMhtfFUN
関数で作ったらいくない?


0426nobodyさん2008/08/03(日) 18:47:13ID:???
いいんじゃない?
0427nobodyさん2008/08/03(日) 18:48:58ID:RMhtfFUN
もしくはDBで
0428nobodyさん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:???
この夏、一番の難解かもしれんなw
0431nobodyさん2008/08/03(日) 19:31:07ID:???
>>413
暇つぶしに作ってみたお
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];
  }
}
04324312008/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);
04334312008/08/03(日) 19:37:05ID:???
忘れてた

コード中の全角スペースは半角スペースに置換してね
0434nobodyさん2008/08/03(日) 19:51:02ID:???
>>428
<?php
echo mb_convert_encoding(file_get_contents('http://●●●'), "UTF-8", "auto");
?>
0435nobodyさん2008/08/03(日) 20:02:41ID:rj+Na7p9
>>434
神様有難うございます!
助かりました
0436nobodyさん2008/08/03(日) 20:04:37ID:???
なにがわからなかったのだろう・・・
0437nobodyさん2008/08/03(日) 22:39:25ID:???
関数の使い方だろう。
0438nobodyさん2008/08/04(月) 00:13:33ID:7EUTIW4h
Iteratorインタフェースを実装すると foreach (など?)の内部動作を変更でき、
マジックメソッドのような働きをしますが、こういったものは他にもあるのでしょうか?
まとまった情報を知っていましたら教えてください。
0439nobodyさん2008/08/04(月) 00:21:07ID:???
マヌアル
0440nobodyさん2008/08/04(月) 01:49:48ID:ePD1nbCV
一日費やしてもPHPの設定がうまくできねぇ…
誰か俺みたいな馬鹿でも分かるように書いてあるサイト知らないですか?
0441nobodyさん2008/08/04(月) 01:54:22ID:???
>>440
http://www.php.net/manual/ja/install.php
0442nobodyさん2008/08/04(月) 02:38:54ID:LmctVFYq
ちゃんと本買ってよめよ
0443nobodyさん2008/08/04(月) 02:40:58ID:LmctVFYq
440おれが教えてやるよ。
なにがわからないんだい?
そのかわりけつ毛はないものとおもえ
04444402008/08/04(月) 02:43:03ID:ePD1nbCV
>>443
ダウンロードしたあとの設定です
httpdをメモ帳で変えるところが多分違うのかと思います
0445nobodyさん2008/08/04(月) 02:45:51ID:LmctVFYq
なにでやっているの?
windowsか。
ちゃんと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
windows XPで
一応PHP Laboの通りにやりました

PHPは新しいのをダウンロードしました
iniの設定はフォルダを作ったり メモ帳でいじりました
httpdconfはたくさんいじってなにがどうなったのかわからない状況です
0448nobodyさん2008/08/04(月) 02:56:27ID:???
サーバ公開するわけじゃないんだからxamppでもいれとけ
外部にポート開いてなければセキュ的にも問題はない
自分で解決できないようなやつは難しいことをしては駄目だ
04494402008/08/04(月) 02:59:04ID:tFXIqt4S
448さん
昨日XAMPPをやっていたら違うスレで
一個ずつやった方が楽って言われて…

最終的にはPHPを公開したいですが…とりあえず勉強がしたいです
0450nobodyさん2008/08/04(月) 03:14:05ID:???
>>449
>一個ずつやった方が楽って言われて…
サーバソフトに熟知してるやつでもどっちが楽かといわれたらXAMPPだ
なぜなら必要なパッケージは一通り入ってるし特別設定しなくてもすぐ使える
サーバ設定など細かなカスタマイズが必要になるのは
サーバを外部に公開したりセキュリティが絡んでくる場合のみ
PHPを開発するだけならXAMPPでいい

>最終的にはPHPを公開したいですが…
作ったスクリプトをレンタルサーバで使ったり公開したいってことでしょ?
上でいってるのは自分のパソコンをサーバとして公開する(自宅サーバ)っていうことだから別の話ね
04514402008/08/04(月) 03:17:57ID:tFXIqt4S
そうですか…
みなさん親切にありがとうございました
とりあえずまたXAMPPを入れてみたいと思います
出来なかったらまたここに来ます
ありがとうございました
0452nobodyさん2008/08/04(月) 03:21:22ID:???
ちゃんと学びたいなら真っ当な方法で設定したほうがいいよ。
XAMPPは諸悪の根源。
0453nobodyさん2008/08/04(月) 03:23:06ID:???
>>452
あんま混乱させるなよ
とりあえず勉強がしたいっていうんだからXAMPPでいいじゃないか
よく使ったりする必要なオプションはあらかじめついてるんだし
鯖屋になるわけじゃねえんだから
0454nobodyさん2008/08/04(月) 03:26:52ID:???
なんでそう必死にXAMPPを勧めたがるの?
0455nobodyさん2008/08/04(月) 03:28:23ID:???
>>454
開発者と鯖屋は別だから

なんでそう必死に1個ずつにこだわるの?
0456nobodyさん2008/08/04(月) 03:28:57ID:???
俺も初学者にXAMPPは薦めたくない。
慣れてる人が手早く環境を作るために使うぐらいがいい。

それにXAMPPでうまくいかないというのは逆にノーマルな手法のほうが
向いてる可能性もあるしな。
全体の構成を頭で覚えるか体で覚えるかの違いだ。
04574402008/08/04(月) 03:29:17ID:tFXIqt4S
とりあえず本を買ってもperlのときみたいに妥協しそうなんで
サイトを見てやっているんですが
とりあえず>>450さんの言うように
プログラムを作ってから セキュリティ面をどうするか考えたいと思います
あまり仕組みがわかってないので間違っているかもしれませんが
0458nobodyさん2008/08/04(月) 03:30:19ID:???
あまりの手軽さに感動しちゃって、この感動を他の人にも与えたいから
04594402008/08/04(月) 03:31:34ID:tFXIqt4S
>>456さん
正直頭で覚えるよりも体で覚えていくタイプなので
XAMPPは何か後から後悔しそうな気がしそう

うーん もう一度だけPHPの環境設定してみます
0460nobodyさん2008/08/04(月) 03:39:20ID:???
XAMPPなんて使うと何の応用力も発展性も無い低脳プログラマができるだけ
04614502008/08/04(月) 03:51:25ID:???
>>459
俺は業務脳なので業務開発者としての意見をいったまでなので
結局趣味開発なら自分の考えどおりやるのが一番だと思うよ
というわけでぜひ設定頑張ってくれ
04624402008/08/04(月) 03:54:32ID:tFXIqt4S
わざわざありがとです
0463nobodyさん2008/08/04(月) 04:32:10ID:???
>プログラムを作ってから セキュリティ面をどうするか考えたいと思います
プログラムのセキュリティーとサーバーのセキュリティーを混同してるんだろうな
前者はXSSやSQLインジェクション対策などのプログラムを書くテクニックのようなもので
後者はサーバーを外部に開くときクラッカーからサーバーを守る防衛策のことだな
で、PHPを開発するのにWebサーバーやらメールサーバーやらDBサーバーが必要になるから
それらをインストールするわけだが
それらはローカル上で自分の作ったPHPの動作確認をするためだけに使うのであって
外部に自分のパソコンから情報を発信(サーバーの外部公開を)するわけではないので
サーバーのセキュリティーは一般的にはサーバーが外部接続のために使うポートを閉じるだけで良い
ルーターはさんでるなら最初から全部閉じてるはずなので問題ないと思うが


設定で先すすまなくて挫折じゃ本末転倒なので俺もXAMPPのようなミドルウェア薦めとくよ
毛嫌いしてるのは何でなのか不思議だなw
だって結局中身はApacheやPHPで同じなのに(httpd.confやphp.iniもあるしもちろん設定もできる)
専用コントロールパネルまで入ってて管理もしやすい
そこらへんのサイトのhttpd.confやphp.iniの中身をコピペしてるようじゃどっちみち同じこと
0464nobodyさん2008/08/04(月) 04:50:11ID:???
>>440
レンタルサーバで開発マジお勧め
0465nobodyさん2008/08/04(月) 05:17:57ID:???
最初にXAMPP使って、慣れて細かいことするようになったら、個別で入れればいいじゃん。
文法学びたいとかなら、XAMPPで十分事足りる。
0466nobodyさん2008/08/04(月) 06:50:54ID:???
これは読んどけ!ってなお勧めのコードは無いですか
種別はなんでも良いんですが、XOOPSはでかくてしり込みしてます
0467nobodyさん2008/08/04(月) 06:55:01ID:???
フレームワークのソースでも読んどけ
ていうかフレームワークを使った開発手法覚えとけ
0468nobodyさん2008/08/04(月) 08:07:09ID:3goeRlYF
まずPHPマニュアルのサンプルソースで基本を学ぶ。
0469nobodyさん2008/08/04(月) 09:01:48ID:???
>>467
フレームワークといってもいくつか有ると思いますが何が良いと思いますか?
今はCakePHPを使ってるところだから、この辺でも良いんですかね・・
綺麗なコードとか設計とか、良く判らなくて
0470nobodyさん2008/08/04(月) 09:22:22ID:???
PHP(PDO) + MySQL について質問です。
クエリーへ名前形式のパラメータを渡したいのですが、
クエリー側でパラメータの適用箇所が複数あると
期待した動作をしないのです。
申し訳ないのですが解決する方法を教えて頂けたら嬉しいです。

例えば以下のように :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:???
CakePHPはRailsライクだから
同様の他言語のフレームワークでもある程度応用が利く
他言語の理解がまったくなくてもある程度作れてしまうだろう
設計も勝手にフレームワークがやってくれてる
めんどくさいことを考えるの嫌いで特段こだわりがないなら
フレームワークの勉強をするといい
言語として綺麗なコードを書きたいとかきちんとした設計をしたいというのなら
Webの世界を一旦出て完全なオブジェクト指向言語で勉強をするといい
0472nobodyさん2008/08/04(月) 09:31:08ID:???
>>471
ありがとうございます
>言語として綺麗なコードを書きたいとかきちんとした設計をしたい
この辺りが近いです
フレームワークの勉強は続けるつもりなんですが、
アプリやフレームワークを作れるようになりたくて
良いお手本が欲しいと思って質問しました

>>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:???
予告inに脆弱性があったのか。
0476nobodyさん2008/08/04(月) 11:33:13ID:???
ヤフートップでも見れ
0477nobodyさん2008/08/04(月) 11:39:25ID:???
3日の午前2時ごろといえば俺もちょうど見てたな・・・
たしかFirefox使ってたと思うが
ブラウザ固定じゃなくてたまにIEでも見てたりするから
そのときどっちのブラウザ使ってたかは覚えてない・・・
犯行予告されてませんように
0478nobodyさん2008/08/04(月) 11:56:59ID:???
440へ
ちゃんとぐぐって調べたりしてわからないところを
聞かないと、おれもXAMPPはお勧めしない。
きちんとひとつずつインスコして設定すべしだな。
windowsなら簡単だと思うのだが
0479nobodyさん2008/08/04(月) 12:34:36ID:???
XAMPPを嫌う人って多いんだな
そういう人達はtarballからコンパイルして使ってんだろうか
0480nobodyさん2008/08/04(月) 12:42:03ID:???
04web+php yare
0481nobodyさん2008/08/04(月) 12:45:24ID:???
元々tarballからコンパイルして使ってたからとっつきにくいんじゃなかろうか
0482nobodyさん2008/08/04(月) 12:55:08ID:???
Windowsで使うのにそんなこだわらんでもいいのになw
0483nobodyさん2008/08/04(月) 13:22:32ID:???
大した手間でも困難な作業でもないんだから面倒臭がらずにやれよ。
そういう問題解決の方法はプログラム書いていく上でも同じだぞ。
0484nobodyさん2008/08/04(月) 14:27:44ID:???
xamppと1からWAMP環境作った後の違いを教えて欲しいんだけどw

昔もあったけど、xamppをanhttpdとかと勘違いしてるんだろーなw
0485nobodyさん2008/08/04(月) 14:35:42ID:???
お前両方で作ったことあんの?ないだろ
0486nobodyさん2008/08/04(月) 14:55:24ID:???
xampp使ってる人は基本的に両方で環境構築しているだろ。
ローカルはxamppで公開鯖は半手動。
0487nobodyさん2008/08/04(月) 15:09:02ID:???
xamppを使わずに開発環境を構築するメリットの一つに各種バージョンを
本番環境に合わせられるってのがあるかな
xamppの方がバージョンが新しい場合が多いので、うっかり本番環境の
バージョンで使えないコードを書いたりすることがたまにある
0488nobodyさん2008/08/04(月) 15:10:42ID:???
開発するための環境構築に時間かけるのは馬鹿のすること
上のほうでも出てるがお前らは何をやりたいんだ?
プログラムの開発か?それとも鯖屋か?
0489nobodyさん2008/08/04(月) 15:14:59ID:???
>>485
おれ自鯖管理者なんだ。ごめんねw
■ このスレッドは過去ログ倉庫に格納されています