【PHP】下らねぇ質問はID出して書き込みやがれ 89at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 89 - 暇つぶし2ch369:nobodyさん
09/10/21 15:07:02
>>359
URLリンク(pear.php.net)
これ使えばよかったんじゃなかったっけか

370:nobodyさん
09/10/21 15:55:18 vwO/c7IH
世の中には薬を打ってる池沼どもがいるけど
そういうやつに絡まれたら刺されそうな気がするな
おまえらならこういう池沼に遭遇してこういう場面になったらどうするか教えてください

371:nobodyさん
09/10/21 16:59:33
ここレベル低くね?

372:nobodyさん
09/10/21 17:11:17
もしかしてUTF-8とUnicodの違いがわかってない人だったのかな

373:nobodyさん
09/10/21 17:11:36
うん、お前の頭並にレベル低いよ。

374:nobodyさん
09/10/21 17:30:18
煽るだけのカスよりは動くものだすやつのほうがよほどマシ

375:nobodyさん
09/10/21 17:30:34
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い


376:nobodyさん
09/10/21 17:31:43
こんなところで、あたかも東大の教授にでもなったかのように、
上から目線で回答する人間がウザ過ぎる。殴ってやりたい。

377:nobodyさん
09/10/21 17:34:34
>>376
東大の教授にでもなったかのようにって、どういう意味?

378:nobodyさん
09/10/21 17:34:38
見なければいいだけ

379:nobodyさん
09/10/21 17:41:05
ろくに知りもしない癖に煽るやつって何なんだ。
ここで偉そうに聞いてちゃんと答えてもらえなかったやつの逆恨みか。

380:nobodyさん
09/10/21 17:41:12
ちなみに、俺は中学校の時はクラスナンバーワンの成績で、
将来は東大に行って官僚になるんじゃないか、なんて言われていたっけ。
ちょっとwebの知識があるだけで、上から目線はやめろよ。

381:nobodyさん
09/10/21 17:50:48
もしかしてUnicodeとUTF-8が同じものだと思ってるのかな

382:370
09/10/21 18:00:05 +bbQosq3
誰かよろしくおねがいします

383:nobodyさん
09/10/21 18:14:14
どうやら可変ID使いが荒らしてるようだな
今朝シカトされたのがそんなに悔しかったのか?
かわいそうなやつめ

384:nobodyさん
09/10/21 18:14:52
ガキ臭い

385:nobodyさん
09/10/21 19:25:07 q1u7DFmE
SQLiteを使って見ようと思い簡単なプログラムを組んでテストしてみましたが1つの命令しか実行されていないようです
たとえばこのように入力するとテーブルが作られるだけで項目が追加されません
CREATE TABLE files(
id INTEGER NOT NULL PRIMARY KEY,
test1 TEXT
);
INSERT INTO up_file VALUES (NULL, 'test');
INSERT INTO up_file VALUES (NULL, 'test');
どのようにしたらいいのでしょうか

386:nobodyさん
09/10/21 19:25:11 q1u7DFmE
ソースです
<form action="<?php echo basename(__FILE__); ?>" method="post">
<textarea rows="10" cols="60" name="req"></textarea><br />
<input type="submit" />
</form>
<?php
if(isset($_POST['req'])){
  if($db = new SQLiteDatabase('sqlite.db', 0666, $sqliteerror)){
    if($result = $db->arrayQuery($_POST['req'])){
      $echo = "";
      $echo .="<table>";
      foreach($result as $array){
        $echo .= "<tr>";
        foreach($array as $key => $value){
          $echo .= "<td>(".$key.")".$value."</td>";
        }
        $echo .= "</tr>";
      }
      $echo .="</table>";
      echo $echo;
    }
    echo "<br /><pre>".$_POST['req']."</pre>";
  }else{
    var_dump($sqliteerror);
  }
}
?>

387:nobodyさん
09/10/21 19:27:32
複数行の挿入に対応してないんじゃないの?

388:nobodyさん
09/10/21 19:28:14
>>385
なんで"not NULL"指定のカラムに、NULLを入れようとしてるの?

389:nobodyさん
09/10/21 19:29:20 q1u7DFmE
>>388
SQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです

390:nobodyさん
09/10/21 19:33:03
table名が違うのでは?

391:nobodyさん
09/10/21 19:36:32 q1u7DFmE
>>387
どうやらそんな感じのようです。
>>390
編集ミスです;

392:nobodyさん
09/10/21 19:40:51
トランザクション?

393:nobodyさん
09/10/21 20:52:14
>>375
JIS規格とShift-JISくらい違う。

394:nobodyさん
09/10/21 21:04:47
>>389
> SQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです

明示するのが正攻法、
id INTEGER PRIMARY KEY AUTOINCREMENT

