【PHP】下らねぇ質問はID出して書き込みやがれ 85
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/06/15(月) 22:53:52ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0492484
2009/07/13(月) 16:54:04ID:dllOgc2Xありがとうございます。
どうにかしてみようとしましたが、たぶんどうにもならないようです。
いろいろ検証したところ、
microtime()などのメソッド名ではエラーにならないので、
どうやら「標準関数と名前が重複しているからエラー」ではなく、
「(標準関数と誤解した上で、)代入先なし&引数なしの文法エラー」のようです。
(かといってmicrotime()の場合になぜ誤解しないのか不明ですが)
というわけで、PHPではなくEclipseのQ&Aになってしまいました。
すみません。
// list()という名前については、
// まぁ本格コーディングの前のプリコードなので実際には変えると思いますが、
// 今後、本番で遭遇しないとも限らず、きもちわるいと思って質問させていただきました。
0494nobodyさん
2009/07/13(月) 17:47:02ID:OhNG2SXCwinXPSP3+AnHTTPD+PHP5.3です
winでの鯖運用はトラブルが多いと言われているのは知っていたんですが、
気まぐれではじめたものでしたので、、それにまさかこんな小さなことでもトラブるとは思ってませんでしたorz
ブログはレンタルサーバではじめようと思います これ以上はスレ違いになりそうですし、、
0495nobodyさん
2009/07/13(月) 18:06:43ID:???まあレンタルサーバではすんなり動くと思うし使い方、設置の質問だとスレ違いな気も。
0496nobodyさん
2009/07/13(月) 18:14:17ID:OhNG2SXCですよね。スレ汚し申し訳なかったです。
レスしてくださった方々ありがとうございました。
0497nobodyさん
2009/07/13(月) 19:27:58ID:???というのを簡単に実装できるライブラリみたいのないでしょうか?
ぐぐったらありそうだったけど見つからなかったので
0499nobodyさん
2009/07/13(月) 19:57:05ID:???0501nobodyさん
2009/07/13(月) 22:31:08ID:???listは関数ではなく言語構造。
0502nobodyさん
2009/07/13(月) 22:43:39ID:aQVGItnX$var2 = "<a href=\"".$var."\">link</a>";
print $var2
というような処理をしてて、htmlとして$var2のaタグを出力してるんですが
そのhtmlが
hoge.php?width=100&height=100 となって正しく処理できないことがあります
(期待通り hoge.php?width=100&height=100 となることもある)
どうしたら良いですか?
0503nobodyさん
2009/07/13(月) 22:54:48ID:aQVGItnX間違えてる方の表記は width=100 &.a.m.p.; height=100 ってなります
(勝手にserializeがかかった状態?になってる)
*ampの間の「.」は無視してください
どうしたら良いんでしょうか?
0504nobodyさん
2009/07/13(月) 23:00:59ID:???何回かやって違う結果が出るということならなにか勘違いしてるか壊れてるかだろうね
0505nobodyさん
2009/07/13(月) 23:11:56ID:aQVGItnXどうもありがとうございます
もう少し確認してみます
0506nobodyさん
2009/07/13(月) 23:18:55ID:???0507503
2009/07/14(火) 01:43:49ID:+BJ8SPET0508nobodyさん
2009/07/14(火) 02:44:11ID:???0509nobodyさん
2009/07/14(火) 10:39:27ID:???0510nobodyさん
2009/07/14(火) 12:02:12ID:lTtAPwXi某管理システムの作成を依頼されました。
しかし、そのシステム自体はスタンドアローンのみで使用するということでした。
後DBもフリーのもの(未確定)を使用して欲しいとのこと。
技術的には可能であるけど、導入する際の手間もありますし
スタンドアローンならPHPじゃなくて、VBAでも良さそうに思えます。
依頼先にそう伝えたいと考えているのですが、私の見方はおかしいでしょうか?
0511nobodyさん
2009/07/14(火) 12:05:34ID:???客が何の目的でフリーのシステムを要望しているのかわからんじゃないか。
ある程度LinuxやBSDのインストールや設定ができる人が客先にいて、必要
とあらば規模拡張が自分でできる、ということなら、フリーのツールで揃える
のは悪くない。
MSのツールの方が開発効率がいいなら、初期導入に必要な機材、ソフトの
コスト、開発コストを上げて比較して先方に提案するのがいいんじゃないか。
スタンドアロンなら、OOoのDBを使うって手もあるぞ、要件が合致してるなら。
0512510
2009/07/14(火) 12:25:39ID:lTtAPwXi返信有難うございます。
依頼先とは長い付き合いですが、Linux、BSDのインストール、設定が出来る人はいません。
また、管理システムを提供する先にいるかは後ほど確認してみようと思います。(多分居ないと思います)
0513nobodyさん
2009/07/14(火) 12:52:46ID:pcPGspml動画の変換というプロセスに関しては
コマンドラインで動作する外部プログラムを使用してexec関数などで変換するのでしょうか?
PHPで何か簡単に変換できるようなマルチメディア関数みたいのってないですかね?
動画形式はflvかoggあたりがいいのですが
0514nobodyさん
2009/07/14(火) 14:02:52ID:???タイムアウトあると思うから、一時ファイルなり、DBなりを使って、
別プロセスで変換プロセスをキックするのがいいんじゃないかな。
0515nobodyさん
2009/07/14(火) 15:23:52ID:bh9ZWFGS$query = "select * from foo_bar_table";
$res = mssql_query($query, $db);
$row = mssql_fetch_row($res);
mssqlを使ってるのですが、取得した文章が途中で切れてしまいます。
なぜでしょうか?
300文字くらいあるのが、150文字くらいで切れてしまいます。
0516nobodyさん
2009/07/14(火) 15:50:50ID:ToMbC0F2tinytext(256バイト)のカラムが日本語128文字くらいで切れてるとかじゃなくて?
0517nobodyさん
2009/07/14(火) 15:51:58ID:???ひとまず思いつくのは
・実際はカラム型の文字数が足らなくて150文字くらいしか入ってない
・なんか途中に特殊な文字が入っていて切れてる
ぐらいしか思いつかなかった。
役に立ちませんかすいません。
まずはそこから確認してみては・・。
書いてるうちに>>516さんが書いてるわ。
>>516も言っているがカラム型からチェックを進める。
0518nobodyさん
2009/07/14(火) 15:55:34ID:???0519515
2009/07/14(火) 15:57:50ID:bh9ZWFGSnvarchar(4000)
でテーブルにはちゃんと文字列が入ってます。
php.iniにもそんな制限ないです.デフォルト値を用いています。
0520nobodyさん
2009/07/14(火) 16:07:47ID:???こういうケースとか?
0523515
2009/07/14(火) 16:39:52ID:???違います
今分かったのはテーブルにinsertするのも115文字しかできません。
windows server 2003 SQL server 2005 php ver 5.2.x
0524nobodyさん
2009/07/14(火) 16:42:25ID:???518 名前: nobodyさん [sage] 投稿日: 2009/07/14(火) 15:55:34 ID:???
300あることと、150で切れてるのはどうやって確認した?
0525nobodyさん
2009/07/14(火) 16:43:19ID:???「あ」は 2byte だけど 1 文字、みたいな。
0526515
2009/07/14(火) 16:48:28ID:???0527nobodyさん
2009/07/14(火) 16:57:52ID:ToMbC0F2>>515氏の直面している問題以上に>>515氏本人が手強い相手であることがわかった(笑)
1. insertでも115文字しか入らないなら、300文字あるはずの既存データはどうやって入れたの?
入ったのは日本語で115文字?既存の300文字は日本語?ちなみに文字コードは?
全部半角のASCII文字でも115文字?2倍の230文字?ひょっとして256文字?
2. selectで150文字程度、insertで115文字の意味するところは?
毎回115文字?文字列の中身(全角半角比率など)によって誤差がけっこうある?
誤差があるとはいえselectのほうがたくさん文字が入るのは確かだったり?
投げたselect文とinsert文を差し支えなければフルで見せてほしい。
とか。
0528nobodyさん
2009/07/14(火) 17:02:12ID:???ID出したほうがいいよ、混乱するし。
あと
nvarchar(4000)
であることをどうやって確認したのかも一応聞いておきたい。
0529nobodyさん
2009/07/14(火) 17:02:21ID:NN1hGdEX糞過ぎて泣きそうになると気ないですか?
0530nobodyさん
2009/07/14(火) 17:06:17ID:ToMbC0F2可能なら、$rowをその後どう扱って「150文字くらい」を表示させたのかまで書いてほしい。
- いつか alter table したつもりなだけで実際には256だったりするのではないかと疑ってみたり…
- 4000じゃなくて400だったり…
SHOW COLUMNS FROM foo_bar_table;
を試してみてほしい。可能なら。
0531nobodyさん
2009/07/14(火) 17:12:05ID:???SQL文の応答とかみてみてはどう?>>515
>>529
いやぁ、作ったものは、なんだか愛着あって嬉しいよ。
実装がひどいってのはあるけどなw
逆に、こういうところ苦労してたんだ、と知ることで、
もっと堅実な、またはもっと効率のいい設計や、製作方法
を勉強する機会になったりもすると思う。
0532515
2009/07/14(火) 18:42:20ID:bh9ZWFGSみなさんありがとうございました。
0533nobodyさん
2009/07/14(火) 19:04:31ID:???0534nobodyさん
2009/07/14(火) 21:09:07ID:O9yJ0RDj君が成長してる証だよ
0535nobodyさん
2009/07/14(火) 23:20:43ID:???半年前の自分のコードを見直して糞だと思えないなら、その方がよほど問題。
なんとかしたいなら、ファウラーの『リファクタリング』でも買って読め。
0536529
2009/07/15(水) 00:11:00ID:VnFaQFKD2〜3年前に作ったプログラムが糞過ぎて涙目でしたw
テンプレート(HTML部分)と処理するPHPが混雑してて見難かったり
変数名や表示名がわかりづらかったり、色々あります。
とりあえず、修正する上でセキュリティ向上を意識して
直せる限り直したいと思います。
0537nobodyさん
2009/07/15(水) 00:13:57ID:???0538nobodyさん
2009/07/15(水) 00:17:24ID:???0539nobodyさん
2009/07/15(水) 00:50:15ID:???満足感が欲しいのかどっちなんだ
0540nobodyさん
2009/07/15(水) 01:45:37ID:???virtual host毎にinclude_pathを設定したいので
vhost毎に php-cgi.exe -b 127.0.0.1:%PORT% -d include_path="."
とかやってますが、これ以外に方法ないでしょうか。
起動はバッチですればいいんですが、vhostが増えると保守も面倒だし
その分だけ起動されちゃうのでイマイチ感が満天です。
PHPRC環境変数にphp.iniのパスを設定しても読んでくれないし、
-d include_path だと複数パスの指定に問題があるしで。
apache でいう php_value include_path とかできれば幸せなんですが
どなたかいい方法ご存じでしたらお願いします。
0541nobodyさん
2009/07/15(水) 05:10:47ID:???オブジェクト指向パラダイムを理解しているやつはそんなこと思いもしないよ
自然と書いてるもの
そもそもオブジェクト指向でしか設計できない言語もあるわけで
そういうところから来た人間はわざわざ手続き型でやるなんてことはしないでしょ
設計思想を理解していないやつが無理に書いてるという話ならば
オブジェクト指向を理解するには通らないといけない道だから
熟練者には失笑ものでも生暖かく見守ってやらないといけない
0543nobodyさん
2009/07/15(水) 13:50:45ID:yniO2VZrこの外部phpファイルが構文エラーでも停止させない方法はありませんか?
requireと違いincludeはファイルが無くても停止しないけど、
それでも構文エラーだと停止してしまいます。
構文エラーで停止させたくない理由は、この外部phpファイルは、
システム稼動中に例外的な理由で修正する必要があるが、
その修正にミスっても完全停止まではさせたくないからです。
0544nobodyさん
2009/07/15(水) 13:52:04ID:???0545nobodyさん
2009/07/15(水) 13:55:04ID:yniO2VZrそれでも、括弧の対応ミスで、tryブロックのそのものの
最後の括弧が足りないというミス等は防げないと思いますが?
0546nobodyさん
2009/07/15(水) 13:59:07ID:???つーか、include するモジュールは、最低限
構文チェックくらいやっておいた方がいいと思うぞw
0547nobodyさん
2009/07/15(水) 13:59:48ID:yniO2VZrやっぱりだめでした。
0548nobodyさん
2009/07/15(水) 14:02:41ID:???0549nobodyさん
2009/07/15(水) 14:02:56ID:yniO2VZrやっぱりムリですか。
> つーか、include するモジュールは、最低限
> 構文チェックくらいやっておいた方がいいと思うぞw
ふぇ〜るせ〜ふ ってやつですw
なんかのフレームワークや(PHP構文が使える)CMSなんかで
ユーザーが入力したPHPコードを含む文章に構文エラーがあったときに、
分かりやすいメッセージかなんかを表示しているのがありそうだと思ったんですけどね。
0550nobodyさん
2009/07/15(水) 14:04:01ID:yniO2VZrPerl使えるからって、いーばるな!
0551nobodyさん
2009/07/15(水) 14:05:58ID:???549の要望なら、指定ファイルを読み込んで、その内容に、
動的な値を追加して、try しつつ eval 実行して結果を返す
ような拡張モジュール専用関数や専用クラスを作ると便利
かもしれない。
http://www.phppro.jp/phpmanual/php/function.eval.html
0552nobodyさん
2009/07/15(水) 14:06:13ID:yniO2VZr構文エラーチェックってのは思いついたんで
それ以外でお願いします。
0553nobodyさん
2009/07/15(水) 14:09:39ID:yniO2VZr0555nobodyさん
2009/07/15(水) 15:07:53ID:???http://php.benscom.com/manual/ja/function.uniqid.php
0556nobodyさん
2009/07/15(水) 20:06:04ID:???想像されてもいい値ならオートインクリメントだっていいぐらいだ
0557nobodyさん
2009/07/15(水) 20:56:47ID:???uniqid が楽だと思うけど
0558nobodyさん
2009/07/15(水) 20:58:59ID:???登録後じゃないとIDが出てこないという欠点はあるが。
でなきゃ、uniqid だね
0559nobodyさん
2009/07/15(水) 21:08:05ID:???0560nobodyさん
2009/07/16(木) 03:37:05ID:???直接データベースに入れればいいけど、
単に重複しない値を得るだけならuniqidの方が楽だろw
関数一個でいいんだぜ。
関数一個ですむことを負荷増やしてまでデータベースでやるとか
あほらしいw
0562nobodyさん
2009/07/16(木) 06:08:55ID:uYVqD/1s何かアドバイスくださいませ。
0563nobodyさん
2009/07/16(木) 09:19:39ID:???0564nobodyさん
2009/07/16(木) 09:47:57ID:???鯖側でIPを記録する
とかしてカウントする
クッキー(セッション)は消せるしIPも多くの人ならすぐに変えられるから
完全な対策は無理
ファイルのサイズを調べる関数はfilesize()
0565nobodyさん
2009/07/16(木) 13:11:50ID:uYVqD/1sありがとうございます。
なるほど・・
ipを記録する方法でやってみようと思います。
一応phpでipを記録する方法で考えてみたのですが、
0.データにアクセス
1.filesize()で○bytes以上であれば以下を実行
2.ip取得
3.記録されている(ダウンロード中の)ip全てを参照して、2で取得したipがあれば弾く
4.2で取得したipが一致しなければ、このipを記録
5.データをダウンロード開始
6.データのダウンロード終了、もしくわ途中で終了したりすれば記録したipを消去
で、いきなり3で詰まってしまいました・・
4で記録するipを3で参照するつもりで、
記録しておきたいのは、データのダウンロードしている間だけなんです。
でもこの”間だけ”という操作をどうすればいいのかよくわかりません(6のデータ転送”終了時”の判断方法も)・・
そもそも1〜6の操作が的外れかもしれませんが
どなたかよい方法を教えてくださいよろしくお願いします。
0566nobodyさん
2009/07/16(木) 13:14:57ID:uYVqD/1sデータのダウンロード中に、さらに同一ipからデータをダウンロードされる、、ということです、説明不足でしたすいません
0567軟式PHP
2009/07/16(木) 13:16:31ID:???mod_limitipconnとか使えないのかいな。
0568nobodyさん
2009/07/16(木) 13:18:30ID:iIDXJDL1ダウンロードボタンクリック→JavaScriptでボタンをdisabledにする
0569nobodyさん
2009/07/16(木) 13:31:14ID:uYVqD/1sなるほど、でも新しくページをリロードされたりクッキーとかと同じでやはり代えられてしまうのでしょうね
>>567
いえ、大丈夫です。
mod_limitipconn調べてみました、流し読みですが
なんとかできそうかもしれませんありがとうございました
0570nobodyさん
2009/07/16(木) 13:32:54ID:uYVqD/1sしかしながら、多重クリックで未然に防ぐことができるのではと思いました
ありがとうございました
0573nobodyさん
2009/07/16(木) 15:11:07ID:???大量のデータから重複のチェックなんてDBの十八番じゃないか
0574nobodyさん
2009/07/16(木) 15:37:23ID:NM9P6RACmb_ereg_replace("\"",'',$line);
とやっても消えません。
どうやったら良いのか、誰か教えてください。
0575nobodyさん
2009/07/16(木) 15:45:38ID:???0576nobodyさん
2009/07/16(木) 15:45:54ID:???ちなみにその例ではmb_ereg使わなくてもstr_replaceでいいと思うけど
コード
<?php
$text = 'The person said "Working is losing of life."';
echo mb_ereg_replace("\"",'',$text);
結果
The person said Working is losing of life.
0577nobodyさん
2009/07/16(木) 15:53:53ID:NM9P6RAC>>576
有難うございます。
でも、やっぱり削除されません。
何が原因なんでしょうね、これは…
0578nobodyさん
2009/07/16(木) 15:56:20ID:???0579nobodyさん
2009/07/16(木) 15:57:42ID:???用途なら、>>419に書いてあるじゃんw
だいたいランダムな値って言っているのに、
連番を答えるやつは頭が悪いね。
0581nobodyさん
2009/07/16(木) 16:08:06ID:NM9P6RAC有難うございます。一度違うやり方でやってみます。
0582nobodyさん
2009/07/16(木) 16:12:57ID:???答えてるやつは重複しなけりゃいいだっていう理論をもとに
質問者の求めてる「一般的ないい方法」を言ってるに過ぎないよ
ランダムな値を管理するには結局DB使うんでしょ?
ならオートインクリメントでもいいんじゃないの?っていう話
0583nobodyさん
2009/07/16(木) 16:16:09ID:???0584nobodyさん
2009/07/16(木) 16:18:29ID:???0585nobodyさん
2009/07/16(木) 17:08:56ID:???0586nobodyさん
2009/07/16(木) 17:39:57ID:???0587nobodyさん
2009/07/16(木) 17:43:16ID:???0588nobodyさん
2009/07/16(木) 18:02:35ID:wZUMSXTz俺昨日駅で拾った
0589nobodyさん
2009/07/16(木) 18:05:33ID:???0590nobodyさん
2009/07/16(木) 18:10:45ID:???> ランダムな値を管理するには結局DB使うんでしょ?
なんで決め付けてるわけ?
そんなの要件に合った?
ファイル・ディレクトリかもしれないじゃんか。
0591nobodyさん
2009/07/16(木) 18:18:27ID:???■ このスレッドは過去ログ倉庫に格納されています