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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/01/10(木) 18:09:19ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0331質問2008/01/18(金) 16:53:39ID:e2DNo7Zr
現在レンタル鯖でIMAP関数でメールを読み
送信時にmail()関数を使って送信する
という使い方をしています。
しかしメール送信時にmail()関数を使うと
送信アドレスの間違いなどで不達の時のエラーメッセージが
鯖管のアノニマス@hoge.comに逝ってしまい確認が取れません。
これを回避するため素直にsmtpなどで送信したいのですが
どうしたらいいのでしょうか?
0332nobodyさん2008/01/18(金) 16:54:52ID:JPL9CEzO
>>330
・URLで接続失敗
・外部リソース"URL"の読み込み失敗

エラーが分かっても原因がわからないと意味ないです
0333nobodyさん2008/01/18(金) 17:13:03ID:???
>>322にこれを追加。
$q5 = ereg_replace(",", "、", $q5);
$q5 = ereg_replace("\r|\n", "<br>", $q5);
これで問題ないでしょ?あとは、以下の機能をつけるくらいの話でしょ。
・リファラを見てはじく。
・フォームをhtmlからphpに変えて、hiddenにランダムな数値を入れておいて確認する。
・IPアドレスも登録して、一生涯に一度しか投稿できなくする。
他にあったらお願いします。
0334nobodyさん2008/01/18(金) 17:15:38ID:???
>>331
ごくごく素直にsendmail -fを使うのは?
0335nobodyさん2008/01/18(金) 17:38:23ID:???
>>332
そもそもそれエラー原文じゃないんじゃないのか?
0336nobodyさん2008/01/18(金) 18:00:15ID:???
どーでもいいが
>>334のはmailの第5引数につけれるよ
03373312008/01/18(金) 18:04:41ID:e2DNo7Zr
>>334
即レスありがとうございます。
それも考えたのですが
この際送信メールそのものも
メールサーバに保存しておければいいかな
と考えまして質問してみました。
0338nobodyさん2008/01/18(金) 18:56:28ID:???
           __  __
           ヽ'::':/
            }:::{
            |:::l
          r:ャ l:::|
          l:(.ノ:::l
        ,.r:::''::::::::::::::)
       .〈;;;:::::::::::::::゛:i,,__,〃
      /~:::y'''::::-:::〈ー‐’

かぶと虫さんがこのスレに遊びに来ました。
0339nobodyさん2008/01/18(金) 19:10:24ID:???
フレームワークって、PEARやSmartyみたいに外部に置いといて、
スクリプト内から呼び出すもんだと思ってたわ

もう、フレームワーク自体に組み立ててしまうのか・・・。
0340nobodyさん2008/01/18(金) 19:16:30ID:???
逆に考えるんだ、“フレームワークがスクリプトを呼び出すのさ”と考えるんだ
0341nobodyさん2008/01/18(金) 19:17:09ID:???
>>340
!!

しかし、URL直下にフレームワーク置くとか心配だわ
0342nobodyさん2008/01/18(金) 19:24:05ID:UtEgGG7x
xreaをつかっているのですが、safeモードのせいかexecを実行することができません。
やりたい事としては、whoisの実行結果を取得したいのですが、
execを使う以外に実現できる方法はありますか?
よろしくおねがいします。
0343nobodyさん2008/01/18(金) 19:30:02ID:???
ttp://sylphys.ddo.jp/upld2nd/neta2/src/1200176448696.jpg
0344nobodyさん2008/01/18(金) 20:06:58ID:QH3r72PN
今、会員システムを作っていて、その会員領域からいろんなスケジュールやBBSへの
書き込みを出来るようになっています。
それで、たとえばスケジューラのDBテーブルへの書き込みを会員領域以外からは
いっさい受け付けなくすることはできるでしょうか? ディレクトリ指定というか、、
もし出来たらアドバイスお願いします よろしくお願いします

あと、SQLインジェクション対策についてですが、
たとえばプルダウンで時間選択するとき、0〜23までの値が入るのは確定してると
思いますが、このパラメータにも半角チェックや最大値チェックすべきなのか…?
主義とやる気の問題だとは思いますが、皆さんそこまでやってますか?
0345nobodyさん2008/01/18(金) 20:51:03ID:???
> プルダウンで時間選択するとき、0〜23までの値が入るのは確定してると思いますが
0346nobodyさん2008/01/18(金) 20:56:32ID:???
>>339
通常前者だと思うが。
ドキュメントルート以下に置いたフレームワーク自体に組み立てるFWって何?
0347nobodyさん2008/01/18(金) 20:57:40ID:???
>>344
逸る気持ちは分かるが手近な先輩に指導してもらうなりテキスト読むなりして
ちゃんと勉強したほうがいい
0348nobodyさん2008/01/18(金) 20:58:14ID:???
' OR 1=1--で一発だなw
0349nobodyさん2008/01/18(金) 21:18:23ID:???
>>339
Zendは外部に置いといて呼び出すけどな。
0350nobodyさん2008/01/18(金) 21:40:53ID:emyOBJ8O
サーバの要領が少なすぎて足りなくなった為、他社で2つ目のサーバを借りたのですが
1つ目のサーバから、2つ目のサーバへテキストファイルの書き込みをするPHPスクリプトを作りたくて
ぐぐったり書籍を見て調べました。
ですが、どう書けばよいのかがわかりません。
プロの方には初心的な質問で恐縮ですが
参考になるスクリプトか、ページを教えていただけませんか?よろしくお願いします。
0351nobodyさん2008/01/18(金) 21:45:33ID:???
だが断る
web制作版で依頼してきなさい
0352nobodyさん2008/01/18(金) 21:48:43ID:???
どういう用途でそういう処理が必要かによると思う。
リモートファイルの更新は技術的には可能。
0353nobodyさん2008/01/18(金) 21:54:15ID:???
>>350
数百メガもテキストファイルで何に使ってんの?
03543502008/01/18(金) 21:57:51ID:???
ポエムです。
0355nobodyさん2008/01/18(金) 22:07:12ID:???
PHPからftpで接続できるから、それでファイル開いて更新できるよ。
0356nobodyさん2008/01/18(金) 22:10:34ID:emyOBJ8O
書き込みありがとうございます。

>351
PHPについての質問だったのでこちらに書き込みしました。
プロの方にはくだらない質問になるのかなと思いまして、ついこちらに...

>352
はい、用途としては2つ目のサーバは友人にもFTPのユーザとパスワードを与えて
使ってもいいよと言って友人専用のディレクトリを使わせています。(サーバ屋の規約範囲内でです)

私が元々使っていたサーバはPHP4に対応していまして、2つ目のサーバはPHP5に対応しています。
ですので、丸ごと引越ししたかったのですが、なぜだか2つ目のサーバでPHPのスクリプトが動かなかったので
丸ごとの引越しを断念して、1つ目のサーバで使っているものはそのままのサーバで使っています。(お気に入りにいれているので使い勝手としてはあまり気になりません)

そこで、私が使っているプログラムの機能で(ただの掲示板なのですが)
私の方で書き換えたデータを、友人のページ(これも掲示板みたいなやつで2つ目のサーバにあります)にも
表示させてよと言われたので、>352さんの仰るリモートファイルの更新というものをしたいと考えています。

1つ目のサーバ →→ 2つ目のサーバ
という形でテキストファイルを更新させることで内容を同期させたと思っています。

2つ目のサーバ →→ 1つ目のサーバ
という形での内容の同期(読み込み?)でもいいのですが、正直どちらの形が良いのか、
初心者なために判断がつかないのが現状です。

すみません、長文になってしまいました。
なんか分からないところがあったら指摘してください。追加で説明をしたいと思います。
よろしくおねがいします。
0357nobodyさん2008/01/18(金) 22:11:50ID:???
> プロの方にはくだらない質問になるのかなと思いまして、ついこちらに...
> プロの方にはくだらない質問になるのかなと思いまして、ついこちらに...
> プロの方にはくだらない質問になるのかなと思いまして、ついこちらに...

( ゚д゚ )
0358nobodyさん2008/01/18(金) 22:20:06ID:emyOBJ8O
350です

>353
ほとんど個人の用途なのですが、基本的に掲示板とかなのでテキストファイルもありますが
少しですが画像もあります。
2つ目のサーバを貸している友人も含め(数人ですが皆仲間ウチです)、元々はこの掲示板を使って備忘録がわりにしたりしていました。
1つ目のサーバの要領が50M程度だったので、流石に数人分の記録でも溢れてしまいました。

>354
さすがにポエムは恥ずかしいのでアップロードできません。
(隠れて書いたりもしていません)

>355
>PHPからftpで接続できるから、それでファイル開いて更新できるよ。
!?????????
すみません、ftpとはFFFTPのことですか?
FFFTPは使っているのですが、PHPとの連携ができるのですか!?
なんか解釈が間違っていたらすみません...
0359nobodyさん2008/01/18(金) 22:20:52ID:???
これは罠よ!
0360nobodyさん2008/01/18(金) 22:21:26ID:???
死ね
0361nobodyさん2008/01/18(金) 22:23:51ID:emyOBJ8O
>357
すみません、なにか変なことを書いたでしょうか(>_<)???
【PHP】下らねぇ質問はここに書き込みやがれ 62
とタイトルに書いてあったので...
私にとって難しい悩みでも、プロの方にはくだらないのかなぁと...
0362nobodyさん2008/01/18(金) 22:34:46ID:???
http_requestでpost投げるのが手っ取り早い
0363nobodyさん2008/01/18(金) 22:37:12ID:???
>>350
とりあえず、テンプレ&マニュアル読んだ?
つ http://jp2.php.net/manual/ja/features.remote-files.php
ここあたり読めば幸せになれるんじゃない?
0364nobodyさん2008/01/18(金) 22:37:43ID:???
きっとポコチン美女よ!
0365nobodyさん2008/01/18(金) 22:42:49ID:???
釣り道具は立派だが餌が弱いな。
練り餌はもっと錬らなきゃ。
0366nobodyさん2008/01/18(金) 22:56:37ID:emyOBJ8O
>359
罠とはなんでしょうか?

>360
荒れるのであまりそのようなことは...

>362
ぐぐってみます。ありがとうございます。

>363
マニュアルは見てみましたが、見当違いのところを見ていたのかもしれません。
参考になりそうな感じがしますので、見てみたいと思います。
ありがとうございました。

>364
...

>365
釣りじゃないです↓
0367nobodyさん2008/01/18(金) 22:57:44ID:???
何↓って?
0368nobodyさん2008/01/18(金) 23:04:14ID:???
←なんだろうね?
0369nobodyさん2008/01/18(金) 23:10:29ID:???
こいつはプロID
構うだけ博之の思う壺だよ
0370nobodyさん2008/01/18(金) 23:14:50ID:???
とうとう全res始めたか
0371nobodyさん2008/01/18(金) 23:27:28ID:???
ヒント:サクラ要員
0372nobodyさん2008/01/18(金) 23:56:31ID:pg2V70jW
掲示板のソースをみてPHPを勉強しようとしてる初心者だが、
ある掲示板はPHPファイルが一つのみ
ある掲示板はaction,view,resなどに色んなphpファイルがあり
その下にもサブディレクトリがありかなり複雑になってる。
ただし、一つ一つのスクリプトは小さい。
これってどうしてこういう違いになってるんだろう?
何か、開発してる人毎に開発方法が違うんだろうか?
phpspot.net/php/pgPHP%81%95CSS%8Cf%8E%A6%94%C2.html
↑この掲示板はファイルが多く理解できない。

何か開発するに至って参考となるものありますか?
本はマンモス本、サンプル集等いくつか買い集めたが
今ひとつ掴みきれない。

ネックの一つは開発したときのデバック方法。
サイトはPHP4のソースが圧倒的に多いのだが
漏れのPHP5の環境で動かない、場合によっては更にエラー番号も返さない。
みんなどうやって開発してるのだろう?
0373nobodyさん2008/01/19(土) 00:14:15ID:???
全角厨ウゼー
0374nobodyさん2008/01/19(土) 00:16:31ID:???
>>373
逆に全角じゃないと見にくいからダメだというヤシもいるんだぞ。
問題ないなら、変なこだわり持つな。
心の病気になるぞ。
0375nobodyさん2008/01/19(土) 00:17:37ID:???
またプロ名無しか
0376nobodyさん2008/01/19(土) 00:18:52ID:???
いらん書込はいいからさっさと答えろ。
0377nobodyさん2008/01/19(土) 00:21:32ID:???
>>372
PHPはご存知のように一つのファイルに詰め込むことも
いくつかのファイルに分割することもできる。

ただ一つのファイルにすべてを詰め込むと、どの箇所でどの処理をしているかがわかりにくくなることが多い。
ということで通常は機能ごとにファイルを分けたり、クラスごとに分けたりする。

PHP5で動くようにしたらええやん。
デバッグ中はエラーも表示するようにする。
詳細は>>1
0378nobodyさん2008/01/19(土) 00:27:18ID:???
>>372
楽して身に付けようとしてるなら無理だからやめとけ.悪いこと言わんから.
03793722008/01/19(土) 00:32:21ID:uG/K5st/
>>377
わかりました。
特に開発環境とかが各自で違うとかではないという事ですかね。
(理解できないのは己の頭が悪い、知識がないとかのの問題なのだろうか)

デバックの仕方とかもよくわからんけど
もうちょっと勉強して出直します。
0380nobodyさん2008/01/19(土) 00:40:40ID:???
デバックの意味も分かってないんじゃないの
0381nobodyさん2008/01/19(土) 00:53:48ID:???
質問です 変数に収まっている値のデータ型を判別する関数ってありますか?
03823812008/01/19(土) 00:54:18ID:FuloTUhn
しまった うっかり下げてしまいました
よろしくお願いします
0383nobodyさん2008/01/19(土) 01:01:29ID:???
>>381
http://jp.php.net/manual/ja/function.gettype.php
http://jp.php.net/manual/ja/function.get-class.php
ほい。
0384nobodyさん2008/01/19(土) 01:25:50ID:???
FFFTPやらデバックやら…
03853812008/01/19(土) 01:37:05ID:FuloTUhn
>>383
ありがとう 助かりました
0386nobodyさん2008/01/19(土) 02:27:23ID:???
"デバック" に一致する日本語のページ 約 228,000 件中 1 - 50 件目 (0.39 秒)

全米が泣いた。
0387nobodyさん2008/01/19(土) 05:24:17ID:nyppE0sx
ここのスレホント役に立たない。
2回質問したが全くレスがない。
ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。
このスレの住民の能力が手に取るように分かった。
0388nobodyさん2008/01/19(土) 05:25:34ID:???
※餌を与えないでください
0389nobodyさん2008/01/19(土) 05:46:08ID:???
>>387
> 2回質問したが全くレスがない。
> ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。

お前の質問の仕方が悪いんだろ。人のせいにするな。
0390nobodyさん2008/01/19(土) 07:36:55ID:???
bug :【和称】バグ
debug:【和称】デバッグ

デバックではないアホ
0391nobodyさん2008/01/19(土) 07:58:06ID:???
こういうことに固執して書き込みする奴って、
「鯖」とか普通に使ってたりするんだよな。

っていうか、何でFFFTPが急に出てくるのか分からない。
0392nobodyさん2008/01/19(土) 08:30:40ID:???
>>391
わかるわかるwwwwwwww

ヒント >>358
0393nobodyさん2008/01/19(土) 08:39:29ID:uG/K5st/
>>390
古フランス語puc由来なので
デバックで濁らないのが本来の発音、アホ。
0394nobodyさん2008/01/19(土) 08:54:19ID:uG/K5st/
ガリア訛りのロマンシュ語。
英貴族は当初は濁らなかったんだよ。
デパック。
0395nobodyさん2008/01/19(土) 09:02:37ID:???
>>392
なるほど。ありがとう。
03963392008/01/19(土) 09:18:23ID:???
>>346
Cakeのアプリ作成の動画があったから見たら、そんな使い方してたのよ
http://p4life.jp/cake/

FWがどんな感じで動くのかわからないときにこういう動画見たから、
てっきりFW自体がそういうものだと思い込んでた

ちとZend調べてきまー
0397nobodyさん2008/01/19(土) 09:43:37ID:ctJIPU4v
extendsについて質問です。

class A {
  public function Test(){
    echo "TEST";
    return 0;
  }
}

class B extends A {
  function Test2(){
    echo "Hello ";
    parent::Test();
  }
}

$extends = new B();
$extends->Test2;

この場合、「Hello TEST」と表示されますが、
extendsなしで、
parent::Test();を
A::Test();とすればいいのに
extendsをするメリットはあるのでしょうか?
03983972008/01/19(土) 09:46:29ID:ctJIPU4v
ああ、メンバ変数が継承されているのかΣ
メソッドの継承は、別クラスからClass::hogehoge()で呼べばいいだけで・・・あれ?
0399nobodyさん2008/01/19(土) 09:55:10ID:???
出っ歯9本
04003972008/01/19(土) 09:57:16ID:ctJIPU4v
すみません、extends理解できました
普通に便利ですねこれ

ただ、使い方間違えるとゴチャゴチャになりそうで怖いです・・・
0401nobodyさん2008/01/19(土) 10:12:49ID:???
多分色々間違って覚えてるんだろうな
04023972008/01/19(土) 10:16:08ID:ctJIPU4v
>>401
自分の解釈では
「メソッド・メンバ変数の継承」

class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
0403nobodyさん2008/01/19(土) 11:39:42ID:FuloTUhn
フォームで半角英数字を入力して、DBに登録して、それを後で引き出して
gettypeで判別したらstringになってたんですが、コレは仕様ですよね?
数字のままdbに保存→引き出し をする方法はないですか?
0404nobodyさん2008/01/19(土) 11:44:11ID:???
無意味に継承してどうするのと。
>>397のソースは不可解。
includeみたいなものだと勘違いしてない?

>class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
A(スーパークラス)で定義したメソッドやフィールド(メンバ変数)をB(Aのサブクラス)で継承する。
またはAで別クラスを継承してた場合、そのクラスのものも継承する。

継承についてはオーバライドやポリモーフィズム(多態性)を理解しないと使うのは難しいと思う。
0405nobodyさん2008/01/19(土) 11:47:41ID:???
>>403
仕様。
>数字のままdbに保存
保存する直前でintに変えてから保存すればいいじゃないか。
0406nobodyさん2008/01/19(土) 11:56:23ID:QtJ57h/6
数日前にPHPをやり始めた者です。勉強がてら、>>181の回答にあたるものを>>322を
参考にしながら書いてみたのですが、重い処理をしているのではないかとか、
間違ったコーディングをしているのではないか、と不安になってここで質問してみました。
どうぞよろしくお願い致します。

test.php ファイルの内容
<?php
// 日付、IPアドレスを取得
$date = getdate();
$day = $date["year"] . sprintf("%02d",$date["mon"]) . sprintf("%02d",$date["mday"]);
$ip = getenv("REMOTE_ADDR");

// 重複入力チェック。同じ日に同じIPアドレスからであると、はじく。
$fp = fopen("test.dat", "r");
if($fp == false){ printf("<html><body>エラー:ログファイルが開けません。</body></html>");return;}
while( !feof($fp) ){
$read_line = fgets($fp, 1024);
$file_day_ip = split(",", $read_line);
if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){
consecutive_error_html();
return;
}
}
fclose($fp);

// POSTを受け取る。
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];
0407nobodyさん2008/01/19(土) 11:58:19ID:QtJ57h/6
>>406のつづき

// 未入力チェック。いきなりtest.phpにアクセスしてきた時にもはじく処理。
if( ($q1=="")or($q2=="")or($q3=="")or($q4=="") ){
input_error_html();
return;
}

// 任意入力欄にて、CSVで使用している文字を変更する。
$q5 = ereg_replace(",", "、", $q5);
// 任意入力欄にて、改行を <br> に変更する。
$q5 = ereg_replace("\r|\n", "<br>", $q5);

// 文字列をつなげてファイルへ書込み
$write_line = $day . "," . $ip . "," . $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "," . $q5 . "\n";
$fp = fopen("test.dat", "a");
if($fp == false){ echo "<html><body>エラー:ログファイルが開けません。</body></html>"; return;}
if(flock($fp, LOCK_EX)){
fwrite($fp, $write_line);
}else{
echo "<html><body>エラー:ログファイルのロックが出来ません。</body></html>";
return;
}
fclose($fp);
finish_html();
return;
0408nobodyさん2008/01/19(土) 12:00:13ID:QtJ57h/6
>>407のつづき

// 連投拒否
function consecutive_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:連投ですか?</b><br>';
echo "$ip<br>";
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// 入力不備
function input_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:Q1〜Q4すべてを選択して下さい。</b><br>';
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// データ登録完了
function finish_html(){
echo "<html><body>";
echo '<div align="center"><b>ご回答ありがとうございました。</b><br>';
echo '<a href="test.html">戻る</a></div>';
echo "</body></html>";
}
?>

終わり
0409nobodyさん2008/01/19(土) 12:22:27ID:t8kHENxA
// POSTを受け取る。
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];

この部分

$HTTP_POST_VARSは古い$_POSTに変更
値は配列にしたほうが後々楽

$Q[1] = isset($_POST['Q1']) ? $_POST['Q1'] : null;
$Q[2] = isset($_POST['Q2']) ? $_POST['Q2'] : null;
0410nobodyさん2008/01/19(土) 12:44:54ID:???
日付は$day = date('Ymd');にできる

if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){
これは
if($file_day_ip[0] == $day && $file_day_ip[1] == $ip){
でいい下の$q1〜等もそう

$HTTP_POST_VARSは$_POSTでいいし
$ip = getenv("REMOTE_ADDR");
の部分は$ip = $_SERVER['REMOTE_ADDR'];に置き換えられる

あと重複チェックなら1行ずつ取得して
文字列一致を探した方が早いんじゃ?

それとCSVで使用している文字を変更するとあるが
勝手に入力値を変更するはどうかと
やるならダブルクォーテーションで囲って
ダブルクォーテーションを&quot;に置き換えた方が良い

あと自作関数だがエラーと完了のみにして
function error($errMsg,$title='',$param=null){
エラー処理(かくのめんどくせ)
}
因みに連投拒否のところに書いてある$ipは表示されないからねっ
0411nobodyさん2008/01/19(土) 12:48:04ID:???
>>402
俺も単なる関数の集合としか使えてなかったけど
Zend Framework使ったらオブジェクト指向の利点が体感できたよ。
0412nobodyさん2008/01/19(土) 12:56:38ID:???
>324でも書いたけど
なんでq5だけに改行や','が入ってくるって決め付けてるのさ
04134032008/01/19(土) 13:15:48ID:???
>>405
>保存する直前でintに変えてから保存すれ

フォームでsubmitした時点で文字列になっちゃうわけですかね?
気づかなかった、確認してみるよ ありがとう
0414nobodyさん2008/01/19(土) 13:18:45ID:???
>>403
dbから取得した時点で既に文字列
0415nobodyさん2008/01/19(土) 13:20:28ID:CC01YTh8
どなたかお助けください。
アマゾンAWSECSというwebサービスからXMLを取得
→XMLファイルに保存
→XSLTファイルを作成(画像URLとタイトル抜き出し)
→PHPのxslt_process関数を用いてXSLTを適用しHTMLを出力

ってな事をしたました。
リロード7回に1回の割合で上手く表示されるのですが、
ほとんどの場合空白ページが表示されてしまいます。

これを回避する方法はありませんでしょうか?
原因すらよくつかめてませんで_(_ _;)_
なにか考えられることありませんでしょうか?

ブラウザはIEとFireFoxで試したのですがIEのほうが少し空白になる割合が低そうです。

コード・サンプルなどは要望がありましたらUPしますけど。
0416nobodyさん2008/01/19(土) 13:29:11ID:???
>>413-414
ちゃうだろ、例えpostで取得した時点で文字列だとしてもクエリ発行の際に
クオーテーションで囲むか否かで数値として入れるか文字列として入れるかが変わる
0417nobodyさん2008/01/19(土) 13:29:15ID:???
>>415
原因すらつかめてないならコード晒そうよ
出せない部分は伏字とかで良いから
0418nobodyさん2008/01/19(土) 13:30:20ID:???
>>415
まずどの時点で想定外の結果になっているかを把握
0419nobodyさん2008/01/19(土) 13:32:21ID:???
データをどう扱うかは結局PHP側でどうにかしないと
0420nobodyさん2008/01/19(土) 13:41:16ID:???
馬鹿ばっかり。

データベースに書き込んだ時点で、PHPでどういう型で
扱っていたかなんか忘れ去られる。

SQLで数値をクォーテーションでくくったからと言って
数値で記録されるというわけでもない。そもそも数値だろうが文字だろうが
全部クォーテーションでくくって何の問題もない。

データベースにはPHPの型情報なんて記録されていないんだから、
データベースから取得した時点で型がどうなるかは、データベースと
そのスキーマ定義と読み込むときに使用するPHPライブラリに依存する。
まあ、普通はデータベースのフィールドの型になるだろうが例外もあるだろう。

つまりだ、なんのデータベースを使って、テーブルのフィールドの型が
どうなっていて、どのライブラリを使ったか書けという話。
04214062008/01/19(土) 13:42:58ID:QtJ57h/6
みなさん、丁寧なご回答をありがとうございます。
古い表記を知らなかったなど、変なコーディングをしていたことに気づき、
勉強になりました。

>>409
古い表記とかあるのですね。調べてみます。
確かに、受け取るデータは配列に入れて管理すると楽になりますね。
ループで一気に処理など出来ますし。

>>410
私はつい、(...)and(...)を使ってしまうへんな癖があるようです。直します
IPアドレス取得のコードは表記が古かったのですね。

> あと重複チェックなら1行ずつ取得して
> 文字列一致を探した方が早いんじゃ?
これは、具体的にはsplit(",",$read_line)を使用せずに、
例えば以下のようにするという意味でよろしいのでしょうか。
$day_ip = $day . "," . $ip;
if(preg_match($day_ip, $read_line))

> それとCSVで使用している文字を変更するとあるが
> 勝手に入力値を変更するはどうかと
確かに言われてみるとそうですね。"にしてみます。

> あと自作関数だがエラーと完了のみにして
> function error($errMsg,$title='',$param=null){
言われてみて、そういうまとめ方がいいなと気づきました。
構造的に似たような関数になってますしね。

> 因みに連投拒否のところに書いてある$ipは表示されないからねっ
自分の環境で動かしていて気づいていなかったのですが、
確かにおっしゃる通りですね。スコープを考えていませんでした。
04224032008/01/19(土) 13:48:09ID:???
>>414
ほんとだ、、SQL送信直前にintvar()したけど、取得したら文字列でした
最終的に、取得値をNullと0で区別したいんですが…
取得値に対して再度intvar()しなきゃいけないのかな やっても
登録するカラムのデフォルト値がNULLなんで、
if(intvar(取得値)===0){〜〜;} ってした場合、NULLを拾ってきた場合も
処理してしまいますよね? めんどくさいなー
04234062008/01/19(土) 13:48:56ID:QtJ57h/6
>>412
> なんでq5だけに改行や','が入ってくるって決め付けてるのさ
これは、誰かがformを自作して変なデータを入力しようとするのを
防ぐという意味合いですよね?
Q1〜Q4においても、入力されるデータにチェックをかける必要が
ありますね。
04244152008/01/19(土) 13:51:52ID:???
<?php
//header("Content-Type:text/html;charset=EUC-JP");
$strDir=dirname(__FILE__);
$strXml=$strDir."/[****].xml";
$strXsl=$strDir."/[****].xsl";
$objPrc=xslt_create();
$result=xslt_process($objPrc,$strXml,$strXsl);
//print(mb_convert_encoding($result,"EUC-JP","UTF-8"));
if ($result){
print $result;
}else{
print"errno=".xslt_errno($objPrc);
print"err =".xslt_err($objPrc);
}
xslt_free($objPrc);
?>


あいよー汚いソースですんません。PHP側のソースはこんだけ
XSLTは静的に(XML文書内にXSLTを指定)はなんら問題なく表示されてます。

0425nobodyさん2008/01/19(土) 13:57:12ID:???
もっとも正しい答えは「今さらAWSなんてやめとけw」
04264152008/01/19(土) 14:00:16ID:CC01YTh8
すいません。今いろいろ試して解ったのですが
どうも借りてるレンタルサーバ(ロリポ)でおかしく、サクラだと何の異常もなくうごいたので、
どうもレンタルサーバの負荷もしくは環境かなと。

迷惑かけてすいませんでしたー。

>>425ごもっともw
0427nobodyさん2008/01/19(土) 14:02:07ID:???
>>420
お前が一番バカで口だけの存在だよ
0428nobodyさん2008/01/19(土) 14:56:18ID:???
>>422
420よめよ。。
だいたいオマエのDBは文字列型も数値型も両方同じフィールドに入るのかと。
アドホッククエリ書いてる気がするんだけど、そうなら連結してる変数を
intに変えようが全く意味がないし。

nullと0の区別はPHPのように型が緩い言語ではやりにくい。
ライブラリとか使ってるなら勝手に変換されちゃうこともあるんでさらに。
なので数値型のフィールドではnot null制約しといて規定値0にしてる。
04294032008/01/19(土) 15:27:14ID:???
>>428
すみません、422書いてる間に420のレスもらってたみたいで読めてませんでした
カラムはint型でデフォルトがNULLです
0だと後々の処理の中で意味を持ってしまうので(>>422)そうしたつもりだったんですが
いっそのことNULL指定もしない空欄にすべきでした
PHPが型指定あいまいってのを今回ようやく痛感した感じです

>>420
>データベースにはPHPの型情報なんて記録されていないんだから、
確かに…って感じです ありがとうございました
0430nobodyさん2008/01/19(土) 15:30:26ID:???
PHPの型指定の曖昧さは他の箇所でのことなんだけど
■ このスレッドは過去ログ倉庫に格納されています