395:nobodyさん
09/10/21 21:11:57 q1u7DFmE
>>394
Warning: SQLiteDatabase::arrayQuery() [sqlitedatabase.arrayquery]: near "AUTOINCREMENT": syntax error in /home/httpd/***/public_html/***.php on line 25


396:nobodyさん
09/10/21 21:12:13
NULLじゃなくて、10とか20とか入れてもダメなのかな?

397:nobodyさん
09/10/21 21:14:58
SQLite2使ってる?

398:nobodyさん
09/10/21 21:19:09
>>396
直に指定でもできました
>>397
2.8.17です

399:nobodyさん
09/10/21 21:30:45
arrayQueryはひとつのSQLに対し配列を返すんだよーん

400:nobodyさん
09/10/21 21:35:18 q1u7DFmE
まじで

401:nobodyさん
09/10/21 21:35:28
てかエラー内容調べればいいじゃん、せっかく関数あるんだし。

402:nobodyさん
09/10/21 22:42:45
ログイン画面で/loginでアクセスするサイトが多いと思うんだけど
一般的にファイル名は何かな?index.php?

403:nobodyさん
09/10/21 22:50:10
mod_rewriteとかで書き換えてるんじゃない?
実態は index.php?mode=login とかまあ別に何でもいいと思うが

404:nobodyさん
09/10/21 22:59:53
>>403
へえそんなのあるんだ。ありがと

405:nobodyさん
09/10/21 23:57:48 VcPQwNyu
PHP関係の書籍でセキュリティ関係について詳しく書いてる書籍ってありませんか?
えすきゅーえるいんじぇくしょんとかせっしょんはいじゃっくとかぼーとすきゃんとか
ハッキング対策全般が分かりやすく書いてる本でおすすめがあったらお願いします。

406:nobodyさん
09/10/22 00:12:40
オライリーのPHPセキュリティとか

407:nobodyさん
09/10/22 00:13:59
つか、その程度ならネット見れば済むだろー

408:nobodyさん
09/10/22 03:53:32
ひろみちゅのサイトとか、PHP嫌いのPerl使いのサイトとか見ればたくさんあるよね

409:nobodyさん
09/10/22 04:35:57
天下のIPA様もセキュリティーのためにPHPは使わないとか言ってるしな
脆弱性が多いとかZend信用されてなさすぎだろ

410:nobodyさん
09/10/22 07:44:40
>>408
高木さんはPHPが嫌いと言うより質の低い解説本が溢れてることをよく思ってない感じがする

411:nobodyさん
09/10/22 09:45:10
>>405
本じゃないけど、大垣たんの連載全部読めば?

連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp … 技術評論社
URLリンク(gihyo.jp)

412:nobodyさん
09/10/22 10:02:24
>>411
やあ大垣君、宣伝ごくろうだな
てめえのksサイトには興味ねえんだks

今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども


413:nobodyさん
09/10/22 10:03:37
>>412

>>1

414:nobodyさん
09/10/22 10:09:25 qCOOWV7S
>>413俺に指図するな池沼
今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども

415:nobodyさん
09/10/22 10:11:32
触るなよ

416:nobodyさん
09/10/22 10:11:38
>>414

Hello world

やだ恥ずかしい

417:nobodyさん
09/10/22 10:34:31
842 名前:nobodyさん[] 投稿日:2009/10/22(木) 10:01:02 ID:h4MlR9Sn
俺様が手本見せてやるから見てろ
おい、ここのスレ見てるMのカス共、そこの池沼お前だ
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども

同じ板で大暴れですな
今日も可変ID使いは元気です

418:nobodyさん
09/10/22 10:49:29
まぁまぁ、そうカッカしないで、自分のおならの臭いを嗅いでエクスタシー感じようよ。

419:nobodyさん
09/10/22 10:59:49
>>414
ちいたん
php -r "echo 'Hello world';"

420:nobodyさん
09/10/22 11:03:31
誰も削除依頼だして無いって事は、みんなたいして害が無いと思ってるって事だろ。


421:nobodyさん
09/10/22 11:09:25
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

422:nobodyさん
09/10/22 11:16:41
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?

421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?


423:nobodyさん
09/10/22 11:17:01 GGgiWLj/
>>362,366
それです、ありがとうございました。
そういえば10進にするのにbin2decはないんですね。hexdec通せばいいだけですが。

>>367
半角で書くと<みたいに出てしまうのが問題かと思って全角に

>>372,381
はい、UnicodeとUTF-8、UTF-16などを勘違いしてました。申し訳ない。
頭カッチカチになっててUnicodeにすることに頭がいきませんでした。

424:nobodyさん
09/10/22 11:21:55
>>422
ついに発狂したな。
自分が逮捕されるかもしれないと知って、
顔面蒼白状態かwww

425:nobodyさん
09/10/22 11:29:35
と、劣等生が申しております

426:nobodyさん
09/10/22 11:33:17
いちいちネタ提供しなくていいよ

427:nobodyさん
09/10/22 11:36:42
荒らしにいちいち相手してるのも自覚のない荒らしだ。
どっちもいらん。

428:nobodyさん
09/10/22 11:39:43
自覚ないやつをいちいち相手してるやつも自覚ない荒らしだ
おまえもいらん

429:nobodyさん
09/10/22 12:38:24
ったく、脳がemptyな奴がおおいな

430:nobodyさん
09/10/22 12:44:18
この板に生息するキチガイ

正規表現くん
OCNくん
チンピラくん


431:nobodyさん
09/10/22 13:02:36
脳内がarray過ぎてアレなんだよ

432:nobodyさん
09/10/22 13:16:34
チンピラくんはともかくOCNくんはこのスレではまだ名乗り出てないだろ
ていうかこのスレであっちの話題持ってくるな
またバカが暴れる

433:nobodyさん
09/10/22 13:25:07
うるせーハゲ

434:nobodyさん
09/10/22 13:26:19
ハゲっていうならちゃんとhageろよ

435:nobodyさん
09/10/22 13:39:10 NNeAiTXH
windows 上でPHP5.3を使用してます
PHP5.3でデフォルトで使用できるようになったfinfo_buffer関数を試してみたいのですが
マニュアルに書いてあった下記のサンプルコードを試してもエラーになりました

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

エラー:PHP Fatal error: Class 'finfo' not found

どうやったらfinfo_bufferは使えるのでしょうか?

436:nobodyさん
09/10/22 13:51:39
finfo でググったら php finfo の例が出てきたのでそれクリックして一番上がこれ
URLリンク(blog.fortelab.net)

437:nobodyさん
09/10/22 13:55:06
>>435
本当に有効にしてるの?php.iniみなおしてみ

438:nobodyさん
09/10/22 14:00:09
>>435
xamppliteにはdllがなかったからxamppから持ってきたら動いたよ

439:435
09/10/22 14:05:29
php.iniでphp_fileinfo.dllを読み込ませてなかったのが原因みたいでした

440:nobodyさん
09/10/22 14:07:06
まぁそんなオチだろうとはおもった

441:nobodyさん
09/10/22 14:09:13
finfo_bufferって関数なのになんでマニュアルでは$finfo->bufferみたいにしかできないんだろう

442:nobodyさん
09/10/22 14:18:18
finfoクラスのbufferメソッドっていう意味でかいたんじゃね
クラス名も小文字で色々違和感があるクラスだな

443:nobodyさん
09/10/22 14:18:20 BC6gKUnK
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

のようなクラス?での書き方コードではなく関数としてfinfo_buffer(パラメータ)形式でのサンプルってありませんか?

444:nobodyさん
09/10/22 14:25:32
と質問してみたものの思って自分で書けました
fileinfo関数って関数だけどクラスとしても使えるってことなんですね

$file = file_get_contents("d:/test.php");
$fp =finfo_open();
$fb = finfo_buffer($fp,$file,FILEINFO_NONE);
print_r($fb);


445:nobodyさん
09/10/22 14:26:19
あぁそういうことか
関数でありクラスメソッドであるみたいな
PHP使いは随分変なことするな・・・

finfo入ってないし動作するかわからないけどマニュアル見るかぎりだと
$finfo = finfo_open(FILEINFO_MIME);
echo finfo_buffer($finfo, $_POST['script']) . "\n";
かな?

446:nobodyさん
09/10/22 14:28:43 BC6gKUnK
公式の投稿コードには何もなかったんで投稿したいんですが

↓のスパムフィルターの意味がわかりません
Answer to this simple question (SPAM challenge):
nine minus one?

447:nobodyさん
09/10/22 14:30:18
無名関数のこと?5.3からだよね。

448:nobodyさん
09/10/22 14:30:34 BC6gKUnK
urlこれです
URLリンク(www.php.net)

449:nobodyさん
09/10/22 14:32:23
>>446
英語もわからないのに投稿するのか?w
9-1はなんですか?ってきいてるだけやんw

450:nobodyさん
09/10/22 14:36:07 BC6gKUnK
英語で答え書いて先進めたけどなんかこんな文章がでて投稿できなかったorz
Your IP is listed in one of the spammers lists we use, which aren't controlled by us. More information is available at URLリンク(www.dnsbl.info)

451:nobodyさん
09/10/22 14:40:23
同じIP網使ってるやつがスパマーに踏み台にされてるか日本からのIPは弾いてるかってとこだろう

452:nobodyさん
09/10/22 14:44:21 BC6gKUnK
せっかくfinfo_bufferでphp公式サイトデビューかと思ったのにスパムフィルターにやられたぜ
誰かに手柄上げますので投稿できる方は>>444を投稿してください
改変しようが自由です

453:nobodyさん
09/10/22 15:33:39
User Contributed Notesに載せるほどのことか?

454:nobodyさん
09/10/22 15:42:45
トンチンカンなことを書いて恥かかなくてよかったねw

455:nobodyさん
09/10/22 15:45:07
どんどんやってくれ。

456:nobodyさん
09/10/22 15:51:02
奥さんが浮気していますよ。

457:nobodyさん
09/10/22 15:54:54
お母さんが泣いてるぞ

458:nobodyさん
09/10/22 16:00:52
ID:BC6gKUnKは関数と無名関数とクラスの違いから勉強しなおせ

459:nobodyさん
09/10/22 16:04:25
>>458
なんで?

460:nobodyさん
09/10/22 16:05:12
関数の話してるのに何で無名関数とクラスの違いがでるのか謎

461:nobodyさん
09/10/22 16:17:47
>>460
なんで?

462:nobodyさん
09/10/22 16:18:52
finfo_bufferと無名関数が激しく関係ない件

463:nobodyさん
09/10/22 16:21:03
あさっての方向の書き込みしてるの一人だろw

464:nobodyさん
09/10/22 17:03:57 2Qgc9o0R
s始めまして。ファイルサイズについて質問させてください。
phpで携帯サイトのフォームを作っていて、ファイルサイズが20kbです。実際表示されると8kbで、
携帯サイトのファイルサイズ上限を10kbと考えていますが、問題はないのでしょうか。

phpファイル(20kb)がサーバーで処理を行う→クライアントのブラウザに表示される(8kb)
なのでOK?

465:nobodyさん
09/10/22 17:05:49
PHPのセキュリティーについて、他の言語と比べて致命的なものとは何でしょうか?

・php.iniで余計な情報が出力されることがデフォルトの設定になっている。
・コンパイルのプロセスがないため、実行時にエラーになる場合がある。
・実装によって、クラスのプライベート・パブリックの別がなくなる。
・Apacheの特定のバージョンと組み合わせた場合に、原因不明のダウンが起こる。
・型が曖昧で、非宣言でも使えるがための論理バグが生じる。

私の認識は、これくらいですが、これらは言語の責任というよりも、
その実装責任者の技量によるところが大であること考えています。

466:nobodyさん
09/10/22 17:10:20
>>464
PHPファイルのサイズを見てどうするよ
出力するサイズを見ないと

>>465
・実装によって、クラスのプライベート・パブリックの別がなくなる
こんなことあるの?

467:nobodyさん
09/10/22 18:37:25
フレームワーク使って人居ます?

468:nobodyさん
09/10/22 18:39:52
>>466
意識するのは出力されるファイルサイズでよろしいのですね。
ご返答ありがとうございました。


469:nobodyさん
09/10/22 19:15:06
>>465
一番は、セキュリティに対しての意識が低い、間違ってる本やサイトがいっぱい出てることによる弊害じゃないかな。

470:nobodyさん
09/10/22 20:17:05
>>465
2番目と5番目はインタプリタの特徴だろ

471:nobodyさん
09/10/22 20:21:04
>>465
4番は、どのバージョンとどのバージョン?

472:nobodyさん
09/10/22 20:35:14
>>467

>>1

473:nobodyさん
09/10/22 20:41:20
>>473

>1

474:nobodyさん
09/10/22 20:44:23
PHP初心者に薦めたい本…PHPの絵本、ノンプログラマ、C++の初心者向け
って書きたくなるくらい、PHP初心者向けって信頼されてないよぁw
書籍作って販売するって、やる気さえあれば簡単に出来るものなの?

475:nobodyさん
09/10/22 20:44:55
うん

476:nobodyさん
09/10/22 20:46:57
>>474
だいたいWebでPHP初心者講座みたいの開いてにぎわってきて出版社の目にとまると
この内容に手を加えて本を出してみないか?みたいにアプローチが来る

477:nobodyさん
09/10/22 20:54:49
最近はどうだか知らないけど、
 初心者向けPHP本が出る → セッションを使ってない/使い方がおかしい、サニタイズが(ry
あたりのツッコミを入れられまくるのが一種のお約束だったぐらいに酷かった気がする。

そろそろ1冊ぐらい、無難なのがあるんだろう。いやきっとあるはず。

478:nobodyさん
09/10/22 21:18:09
言いだしっぺの法則というのを皆さんご存知か?

479:nobodyさん
09/10/22 21:23:41
本ってスカウト制が多いのか。なるほどねぇ。
じゃあ、私のサイトにスカウトが来たらロリコンの為のPHP教本とか作れるのか

480:nobodyさん
09/10/22 21:37:53
一冊だけphpじゃない技術系の本を書いたことあるけど、
原稿料が安いし、使い捨てって感じ。
本を出したという実績が欲しい人にはいいけど、
金儲けのために本を作る人はいないと思う。このご時世。

481:nobodyさん
09/10/22 22:03:03
dbに問い合わせする関数ってどうかいてる?

俺はこんな感じだけど
function select_xxxx(&$result, $condition)
{
$result = 結果;

return TRUE;
}

482:nobodyさん
09/10/22 22:03:31
本が難しければ日経あたりの特集記事でもいいだろう。
日経風に、「間違いだらけのサニタイズ」「セッション管理に失敗しない10の方法」
「フレームワーク最前線」とかタイトル並べれば通る気がする。

483:nobodyさん
09/10/22 22:04:43
なんで結果セットを参照にしてんの?

484:nobodyさん
09/10/22 22:12:50
>>481
はっきり言ってお前はセンスがない。
コンビニのアルバイトがお似合い。

485:nobodyさん
09/10/22 22:16:02
せめてクラス化しろよー

486:nobodyさん
09/10/22 22:29:11
ちょっと良い格好したいならDBアクセス部分だけクラス化。
手抜きするなら普通に必要なところでクエリ作って投げる。ていうか関数化する意味あるのかそれ。

487:nobodyさん
09/10/22 22:31:40
今時DBなんてpearを使うのが王道だろ
車輪の再開発だな

488:nobodyさん
09/10/22 22:32:34
クラス化するか、PDOを素のまま使う。
クラス化するとログが取りやすくなって便利。デコレータ・パターンとかでロガーを簡単に仕込める。

489:nobodyさん
09/10/22 22:36:33
DBMSをころころ換える可能性がないなら普通にPDO

490:nobodyさん
09/10/22 22:45:55
DBアクセスのところは一つのクラスにまとめるけど、
SQLは、ビジネスクラスの中で書いているけど、普通?
SQL毎にクラス作っていたら、膨大なクラス数になるよね?

491:nobodyさん
09/10/22 22:47:53
????

492:nobodyさん
09/10/22 22:49:30
どんなクラスを作ったんだよw

493:nobodyさん
09/10/22 22:50:38
>>490
その設計古すぎというか、駄目。
SQL文は外だしのファイルにして、一個所にまとめないと、
あっちこっちSQL文だらけになってメンテナンスに困るだろう?

494:nobodyさん
09/10/22 22:52:44
>>490
SQLとビジネスロジックがごちゃごちゃして分かりにくい。
普通はSQLは、外部ファイル化して、それをデータベースのアクセスクラスが読み込むのが標準的な設計だと思うが。

495:nobodyさん
09/10/22 22:53:40
sqlをクラスの中に書くのかよww

496:nobodyさん
09/10/22 22:59:03
で、どうやるのがスタンダード?
SQL文一個につき1関数じゃダメなの?

497:nobodyさん
09/10/22 23:00:38
とりえあずスレタイと>>1を読もうよ

498:nobodyさん
09/10/22 23:04:06
>>497
正直すみません。

設計スレみたいなのないかな?

499:nobodyさん
09/10/22 23:04:41
いい加減にしてくれないか

500:nobodyさん
09/10/22 23:05:10
何のために引数が存在してると思ってるんだ・・・・・・・

501:nobodyさん
09/10/22 23:21:24 tJpAUHQM
ソフトバンク携帯でアクセスしたときに
(以前は表示できていたのですが)見れなくなってました。
情報量が多かったのでPHPファイル内をわずかなテキストだけにしました。

が、それすら表示できませんでした。パソコンでは問題なく見れます。
エラーは下記です。

エラーが発生しました。レスポンスが不正です。WJ40164E

どうすればよいのでしょう?



502:nobodyさん
09/10/22 23:27:58
エスパーさん出番ですよ~!

503:nobodyさん
09/10/22 23:36:41
>>501
まず、 googleで ソフトバンク レスポンスが不正です  で検索しようよ。

504:nobodyさん
09/10/22 23:37:22
>>501
WJ40164E でググレカス

505:nobodyさん
09/10/22 23:39:11
>>502-504
しねks

506:nobodyさん
09/10/22 23:46:57
>>505
検索した?答えあると思うけどな。

507:nobodyさん
09/10/22 23:47:36
>>505
質問者じゃないだろ?
あと、諭すような口調をやめてくれ

508:nobodyさん
09/10/22 23:48:20
fscanfがおかしいです!

509:nobodyさん
09/10/22 23:49:42
>>508
君の頭の方がもっとおかしいです!!

510:nobodyさん
09/10/23 00:02:06 X9i7QbIU
>>503
>>504
もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。

511:nobodyさん
09/10/23 00:21:33 tmLg3YdR
上でちょこっと言ってる、SQL文とロジックを分けるのサンプルってありませんか?
検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど

512:nobodyさん
09/10/23 00:37:44 tmLg3YdR
>>510
hallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない

513:nobodyさん
09/10/23 00:56:06
>511
1. SQLだけ記述したファイルを用意する
2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
3. SQL文字列をライブラリに渡してやり、実行する。

さらに一歩進めるなら、
実行して得られた結果セットを配列に入れて返してやる

514:nobodyさん
09/10/23 00:57:43
>>513
パラメタ付の場合は? 

515:nobodyさん
09/10/23 01:15:01
  ァ  ∧_∧ ァ,、
 ,、'` ( ´∀`) ,、'`
  '`  ( ⊃ ⊂)  '`

516:nobodyさん
09/10/23 01:23:42
>>513
> 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?


517:nobodyさん
09/10/23 01:25:07
パフォーマンスや保守性はアクセス数が増えたときに考えればいいんじゃないのか?

518:nobodyさん
09/10/23 01:31:29
>>517
ある程度先の運用面を考えて実装するが良き設計者。
それにその設計方法じゃ、すぐに天井が来る。

519:nobodyさん
09/10/23 01:32:35
>>498

最近では関数はあんまり使わないと思うよー。

一番単純なのは
class DB{
function geAAA(){

}
function geBBB(){
}
}

みたいな感じじゃないかなぁ。

SQL外だしっていうのも、実はあんまりメリットないと思う。


520:nobodyさん
09/10/23 01:34:58
SQLを動かすクラスと、それを運用するクラスと分けるべきだな

521:nobodyさん
09/10/23 01:38:30 U1ZTI1ef
スレ違いかもしれないのですが、該当のスレが見つからなかった為、こちらで質問をさせてください。

現在、PHPとMySQLを組み合わせたウェブサイトを作っています。
MySQLのデータベースには2つのテーブル(テーブルA、テーブルB)があり、PHPからこの2つのテーブルを参照し、以下の様に表示させたいと考えています。

data_id (参照A)
info (参照A)
date(参照A)
sonota(参照A)
koshin_joho(参照B) // テーブルBもdata_idを持っていて、テーブルAのdata_idとマッチする時のみ、ウェブにkoshin_johoを表示

現在、phpファイルからテーブルAの方はループを使ってそれぞれのカラムを参照し、表示する事ができているのですが、
テーブルAのためにループを使っているためか、テーブルBを参照する事ができません。
どのようにすればループを使ってMySQLに登録されているデータを一度にウェブ表示させている状態で、
テーブルAとテーブルBをループ内で同時に表示する事ができるのでしょうか?

長文失礼致しました。

522:nobodyさん
09/10/23 01:38:50
>>520
結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?

俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。

523:521
09/10/23 01:39:25 U1ZTI1ef
テンプレを忘れていました。

【OS名】CentOS 5.3
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql

524:nobodyさん
09/10/23 01:44:05
あー。。>>519のDBクラスはたとえが良くないなー。

BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。

だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。


525:nobodyさん
09/10/23 01:44:26
>>521
koshin_johoも一緒に取得すればいいんじゃないの?
マッチしない場合は取得できないわけだし

526:nobodyさん
09/10/23 01:46:19
>>521
えーっと、、リレーションって知ってる?

527:nobodyさん
09/10/23 01:47:10
>>524
前半は、いいとして、

> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。

528:nobodyさん
09/10/23 01:48:25
>>522
1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス

という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。

529:521
09/10/23 01:49:08 U1ZTI1ef
現在書いているPHPのコードはこのような感じです。

$sql1 = "SELECT x FROM tableA";
$sql2 = "SELECT x FROM tableB";
$tablea = mysql_query($sql1);
$tableb = mysql_query($sql2);

while($row = mysql_fetch_array($tablea)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
}

while ($row2 = mysql_fetch_array($tableb)){
if ($row2['data_id'] eq $row['data_id']){
echo $row2['koshin_joho'];
}
}

530:nobodyさん
09/10/23 01:52:48
>>529
SELECT * FROM tableA NATURAL JOIN tableB

531:nobodyさん
09/10/23 01:53:32 U1ZTI1ef
>>525,526

ありがとうございます。
こういう事でしょうか?

$sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id";
$table = mysql_query($sql);

while($row = mysql_fetch_array($table)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
echo $row['koshin_joho'];
}

532:nobodyさん
09/10/23 01:56:08
>>527

スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()

なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。

533:nobodyさん
09/10/23 01:57:50 U1ZTI1ef
>>530
それだとkojin_johoが書かれているテーブルの内容しか表示されません。

534:nobodyさん
09/10/23 02:04:16
>>533
そこまで分かってるなら普通に結合も分かれよw ネタかよw

535:nobodyさん
09/10/23 02:09:54
>>533
外部結合でググろう

SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;

536:nobodyさん
09/10/23 02:12:01
つTECHSCORE

537:nobodyさん
09/10/23 02:25:34 U1ZTI1ef
>>534
最近MySQLをはじめたものですいません。

>>535
完璧です。ありがとうございました。

538:nobodyさん
09/10/23 05:47:37 QLP+l4hN
URLリンク(php5.seesaa.net)
このサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。
Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。
確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。
またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。
POSTとGETを同時に使う意味はありますか?

539:nobodyさん
09/10/23 06:08:57
重要なんて書いてある?
ケースバイケースで両方使う場合もあると書いているんだろう
俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある
どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている
必要になれば使えばいいだけの話だからそんな深く考えなくていいよ
一生使わないかもしれないし頻繁に使うかもしれないし
結局その人が何作ってるか・どういう風に組んでいるかによる

hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい
アカウント取得には

登録のために個人情報を入力する(Input)→
登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→
登録完了

というプロセスをとる場合が多いわけだが
Input画面で入力した情報をConfirm画面で出力するためには
Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない
そういうときに使うのがhidden
ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)

540:nobodyさん
09/10/23 07:28:00
すみません。PHPってウェブサーバー上でしか実行できませんか。
例えばコマンドプロンプトからバッチファイルはexeみたいに
実行できないでしょうか?

541:nobodyさん
09/10/23 07:35:54
>>539
なるほど 隠す用途じゃなくて見えなくさせているだけってことか。
入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。
2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。
ありがとうございました。

542:nobodyさん
09/10/23 08:45:41 pXxGvaT3
>>482
「PHPの」初心者ですが、
「セッション管理に失敗しない10の方法」を教えて頂けませんでしょうか。



543:nobodyさん
09/10/23 09:13:04
PEARって全部使えないと思うのは俺だけですか?

544:nobodyさん
09/10/23 09:27:52
>>543
先日まで触ったこともなかったけどSMTP_AUTHを使う必要があってMailを使ったよ

545:nobodyさん
09/10/23 10:39:30
>>540
普通にできます

546:nobodyさん
09/10/23 11:43:28
>>545
できました。

547:nobodyさん
09/10/23 21:49:42
安藤さんがOSS受賞したね

548:nobodyさん
09/10/23 22:02:21
だれや?
キャスターか?

549:nobodyさん
09/10/24 00:11:00
>>513
これギャグだろ?

550:nobodyさん
09/10/24 00:40:41 BvPjRTUm
new SQLiteDatabaseで作られたコンストラクタで
データベースをcloseするにはどうしたらいいですか?

551:nobodyさん
09/10/24 00:51:30
$db->close();

552:nobodyさん
09/10/24 00:54:41 BvPjRTUm
Fatal error: Call to undefined method SQLiteDatabase::close()

553:nobodyさん
09/10/24 04:14:41
そのクラスに閉じるメソッドが使われていなくて
コンストラクトでオープンするようになっている場合
デスクトラクト時にそのクラス側で勝手に終了してくれてると考えるきでは?

554:nobodyさん
09/10/24 04:18:45
なんか日本語が変だった・・・

そのクラスに閉じるメソッドが定義されていなくて
コンストラクターでオープンするようになっている場合
デスクトラクターで勝手に閉じてくれていると考えるべきでは?

実際にそのクラスの中身はみてないしどういうのもしらないが

555:nobodyさん
09/10/24 04:28:53
何言ってんの?

556:nobodyさん
09/10/24 04:43:06
分からないなら無理してレスしなくていいよ
教えてほしいならどこがどうわからないのかID出して質問してね

557:nobodyさん
09/10/24 05:22:59
>>555
554で言ったとおりどういうクラスかもしらないし中身もしらないけど(というよりSQLite使ったことない)

class SQLiteDatabase {

 private DB接続ポインタ;

 function __construct(接続情報) {
  $this->DB接続ポインタ = sqliteオープン(接続情報);;
 }

 function query($sql) {
  return 結果を配列で返す($sql);
 }

 function __destruct() {
  sqliteクローズ($this->DB接続ポインタ);
  //$this->DB接続ポインタ = null;
 }
}

$obj = new SQLiteDatabase(接続情報);
$res = $obj->query("SELECT * FROM hoge WHERE 1");
foreach ($res as $row) {
 echo $row."<br>";
}
//ここでデストラクターが呼ばれて勝手に終了する

たぶんこんな構造になってるんじゃないかと(間違ってるかもしれないけど)
SQLite自体明示的に終了させる必要がないDBかもしれないしその辺の事情は知らない

558:nobodyさん
09/10/24 05:24:18
下らんコード書く暇あったら確認しろよ

559:nobodyさん
09/10/24 05:28:37
>>558
そんなクラス見つからなかったんだけどなぁ
探し方が悪かったんだろうか
よかったらリンクはってちょうだい

560:nobodyさん
09/10/24 07:37:49
そしてリンクをはらない>>558であった

561:nobodyさん
09/10/24 08:20:12
>//ここでデストラクターが呼ばれて勝手に終了する
$objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。

562:nobodyさん
09/10/24 08:25:17
>>561
<?php
class Hoge {
function Hoge() {
echo "construct<br>\n";
}
function a() {
return array("a", "b", "c");
}
function __destruct() {
echo "destruct<br>\n";
}
}

$obj = new Hoge;
foreach ($obj->a() as $value) {
echo $value."<br>\n";
}
?>

563:nobodyさん
09/10/24 08:44:46
ほんとこのスレ初心者ばっかだなw

564:nobodyさん
09/10/24 09:21:19
URLリンク(www.php.net)

しかし相変わらずだな。

565:nobodyさん
09/10/24 09:29:15
URLリンク(www.php.net)

これ見方がわからないんだけど
SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
に定義されてる各メソッドはそのクラスのみで使えて
目次のとこに書かれてるのは共通に使えるメソッド?

なんか無名関数のせいでマニュアルの見方がむずくなってきてる気がする・・・

566:nobodyさん
09/10/24 09:34:01
マルチパラダイムだから仕方ないがこれはひどい
明確に分ければいいのに

567:nobodyさん
09/10/24 09:49:09 o7jv7fS8
PHP、PEAR、Smartyはだいたい理解できました
しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません
本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので

フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど
書いてある書籍など自分の県では見つけられませんでした
実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか?
宜しくお願い致します

568:nobodyさん
09/10/24 09:50:26
Ajaxのことだろ
Ajaxスレいってください

569:nobodyさん
09/10/24 09:55:04
jquery

570:nobodyさん
09/10/24 10:02:54 o7jv7fS8
えっ?
Ajaxですか?
Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです
説明不足だったようです、すみません

例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています
まぁたまにJavaScriptなどもありますが
自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか
(つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、
PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、
とかまぁ書けば色々と長くなりそうですが、そういう事です
自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです


571:nobodyさん
09/10/24 10:05:27
>>557
おいおいwあんまり>>555をいじめんなよw
そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww
今頃顔真っ赤にしてるだろうけど二度と出てこないよww

572:nobodyさん
09/10/24 11:35:30
>>571
そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。
PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。
気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと

573:nobodyさん
09/10/24 11:39:51
そりゃクライアント+サーバサイドの連携っていったら
JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない
MixiやYoutubeのようなSNSサービスをやりたいってことね
セッションとか勉強するといいよ

574:nobodyさん
09/10/24 11:55:49
>>562
閉じタグとファイル終端は、直接関係無い。
タグ閉じただけじゃスコープ閉じないんだぜ。

575:nobodyさん
09/10/24 11:58:58
日本語でおk

576:nobodyさん
09/10/24 12:00:54
でてこいよ>>555wwwwwwwwwwwwwwwGOGOGOwwwwwwwwwwwwwwwwww

577:nobodyさん
09/10/24 12:01:27 o7jv7fS8
>>572
レスアンカーは自分(>>570)にですよね?
そうだと思って返答させて下さい

>人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる

こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか?
それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか?
例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です



>>573
あぁ、すみませんでした
自分の表現がおかしかったようです
HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです


578:nobodyさん
09/10/24 12:05:25
>>570
単にフォームからのリクエストを処理するPHPのコード、ってんなら、
PHPの本で2~3章かけて解説してるんじゃね?
あとは自分の作りたいものに似てるの探して、コード読むべし。

579:nobodyさん
09/10/24 12:05:29
>HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、
>実際に運営する為の雛形コードを学習したかったのです

フレームワークのview部分とか見てみるといいかもしれない

580:nobodyさん
09/10/24 12:10:51
>>574
aaa<br>
<?php
>>562のコード
?>
bbb<br>

でbbb<br>より後にdestructが現れるってことか?
どっちみちDBクローズならそれでもいいだろ

581:555
09/10/24 12:11:40
すいませんでした
無知を晒してしまいました
ごめんなさい

582:nobodyさん
09/10/24 12:22:14
ちなみにスコープ閉じるってどうやるの?
objにnullいれるだけ?

583:nobodyさん
09/10/24 12:59:43
>>580
その下にまた<?phpが出てくるとか、include/requireされてるとか。

>>582
$objはスコープから外れてないけど、インスタンスは
ガベージコレクションで回収されるから、そのときに
デストラクタが起動されるんだと思う。

PHPで明示的なスコープって言ったら関数かな。
ローカル(グローバルでない)変数のスコープは関数内でしょ。

584:nobodyさん
09/10/24 13:03:20
>>281
いやだからそれは俺が振られた理由になってねえよ
なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ

585:nobodyさん
09/10/24 13:16:46
フラれたのか、ま、元気だせ、応援してるから。

586:nobodyさん
09/10/24 13:56:20
要らないもんはunsetしちゃおうぜ

587:552
09/10/24 14:16:10 BvPjRTUm
結局クラスを自作して対応しました。
class sqlite{
  var $_result = array();
  var $_pointer = null;
  var $_message = null;
  function connect($dbfile){
    return $this->_pointer = sqlite_open($dbfile,0666,$this->_message);
  }
  function close(){
    sqlite_close($this->_pointer);
  }
  function exec($que){
    return sqlite_exec($this->_pointer,$que,$this->_message);
  }
  function array_query($que){
    return sqlite_array_query($this->_pointer,$que,$this->_message);
  }
  function get_escape($str){
    return sqlite_escape_string($str);
  }
  function get_result(){
    return $this->_result;
  }
  function get_pointer(){
    return $this->$_pointer;
  }
  function get_message(){
    return $this->$_message;
  }
}

588:nobodyさん
09/10/24 14:37:03
>>587
オブジェクト指向スタイル用意されてる意味ねーw

589:nobodyさん
09/10/24 14:57:50
fscanfがおかしいです

590:nobodyさん
09/10/24 18:28:54
なるほどね、凸者さんの判断次第ってことか。
あと、ヤンデレこえぇwww

591:nobodyさん
09/10/24 18:29:35
誤爆

592:nobodyさん
09/10/24 19:04:29
どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。
若いっていいね。

593:nobodyさん
09/10/24 19:35:19
>どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。

はずかしいから黙ってて

594:nobodyさん
09/10/24 20:43:07
newで作ったらdeleteを使いたくなるよね。
で、ダミー関数であるdeleteが登録されてるせいで、
delete($classA)とか書いてもしばらく気がつけない

595:nobodyさん
09/10/24 20:45:44
え?

596:nobodyさん
09/10/24 20:47:28
え?

597:nobodyさん
09/10/24 21:14:45
これ何のスレだっけ

598:nobodyさん
09/10/24 21:21:53
質問じゃない時はsageで書きやがれスレ

599:nobodyさん
09/10/24 22:35:42 aM0DiAaq
【OS名】Windows xp
【PHPのバージョン】php5.2.10
【連携ソフトウェア】mysql
【質問内容】
心理テストのようなサイトを作ろうとしています。
何人がその答えを選んだかの集計と、
それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。
チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで
そのページに遷移させたいです。
どのようにしたらいいのでしょうか?
アバウトな質問でごめんなさい。


600:nobodyさん
09/10/24 22:39:54
>>599
で、何ができないの?PHP?本買え

601:nobodyさん
09/10/24 22:39:57
>>599
そのまんまじゃね?何が問題なんだ?

602:nobodyさん
09/10/24 22:40:40
全部作らせる気かww
最近の若者は安易だなぁ

603:nobodyさん
09/10/24 22:45:01 aM0DiAaq
くだらなすぎてごめんなさい・・・


604:nobodyさん
09/10/24 22:45:53
くだらないというか何が(どこが)できないのかが分からんのだよ

605:nobodyさん
09/10/24 22:50:44 aM0DiAaq
アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。
例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、
青を選んだら青色が好きな人の性格について書いてあるページです。
アバウトすぎてごめんなさい。


606:nobodyさん
09/10/24 22:51:31 aM0DiAaq
今こんな感じで書いているところです。。

<html>
<head><title>心理テスト</title></head>
<body>
<h1>メンタル編</h1>
<p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか?
<?php
// スクリプト名取得
$script = basename(__FILE__);
// メンバー名配列
$member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド",
"イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶");

// 投票がある場合
if ($_POST['COLOR'] > 0) {
// 投票者番号
$no = $_POST['COLOR'];
// MySQLに接続
$db = mysql_connect("localhost", "root", "root");
// DB選択
mysql_select_db("graduation", $db);
// insert文実行
mysql_query("insert into ninki values(null, {$no},
now())", $db);
// DB切断
mysql_close($db);
}
?>

607:nobodyさん
09/10/24 22:52:32 aM0DiAaq
<p><font color="red"><?= $msg ?></font></p>
<form method="POST" action="<?= $script ?>">
<p><input type="radio" name="COLOR" value="1">赤いルビー</p>
<p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p>
<p><input type="radio" name="COLOR" value="3">ゴールド</p>
<p><input type="radio" name="COLOR" value="4">イエロートパーズ</p>
<p><input type="radio" name="COLOR" value="5">緑のヒスイ</p>
<p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p>
<p><input type="radio" name="COLOR" value="7">紫水晶</p>
<p><input type="radio" name="COLOR" value="8">白の水晶</p>
<p><input type="submit" value="投票"></p>

</body></html>


こんな感じです。
ごめんなさい。

608:nobodyさん
09/10/24 22:56:06
>>607
switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}

あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ

609:nobodyさん
09/10/24 22:58:11
case 1:

ね":"を忘れずに

610:nobodyさん
09/10/24 23:01:10 aM0DiAaq
>>608
>>609
やってみます
情けない質問に答えてもらってありがとうございます



611:nobodyさん
09/10/24 23:05:20
情けない質問wwww

612:nobodyさん
09/10/24 23:24:44 TvoLhocc
switch内のbreak;のインデントってたまに悩むけどどうしてますか?
俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608みたいに書くとcase処理内な感じがしない違和感

613:nobodyさん
09/10/24 23:34:28
>>612
その書き込みエスケープされただけだお

  case $a:

 break;

が多いけどおれも結構曖昧だ

614:nobodyさん
09/10/24 23:35:29
逆だ

 case $a:

  break;



615:nobodyさん
09/10/24 23:41:58
switch ($a) {
 case 0:
  do_something();
  break;
 case 1:
  do_something();
  break;
 default:
  do_something();
  break;
}

どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね

616:nobodyさん
09/10/24 23:42:52
下らねぇ回答はID出さないでここに書き込みやがれ 90

617:nobodyさん
09/10/25 00:28:25
次スレの季節か

618:nobodyさん
09/10/25 00:56:35
switch文で気になったのでメモ
switch('a'){
 case 'a'; //末尾が ;
}

switch('a'){
 case 'a': //末尾が :
}
は等価


619:nobodyさん
09/10/25 05:29:05 TWuysydg
$test = " 1c 2c 3c!";
$search = "/([^0-9])([0-9])c([^0-9])/";
$replace = "$1c$2$3";
echo preg_replace($search, $replace, $test);

これで、期待する出力は
c1 c2 c3!
実際の出力は
c1 2c c3!

質問は、
・なぜこのような動作になるのでしょうか?
・どうすれば解決できるでしょうか?

後、欲しいアイデアとして
・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい
(ただし"11c"のような形の場合は変化させないでほしい)

620:nobodyさん
09/10/25 05:53:15
explodeで配列にわけて
substrで文字を抜き出したのを結合すえばええ

621:nobodyさん
09/10/25 10:22:02
認定回答者採用試験は今日までですので頑張って回答してください

622:nobodyさん
09/10/25 11:14:26
>>619
$test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";


623:nobodyさん
09/10/25 13:01:49
トリもIDも出さずに試験官気取りとな?

624:nobodyさん
09/10/25 13:03:49
>>623
お前鬱病だろ

625:nobodyさん
09/10/25 21:45:40
phpでシングルトンって意味あるの?
リクエスト終わったらメモリ開放されるんでしょ?

626:nobodyさん
09/10/25 22:19:54
2行目は正解。
1リクエストの中だけでも必要なときはあるさ。

627:nobodyさん
09/10/25 22:38:37 Ltpwqrvc
mod_rewriteを使ってクリックカウントをとりたいのですが
以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?

例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する

//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2

//count.php側
header("Location: URLリンク(www.example.com)");

628:nobodyさん
09/10/25 22:42:08
readfile使えばいいと思うよ

629:627
09/10/25 22:54:09 Ltpwqrvc
>>628
やってみましたがだめでした・・・。

630:nobodyさん
09/10/25 23:07:22
count.phpがabc01.jpgを出力するんだぜ。

631:nobodyさん
09/10/25 23:15:10
リライトログ見てみたら?吐いてなかったら吐かせて

632:627
09/10/26 00:20:09 8+sjsIrs
>>630-631
アドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。

633:627
09/10/26 00:33:00 8+sjsIrs
>>628
readfileも必要だったみたいです。
ありがとうございました。

634:nobodyさん
09/10/26 05:27:50
質問させてください。

<html>
<body>
<?php include("./hoge.php");?>
</body>
</html>

で閲覧に問題はないのですが、
ソースを見ると

<html>
<body>
<html><body></body></html>
</body>
</html>

と2度使われ重複している状態です。

hoge.phpには<html><body></body></html>などの記述はしておりません。
問題の箇所等ご指摘願います。

635:nobodyさん
09/10/26 05:31:55
hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと
それだけではなんともいえない

636:nobodyさん
09/10/26 05:40:09
>>635
ありがとうございます。

hoge.phpの中身はモバイル版AdSenseコードのみです。

637:nobodyさん
09/10/26 05:48:48 n4efgg6U
質問です。MagpieRSSを使っています。
日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。

$rssurl = array ();
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(rss.asahi.com)";

foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);

foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;

krsort($rssarray);
echo "$linkstr";

638:nobodyさん
09/10/26 05:52:16
>>637
$linkstrは全て想定通りになってるの?

639:nobodyさん
09/10/26 05:55:31 n4efgg6U
>>638
はい、順序以外は期待通りの実行結果です。

640:nobodyさん
09/10/26 06:00:30
じゃkrsortの問題ですね
どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか?

ちなみに第二引数にソートフラグを指定して挙動を変えることができる
URLリンク(www.php.net)
今回の場合は全て文字列だから関係ないかもしれないけど

641:nobodyさん
09/10/26 06:09:43 n4efgg6U
RSSの取得を下のようにしたとして
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";

10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合)
10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ
(長いので削ってます)

このような結果が出ます。
日付でソートをかけているつもりですが、まったくされていません。
$rssurl配列の上から順に表示されています。

642:nobodyさん
09/10/26 06:10:21
>>636
echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど

643:nobodyさん
09/10/26 06:11:55
>日付でソートをかけているつもり
使う関数まちがってるんじゃね?
krsortって逆順ソートだよ

644:nobodyさん
09/10/26 06:15:55
日付だから逆順であってんでねーの?

645:nobodyさん
09/10/26 06:17:41
いやいや
ただ単にキーを逆順にするソートってこと
ユーザー定義のソートをしたいのならusort()とかじゃないと

646:nobodyさん
09/10/26 06:18:06 n4efgg6U
$rssurl[] = "URLリンク(mainichi.jp)"; //まんたんウェブ
$rssurl[] = "URLリンク(mainichi.jp)"; //エンタメ
$rssurl[] = "URLリンク(mainichi.pheedo.jp)"; //ニュース速報(総合)
$rssurl[] = "URLリンク(mainichi.jp)"; //スポーツ

10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合)
10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ

例がわかりにくかったので書き直しました。

647:645
09/10/26 06:19:49
あ、ごめん。
よくよんでなかったw
>日付でソートをかけているつもりですが、まったくされていません。
ってかいてたからてっきり
データ見る限りだとkrsortでよさそうだね

648:645
09/10/26 06:20:38
とか書いた瞬間にデータの日付ルールが変わった件

649:nobodyさん
09/10/26 06:22:04 n4efgg6U
usortにしたらエラーがでました。
Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30

>>648
26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。

650:nobodyさん
09/10/26 06:25:26
>usortにしたらエラーがでました。
マニュアルみようぜ
URLリンク(www.php.net)
krsort($rssarray);を
usort($rssarray);にかえただけじゃだめ
第2引数入れないと

651:nobodyさん
09/10/26 06:26:20
それぞれどんな$linkstrなの?

652:nobodyさん
09/10/26 06:34:30 n4efgg6U
>>650
すいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。

>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル

です。

653:nobodyさん
09/10/26 06:41:45
>>652
ごめん、krsortに$linkstr関係なかったね

$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);

array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども

654:nobodyさん
09/10/26 06:43:43
usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね
$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?

655:645
09/10/26 06:48:17
なんか話をややこしくしてすまんかった
krsortの使い方を勘違いしてたようだ
>>653でよさそう

656:nobodyさん
09/10/26 06:50:28
オマエラ馬鹿じゃね?
$rssarrayをソートかけてんのに$linkstr表示してっからだろ

657:nobodyさん
09/10/26 06:50:51
>>637
krsort($rssarray);
echo "$linkstr";

froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな

658:nobodyさん
09/10/26 06:56:25 n4efgg6U
>>653
phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。

>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。

>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。

659:nobodyさん
09/10/26 07:00:40 n4efgg6U
foreachを閉じた後

krsort($rssarray);

for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}

これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!

660:nobodyさん
09/10/26 07:01:41
echo "$linkstr";
の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。

$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。

661:nobodyさん
09/10/26 07:07:28
終わった後に言っても仕方ねぇだろ無能。
オマエラ馬鹿すぎ。

662:nobodyさん
09/10/26 07:23:29
煽るのすきだね
リアルでどういうやつなのかぜひ見てみたいわ

663:nobodyさん
09/10/26 07:36:34
>>662
的外れな回答する奴よりはマトモだよ

664:nobodyさん
09/10/26 10:20:50
それはない

665:nobodyさん
09/10/26 10:41:51
クッキーにパスワード保存するのはあれだよね。次回から自動でログインとかどうすればいいんだろう

666:nobodyさん
09/10/26 10:50:47
>>665

>>!

667:nobodyさん
09/10/26 10:58:01
>>665
何かユニークIDを発行してそれを保存

668:nobodyさん
09/10/26 11:15:48
>>665
なにか問題でも?

669:nobodyさん
09/10/26 11:27:59
他人の端末のクッキーコピって来たら、
俺が自動ログインで、そいつの振りして利用できる?

670:nobodyさん
09/10/26 11:33:33
できるよ

671:nobodyさん
09/10/26 11:34:10
そもそも他人に簡単に起動を許す、または誰でも簡単に利用できるようなPCのセキュリティに問題アリ

672:nobodyさん
09/10/26 11:44:57
パスワードだけは暗号化すれば良さそうだね

673:nobodyさん
09/10/26 11:49:41
暗号化が簡単ならね

674:nobodyさん
09/10/26 11:54:38
クッキーなんか暗号化必要ないんじゃない?

>>673
暗号化なんて簡単じゃん

675:nobodyさん
09/10/26 11:57:30
簡単ならおk

676:nobodyさん
09/10/26 12:18:54
そもそもクッキーコピーできるような状況なら、そのPCで他人がブラウザ使ってもログイン可能って
ことだしなあ。

677:nobodyさん
09/10/26 12:30:15
そもそも自動ログインなんて許すのは金の絡まないサイトとか
個人情報があまり意味ないサイトとかだよね。
ひまわり動画とか

678:nobodyさん
09/10/26 16:44:56
>>677
そういう問題か? 糞だな^^;

679:nobodyさん
09/10/26 17:53:40 +hgb+ZZq
一応>>1にMySQL等は別スレとありますが、php+MySQLに対してのスレがなかったので、此方で宜しかったでしょうか?
スレチでしたら誘導お願いします。
Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。

function A1(){
if(confirm('ごまだれですか?')){
<?php
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error());
mysql_query("commit");
?>
window.alert('内容を変更しました。')
}
}

としていますが、DBを覗いてみたところ、アップデートされていませんでした。
ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。


原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。

680:nobodyさん
09/10/26 18:00:11
>>678
677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか

681:nobodyさん
09/10/26 18:08:17
>>679
サーバサイドとクライアントサイドがごっちゃになってないか?

「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。

682:nobodyさん
09/10/26 18:09:49
>>679
そのHOSTからmysqlで同じSQLを手で入れるとどうなるよ
トランザクションの使い方も間違ってる

683:nobodyさん
09/10/26 18:17:35
>>679
PHPの中身はともかくとしても、

PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){

}
}
になります。



684:nobodyさん
09/10/26 19:14:03
function A1(){
if(confirm('ごまだれですか?')){

window.alert('内容を変更しました。')
}
}
抜けてた

685:nobodyさん
09/10/26 21:38:32
>>683で答えでてるじゃん

686:nobodyさん
09/10/26 22:16:19
初心者相手に悪いけど、これは吹いたww>>679

687:nobodyさん
09/10/26 22:27:35
mysqlの問題と思ってる時点でアレだな

688:nobodyさん
09/10/26 23:39:47
「ごまふあざらあし」が気になってプログラムが進みません!

689:nobodyさん
09/10/27 00:54:28
クライアントへhtmlを送る時に、ボタンと、押した時にサーバーサイドで実行する
クエリを書いておく事が出来る。
というフレームワークのアイデアを頂きました。
クレームワームの名前は「ごまふあざらあし」にしようと思います。

690:nobodyさん
09/10/27 10:58:21
ごまだれですか?

691:nobodyさん
09/10/27 11:16:23
いえ、「ごまふあざらあし」です

692:nobodyさん
09/10/27 11:34:04
いっそPHPonJavascript HTTP通信で。

693:nobodyさん
09/10/27 11:44:23
PHP側で実行する内容が、htmlソースから丸見えになるんで良くないなw

694:nobodyさん
09/10/27 15:59:34
>>693
SQLをクライアントで構築して送信する前システムを思い出した
最悪だな

695:nobodyさん
09/10/27 19:25:48
"name":"名無し","body":"あいうえお"
このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は
正規表現でひとつずつ抜き出すほかにありますか?

696:nobodyさん
09/10/27 19:26:58
>>695
explode

697:nobodyさん
09/10/27 19:33:13
>>696
できました!
ありがとうございます

698:nobodyさん
09/10/27 19:39:41 73GIvY2U
サーバ変数のQUERY_STRINGのPOST版を取得したいのですがどのようにしたら取れますか?

また、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?

699:nobodyさん
09/10/27 19:44:58
意味が分からん
$_REQUEST

700:nobodyさん
09/10/27 19:59:04
>>698
何もしなくても良いのではないだろうか。

701:nobodyさん
09/10/27 19:59:55
>>698
POSTされた生のデータが欲しいって事かい?

parse_str(file_get_contents('php://input'), $f);
var_dump($f);

702:nobodyさん
09/10/27 21:21:52
fopen("php://memory", "r+");

すげえ

703:698
09/10/27 21:41:14
>>701
すばらしい。ありがとうございます。

704:nobodyさん
09/10/28 01:05:41 EMbPGL3Y
simplexmlについての質問です。

simplexml_load_fileで読みこんだObjectから
$q = $_GET["q"];
echo $xml->item[$q]->name;
としたいのですが、何も表示されません。

echo $xml->item[0]->name;
だと正しく表示され

$q = 0;
echo $xml->item[$q]->name;
でも正しく表示されます。

$q = $_GET["q"];
echo $q;
echo $xml->item[$q]->name;
とした場合は、$qだけが表示されました。

simplexmlでは$_GETが使えないのでしょうか?
解決策をお教えいただきたいです。


705:nobodyさん
09/10/28 01:09:43
>>704
$qの中身の問題だろそれは

706:nobodyさん
09/10/28 01:12:57 EMbPGL3Y
>>705
ありがとうございます!

$q = $_GET["q"]+1-1;
と試してみるとうまくいきました。

ホントにお恥ずかしい限りです・・・

707:nobodyさん
09/10/28 01:16:08
型違うと検索してくれないんだ?

708:nobodyさん
09/10/28 01:17:19
$q = (int)$_GET["q"];
でおk

709:nobodyさん
09/10/28 01:18:34
includeって必要なときにだけ呼び出したほうがいいの?
負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。

710:nobodyさん
09/10/28 01:20:18
えっ

711:nobodyさん
09/10/28 01:27:19
>>709

>>1

712:nobodyさん
09/10/28 02:52:06
Javaのimportのようなもんだと思ってるんだろう
ただJavaの場合コンパイラが最適化してくれるので問題ないが
PHPはインタプリタなので最適化のしようがないという
つまり全部includeなんてしたらそりゃ遅くなる

713:nobodyさん
09/10/28 05:46:33
>>712
なるほど、ありがとう。必要なときにincludeしたほうが良いってことね


714:nobodyさん
09/10/28 09:18:20
>>695-697
文字列中に,も出てくるかもしれないから
json_decode()を使ったほうがよくない?

715:nobodyさん
09/10/28 10:42:00 v0axKvNX
セッションの開始をつげるsession_start()って
セッションを使用する場合は必ずつけなければならないのですよね?
これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?

716:nobodyさん
09/10/28 10:43:21
コントロールじゃね?

717:716
09/10/28 10:45:50
コントロールですか?
ありがとうございます
早速組み方を考えて見ます

718:nobodyさん
09/10/28 10:47:23
bootstrapだろ

719:679
09/10/28 14:53:16 op4mA5/p
返答遅くなりました。
そうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。

この場合は、dbedit.phpのようなものを別途つくり
<?php
include("dbedit.php");
A1();
?>
という風にすればいいのかな?

しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば
それの振り分けはどう実装したらいいでしょうか?
ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。

720:nobodyさん
09/10/28 15:23:46
>>719
まずjavascriptなしでやることを考えてみ。

721:nobodyさん
09/10/28 15:30:07
ちょっと答え方まちがったかな。

まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?

722:nobodyさん
09/10/28 15:43:14
>>719
A1()って>>679を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw
>>720の通りにまずJavaScriptなしで動くようにしてみたら?
サーバー側でpostされた内容によってSQL発行するだけだよ

723:nobodyさん
09/10/28 18:25:52
>>679はもう諦めてこれプログラムできる人にやってもらったほうが世のため人のため>>679のためと思うのはおれだけか?

724:nobodyさん
09/10/28 18:34:44
いきなりいろいろ手をつけすぎだな
javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな

725:nobodyさん
09/10/28 18:35:06
A1()で「くろごま」
A2()で「しろごま」
A3()で「ごまふあざらあし」
を処理する気まんまんの>>679にWeb100.0

726:nobodyさん
09/10/28 23:02:06
>>679
歳幾つ?

727:nobodyさん
09/10/29 00:12:37
phpとmysqlを同時に説明してる本とか売ってるし それ見た方がいいよね
それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも
概念が足りてない

728:nobodyさん
09/10/29 03:46:52
test

729:nobodyさん
09/10/29 09:54:12 xBLZE2eU
【OS】cent
【バージョン】php5.2.10

SimpleXMLElementに関する質問です。
mlから特定の属性を持った要素を削除するにはどうすれば良いのでしょうか?
例を挙げると、

『sample.xml』
<?xml version="1.0" encoding="UTF-8" ?>
<library>
  <book id="00001">
    <title>aaa</title>
    <author>Emily</author>
  </book>
  <book id="00002">
    <title>bbb</title>
    <author>John</author>
  </book>
  <book id="00003">
    <title>ccc</title>
    <author>Mike</author>
  </book>
</library>

とした場合、idが「00002」の要素を削除するという感じです。

--続く--

730:729
09/10/29 09:56:09 xBLZE2eU
--続き--

いろいろ調べたところ、

$xml = new SimpleXMLElement('sample.xml', null, true);
unset($xml->book[0]);

で削除は出来るのようですが、配列で何番目という指定ではなくid「00002」の要素を指定して削除し、

<?xml version="1.0" encoding="UTF-8" ?>
<library>
  <book id="00001">
    <title>aaa</title>
    <author>Emily</author>
  </book>
  <book id="00003">
    <title>ccc</title>
    <author>Mike</author>
  </book>
</library>

となる事が目的です。
どうぞよろしくお願いします。

731:nobodyさん
09/10/29 12:08:53
>>730
foreachで出来た方いたら教えてください。


$xml = new SimpleXMLElement('sample.xml', null, true);
for ( $i = 0 ; $i < count($xml->book);$i++) {
if ( $xml->book[$i]["id"] == " 00002") {
unset( $xml->book[$i] );
}
}
echo $xml->asXML();

732:729
09/10/29 23:49:16
>>731
出来ました!
どうもありがとうございます。

確かにforeachだと更に良いかも知れませんね。でも感謝です。


733:nobodyさん
09/10/30 06:12:51 5l/tuOOs
以下のようなメールアドレスのうち「@の前部分」を、文字数分だけ*に置換したいのです。
taro@example.com

これだと4文字決め打ちになってしまいます。
preg_replace('/[a-z0-9\.\-\_]+@/i', '****@', $text);

いまのところシンプルに書ける方法で思いつくのは、
長い文字数から順に置換していく方法です。
forなど使えばシンプルには書けそうです。
preg_replace('/[a-z0-9\.\-\_]{10}@/i', '**********@', $text);
preg_replace('/[a-z0-9\.\-\_]{9}@/i', '*********@', $text);
...

でも美しい方法とは思えません。
定石、または美しい方法はありますか?

734:nobodyさん
09/10/30 08:26:53
>>733
たとえば

$text = "taro@example.com";
echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);

735:nobodyさん
09/10/30 10:41:53
例えば

$text = "taro@example.com";
$array = explode('@', $text);
echo str_repeat('*',strlen($array[0])) . '@' . $array[1];

736:nobodyさん
09/10/30 16:17:27
例えば

$text='taro@example.com';
echo str_repeat('*', strpos($text,'@')).strstr($text,'@');

737:nobodyさん
09/10/30 17:16:58 5l/tuOOs
>>734-736
ありがとうございます。e修飾子とかはじめて認識しました。
Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、
>>734の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。

精進します。

738:nobodyさん
09/10/30 20:21:02 k7DoHVtB
2chの大量規制があったとかのせいか、ここも勢いがないね

phpのソースコードそのものを取り込んで
そのコードを解析する
みたいな手段ってありませんか?

739:nobodyさん
09/10/30 20:25:31
どう解析するの?

単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、
それだけやったって面白くないよね、手間なだけで。

何をしたいのかが良く分からん。

740:nobodyさん
09/10/30 22:48:05 pyIKqVVx
class test
{
private $ar,$tes;
public function __construct()
{
$this->ar = array('tes');
(ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい)
echo $this->tes;
}
}
$this-> に続く変数名を変数の値で表す方法はありますか?
宜しくお願いします。

741:nobodyさん
09/10/30 22:52:15
日本語で

742:nobodyさん
09/10/30 23:25:37 pyIKqVVx
上のコードで$this->tesに、例えば"b"を代入したいとき、
$this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。

743:nobodyさん
09/10/31 00:17:51
$var = 'tes';
echo $this->$var;
こんな感じで

744:nobodyさん
09/10/31 00:38:36
>738
runkit
URLリンク(jp2.php.net)

745:nobodyさん
09/10/31 07:26:05
>>743
ああ、一回代入すればいいのですね
思いつきませんでした。ありがとうございます!

746:nobodyさん
09/10/31 09:17:44 5b/pi/nw
質問です。
アップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに
ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、
if(copy($tmpFile, $lastFile)){unlink($tmpFile);} 
という感じの処理をすると思います。
しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか?
「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか?
そもそも、上のif文でのチェックは必要なんでしょうか…
条件成立・不成立をどこまでフォローすべきか悩んでいます。

747:nobodyさん
09/10/31 15:10:42
move_uploaded_file 使った方がええんじゃないか?

748:nobodyさん
09/10/31 15:13:55
コピーするのがそのサイト内部処理として必須であるなら(まあそうだろうけど)、
それに失敗したらアップロード処理失敗のエラー返すしかなかろ。

749:nobodyさん
09/10/31 15:30:20
エラーが発生したときに可能な限り元の状態に戻す設計にした方が良いな
コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか

750:nobodyさん
09/11/01 23:38:51
>>740
$this->{$this->ar[0]} = "何らかの値";

751:nobodyさん
09/11/02 18:13:40 uSMOoO6C
画像とhtmlを同一のファイルにしたいんですが、
phpでmhtmlを出力するほうほうはありませんか?

752:nobodyさん
09/11/02 18:43:28
>>751
OSは?

753:nobodyさん
09/11/02 18:58:04
>>751
URLリンク(www.hedgerwow.com)

754:751
09/11/02 18:58:15
>>752

Linuxです。サーバーの設定も自由に変更できます。

755:751
09/11/02 19:01:23
>>253

ありがとう。

756:nobodyさん
09/11/03 00:57:00 OxH3Rb8V
質問です、
PHPの言語仕様として確認したいのですが、
1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、
レスポンスを返した時点でメモリ破棄する。
そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール
などという考え方は基本ない。であっていますか?

757:nobodyさん
09/11/03 02:25:30
言語仕様(標準ライブラリ)の範疇で言えば、そう。
たいていの言語は、別々に起動された、親子関係
でないプロセス間でソケットを共有する方法は、
言語仕様にはないと思う。

758:nobodyさん
09/11/03 05:32:26
関係ない質問してごめん。
SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね?
それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの?
あと、phpでSpeedyCGIみたいシステムないの?

759:nobodyさん
09/11/03 10:19:58
DBコネクションプールといえばpgpoolとかあるけど。
MySQLならSQLrelayとか。

760:nobodyさん
09/11/03 10:39:36
phpはモジュールで動かしてる場合が多いから・・・

761:nobodyさん
09/11/03 21:21:41 ppv8Lxeq
ちょっと質問。
wikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど
知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから
シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので
ちゃんと的確に分けられる方法教えて。

762:nobodyさん
09/11/03 21:23:10
携帯依存文字でYES・NOでもやってろ

763:nobodyさん
09/11/03 21:34:29
わざわざUA偽装してアクセスするのは携帯用ページが見たいからでしょ
だから普通にUAで振り分ければいいとおもうが

764:nobodyさん
09/11/03 21:38:57
>>761
ケイタイ用のIPを常に更新して、IPでキャリアを判別するサイトのサービスを始めるのだ!

765:nobodyさん
09/11/03 23:00:04 Hf2P9qWB
phpのApacheの設定が全くできません!Vistaです。本に書いてある通りにしても、ブラウザに乗せるとダウンロードダイアログが出ます
助けてください

766:nobodyさん
09/11/03 23:08:14 ppv8Lxeq
確かに携帯用のページが見たくて偽装するんだろうし、別に携帯用ページをPCで見られて困ることはないよ。
だけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、
携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。

妥協してユーザーエージェントでやるとするといくつあるの?
ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何?
ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?

767:nobodyさん
09/11/03 23:42:05
俺はIPでやってるけど、ホスト名でもいいんじゃないの振り分け

768:nobodyさん
09/11/03 23:44:16
PEAR::Net_UserAgent_Mobileは?

769:nobodyさん
09/11/04 04:13:04
>>759
トンクス。
でも SQLRelay いれたら遅くなったって意見が多くてちょっとガッカリ

770:679
09/11/04 09:18:30
規制ががが
>>720
・・・申し訳ない。
以前あったレスからJavascriptは使わないと決めて
元々記述したJsコードを全部削除してPHPに実装しなおしていましたが
報告忘れてました

>>721
A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。
むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。

>>722
一応削除はしてます。

>>723
諦めたらそこで終わりじゃないですか??

>>724
はい。実はJavaはやっていたのですが
どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも

771:679
09/11/04 09:19:55
>>726
まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。
いかんせん会社が大きく無いのでしょうがないです。

>>727
本・・ですねえ。
でも今月はCiscoの本やらいっぱい買ってしもたorz
経費で落ちそうなら考えてみます。


今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。
次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ
その先で上書き処理、という流れで、やっていくつもりです。

772:nobodyさん
09/11/04 09:50:46
>>765
それ、Apacheの問題であってPHPのじゃないじゃん。

<httpd.conf>
AddType application/x-httpd-php .php
PHPIniDir [PHP.iniのあるディレクトリ]
LoadModule php5_module [php?apache*.dllへのフルパス]

書いたらApacheの再起動。


773:nobodyさん
09/11/04 13:15:10 +cyJ/kJv
あのさぁ、まずはちょっと聞いてくれ。

ドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。
そうしないとそこがアップロード用のファイル保存フォルダになっているので
PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。
かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。
.htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。

で、特定のフォルダにだけPHPを使わせない機能ないの?

もしくはアパッチでドキュメントルート以外のフォルダを作り、

C:/root_A(PHP可能)
C:/root_B(PHP不可)
として
http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな?
バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。

774:nobodyさん
09/11/04 13:18:32 +cyJ/kJv
今書いててふと疑問に思ったんだけど、レンタルサーバーって複数の人が使ってて
同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?

775:nobodyさん
09/11/04 13:22:13
FOR($i=0;;$i++){

PRINT 'マンコ';

}

初めて作ったプログラムがこれ。

776:nobodyさん
09/11/04 13:26:07
>>773
apacheのDirectory設定でできるよ

777:nobodyさん
09/11/04 13:31:39
>>774
一つはパーミッション。
削除権限はそのファイルが含まれているディレクトリのパーミッションによるが
777とかしてたら消せる。
でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので
phpのSafeModeを使う。
これは、実行ファイルのオーナー(実行時のユーザーではない)が
他のオーナーのファイルをいじれなくする仕組み。

778:nobodyさん
09/11/04 16:27:43 +cyJ/kJv
>>776-777
ありがとう。ちょっとググってみるよ。

779:nobodyさん
09/11/04 17:03:15
そういや、拡張子で制御は把握しきれないから・・・とか書いてるけど
基本的にhttpdは拡張子で実行するか決めてるんだから
拡張子で制限すればいいはずだよ。

780:nobodyさん
09/11/04 17:37:09
>>773
phpファイルはアップロード禁止にしたらいいんじゃない?
どうしてもアップロードしたい場合はZIPって手もあるし

781:nobodyさん
09/11/04 18:05:34
>>773
Options -ExecCGI -Includes -MultiViews
php_flag engine off
こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず


782:nobodyさん
09/11/05 02:39:02 bdU2dbgu
URLリンク(example.com)
というURLでアクセスしたら
URLリンク(example.com)
の結果を返すにはどうしたらいいですか?

783:nobodyさん
09/11/05 02:43:08
mod_rewrite

784:nobodyさん
09/11/05 02:56:01 bdU2dbgu
>>783
ありがとう

785:nobodyさん
09/11/05 09:23:02
FOR($i=0;;$i++){

PRINT 'パイズリ';

BREAK;
}

二番目に作ったプログラムがこれ。

786:nobodyさん
09/11/05 10:17:21
for ($i = 0; i <= 10000; $i++) {
 print "まんこ\n";
}
print 'な? 9999の次でも1に戻るってことは無いだろ?';


787:nobodyさん
09/11/05 10:31:55
あたまおかしい

788:nobodyさん
09/11/05 12:50:44
やっぱり大量規制でいいや。

789:nobodyさん
09/11/05 13:16:33
てst

790:nobodyさん
09/11/05 15:22:19 17l6YWCO
ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。

index1.php
↑インクルード
user_func.txt
↓インクルード
index2.php

でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。

負荷を無くすにはどうしたらいいでしょうか?

個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。
最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。

791:nobodyさん
09/11/05 15:33:59
>>790
実際、どの程度の負荷がかかってるのさ?

一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。

792:nobodyさん
09/11/05 16:22:18 17l6YWCO
>>791
えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの?
知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい?
最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど
HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。
CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。

793:nobodyさん
09/11/05 16:39:49
>>792
気になるならdataスキーム形式にして埋め込めばいいよ


794:nobodyさん
09/11/05 16:55:33
>>792
普通は一度ファイルを読み込めば、次回はメモリを参照する。
readで毎回必ずHDDを読んでいたら大変な事になるよ。

CPU使用率がわかってて、DISK周りの負荷は調べてない?
Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。

795:nobodyさん
09/11/05 16:59:36
>>792
ギガビットは過信しないほうがいい
LANカードやHUBがしょぼかったら無意味
転送量が少なくても一度に大量の接続があれば捌ききれなくなる。

796:nobodyさん
09/11/05 19:35:22
>>792
世の中にはキャッシュと言うものがあってだな・・・
てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。

797:nobodyさん
09/11/05 20:31:20 17l6YWCO
>>793-795
OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。
ルータやLANケーブルはそれなりのやつを使ってるけど。
実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな?
何を改善すればいいか分からん。

>>796
スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。

あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch