【PHP】下らねぇ質問はここに書き込みやがれ 28
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/03(日) 21:01:08ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0348nobodyさん
2006/09/08(金) 04:30:03ID:???ただJavaの形により近いのは5.xかな。
0349322
2006/09/08(金) 08:13:59ID:???返信有難うございます。
MySQL内はUTF-8で
出力はEUC-JPにしたいです。
Mysqlからとって来た配列をmb_convert_escapeでエンコードするだけでは出来ないと結うことでしょうか?
0350nobodyさん
2006/09/08(金) 08:20:24ID:???それにSQLのバージョンによっては文字コードを投げないと駄目だったような気がする
0351nobodyさん
2006/09/08(金) 08:26:11ID:???GDのどの関数を使って実現させるのでしょうか?
0352nobodyさん
2006/09/08(金) 08:50:17ID:???PEARにあるらしい。過去スレから発掘。
【PHP】下らねぇ質問はここに書き込みやがれ 24
http://pc8.2ch.net/test/read.cgi/php/1152251693/441
PEAR::Text_CAPTCHA
ttp://pear.php.net/package/Text_CAPTCHA
ttp://pear.plus-server.net/package.text.text-captcha.html
紹介ページ
ttp://www.doyouphp.jp/sample/sample_others_captcha.shtml
ttp://kawama.jp/archives/2006/05/peartext_captch.html
ttp://blog.poyo.jp/archives.php/categ-1/year-2005/month-1/id-1106990727
0353322
2006/09/08(金) 08:50:46ID:???レス有難うございます。
mb_convert_encodingでした...
XREAに問い合わせたところ、
set names ujis;
を使えといわれたのですが検索してもよく分からず困っております。
0354nobodyさん
2006/09/08(金) 08:55:38ID:???どうもありがとうございます!
PEAR使ったことないのですが、
これを機に使ってテストしてみたいと思います。
0355nobodyさん
2006/09/08(金) 09:13:19ID:???なんでお前はみんなのアドバイスをいちいち無視して質問を続けるんだボケ。
XREAにそうやれと言われたのなら、やってみればいいだろチンカス。
0356nobodyさん
2006/09/08(金) 09:14:33ID:???set names ujis
set names sjis
set names mysql
とかぐぐってもわからん?
SQLとしてPHPからDBクライアントに文字コードを指定するってこった
でDBテーブルの文字コードは何なんだ?UTF8(=ujis)なら
set names ujis
で構わんけどさ。
ようはDBのコードにあわせろってことだ
a.PHPの文字コード
b.DBクライアントの文字指定
c.DBの文字コード
set names で b=cにしろってことだ
aとbの違いは、mb_convert_encodingで九州しる
これでわからんかったら、もうあきらめな
0357nobodyさん
2006/09/08(金) 09:15:32ID:???mysql_query("set names ujis;");
0358322
2006/09/08(金) 09:21:02ID:???ありがとうございます。
357さんの仰る通りです。
いきなりこれを使えとだけ言われたので意味が分からず困っておりました。
>>355
いつアドバイス無視した?死ね
0359356
2006/09/08(金) 09:21:03ID:???>>353
あんた自分で試しもせずに、質問ばっかしてんのか?
そりゃ最低だな。答えるんじゃなかったよ
0360nobodyさん
2006/09/08(金) 09:23:57ID:???0361356
2006/09/08(金) 09:26:17ID:???えっ、「set names ujis やってみ」って言われて
mysql_query("set names ujis;");
が探せんのか?
ぐぐったらいくらでも答えでてくるって・・・
俺から言わせたら、自分で調べることを放棄してるようにしか
見えんぞ?
たぶん >>355 はそういうことを言ってるんだとおもうよ
0363322
2006/09/08(金) 09:33:36ID:???自分で調べるより楽チンでいいぜ!これからもしっかり答えろよな!
0364nobodyさん
2006/09/08(金) 09:50:03ID:???0365322
2006/09/08(金) 09:54:22ID:???すみません。mb_startもset names ujisも試したのですが変わらなかったので質問させていただきました。
とても分かりやすいご回答、感謝いたします。
mysql_query("SET NAMES ujis");
〜〜〜
echo mb_convert_encoding($msg, 'SJIS', 'auto');
で変換されました。(理想としてはEUC-JPがよかったのですができませんでした)
本当に有難うございます。
>>360
「質問房」は否定しませんが、「礼儀を知らない」と言われるのは心外です。
もっとヘコヘコしろということでしょうか?
>>363
ほんと死ね
お前見たいのがいるから2ちゃんは掃き溜めっていわれるんだよ
0366nobodyさん
2006/09/08(金) 10:00:38ID:???(゚д゚)
0367nobodyさん
2006/09/08(金) 10:22:19ID:???0368nobodyさん
2006/09/08(金) 10:27:25ID:???>>>355
>いつアドバイス無視した?死ね
>>>360
>「礼儀を知らない」と言われるのは心外です。
この二つの発言の矛盾にすら気が付かない>>322。
やはりIDを出さないチンカス質問厨は無視する、というルールを徹底すべきだと思ったね。
0369>>322の華麗なる歴史:まとめ
2006/09/08(金) 10:37:36ID:???>>349において、>>323からのアドバイス・指示を無視。それらについて答えず、勝手に質問を重ねる。
>>353において、XREAから具体的な指示を出されたのにまたも無視。
「set names ujis」という明確なキーワードがあるにも関わらず、それを「検索できない」という基地害っぷりを披露。
>>358において、「いきなりこれを使えとだけ言われたので意味が分からず」などと、ダメダメチンカス・マニュアル人間っぷりまで開陳。
なおかつ、>>355の指摘に逆ギレ。しかも「死ね」という犯罪的な脅迫発言が飛び出す。
>>363において、騙りらしき者が現れる。これもそもそもIDを出さずに質問した>>322が悪い。
>>365において、「もっとヘコヘコしろということでしょうか?」などと見当違いの頓珍漢なことを言い出す始末。
そして今度は>>363に向けて脅迫&侮辱発言。
0370nobodyさん
2006/09/08(金) 11:23:55ID:???0371nobodyさん
2006/09/08(金) 12:00:05ID:???0372nobodyさん
2006/09/08(金) 12:22:07ID:???社会のクズ人間さようなら。アッハッハーm9(^Д^)
0373322
2006/09/08(金) 12:29:33ID:???はぁ?こっちは質問しただけだよ、なんでそういうひねくれた考えにしかならないわけ?答えがわからないなら書くなよカス。
>>372
お前が一番クズだよ。
mb_convert_set_name_ujis関数を使ったら全く文字化けされなくなりました。ありがとうございます、XREAさん。
0374nobodyさん
2006/09/08(金) 13:07:09ID:???ということでスルー汁。
0376nobodyさん
2006/09/08(金) 13:26:24ID:???「死ね」が脅迫になるとは初耳だねw。
確かに322はちょっとおかしいけど
よくありがちなミスだったから今後のために良いと思うよ
0377nobodyさん
2006/09/08(金) 14:31:03ID:???乗り遅れた事を激しく悔やむ。
0378nobodyさん
2006/09/08(金) 15:11:56ID:???(ASPでいうところのServer.MapPath)みたいなのをPHPで
行うとすればどのような方法が良いでしょうか?
0379nobodyさん
2006/09/08(金) 15:19:10ID:???も少し説明すると、独自にログファイルを生成したいのですが、
どの階層のファイルからcallされても、トップの下にあるLogフォルダに
(URLでいうと *****.com/log/日付.log)な感じで生成したいのです。
realpathだと、自分自身からの相対パスでないと駄目なようなので。
できれば、上流からのパスで指定したいです。
0381nobodyさん
2006/09/08(金) 15:51:17ID:???そうなんですけど、/opt/の下にある仮想ディレクトリにあるので、
使えないのです。
美しくないけど、グローバル定数に入れておくのが一番楽ですかね orz
0382nobodyさん
2006/09/08(金) 18:23:15ID:???fopen('http://USER:PASSWORD@domain/', ・・・・)
という書き方でdigest認証を突破することはできますか?
もし駄目なら何か方法はありますか?
けして悪用するわけではないで教えてください。
0383nobodyさん
2006/09/08(金) 18:33:41ID:???それならdirname(__FILE__)とかでいいんだろうけど
固定のディレクトリって決めてるなら
むしろabsoluteな指定の方がいいんじゃないか
いまいち説明を把握できてないかもしれん
0384nobodyさん
2006/09/08(金) 19:58:35ID:???1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0385nobodyさん
2006/09/08(金) 22:02:26ID:???どっかに落ちてないでしょうか
0386nobodyさん
2006/09/08(金) 22:13:13ID:???0387nobodyさん
2006/09/08(金) 23:09:18ID:???そんなもん5分で自作しる。
function decrgb($c) {
return array(
hexdec(substr($c, 1, 2)),
hexdec(substr($c, 3, 2)),
hexdec(substr($c, 5, 2)),
);
}
var_dump(decrgb("#00FFA0"));
出力結果
array(3) {
[0]=>
int(0)
[1]=>
int(255)
[2]=>
int(160)
}
0390nobodyさん
2006/09/08(金) 23:18:55ID:???0392nobodyさん
2006/09/08(金) 23:35:40ID:???文字の位置って hexdec($c{1} . $c{2}) みたいな感じ?
substrとどっちがマシか微妙な感じだけど…
0393nobodyさん
2006/09/08(金) 23:42:29ID:???まあ、ヘビーなループに放り込まない限りは期待した結果を得られればいい。
0394nobodyさん
2006/09/08(金) 23:49:01ID:Bt7aH3H50395nobodyさん
2006/09/09(土) 00:03:49ID:???項目がたくさんあるのですが、どうやったら簡単に
DBから引っ張った値を表示できますかね?
テキストボックスと、チェックボックスと、ラジオボタンと
動的に項目数が増える項目があるのですが。
0396nobodyさん
2006/09/09(土) 00:06:31ID:???まず自分でソースを書いて分からない所を聞いてください。
ここはWEBプログラムする人の板です。
あとID出して下さいね。
詳細は>>1を一読の事。
DBから値を取得して、必要なHTMLを表示するとしか答えにくい質問のような・・。
0398nobodyさん
2006/09/09(土) 00:26:47ID:???チェックボックスやラジオボタンが出てくるような設定画面だと、
設定可能な有効範囲とか種類が決まってないといかんと思う。
そういったデータをどのように格納しておくかで設計も決まってくるかと。
0399395
2006/09/09(土) 00:33:37ID:???あとはコーディングするだけなのですが、
いかんせん項目が多いので
楽な方法で実装したいのですが。。
別に根気よく書けば問題ないのだが、
どうやれば一番効率いいかなと思って。
0400nobodyさん
2006/09/09(土) 00:44:12ID:???DBでもiniファイルでもあるいは単なるPHPの配列データでもいいから
設定項目と設定値の型と設定可能範囲などを記録したもの作って、
あとはそれ読み込んでループで回しながらデータ通りにHTML吐くだけかと。
0401395
2006/09/09(土) 00:52:22ID:???なるほど。ありがトン
60部品くらいある画面6画面も3日で作らないといけなくて、
困っていますた。
あと、追加ボタンがあって、動的に増えていく項目もあるのですが、、
これはどう扱えばいいのでしょう。DBからの読み書きがあるのですが。。。
これも悩みの種なのです。設定項目数が一定しないから、iniにも書きづらいです
0402nobodyさん
2006/09/09(土) 01:10:10ID:???0403nobodyさん
2006/09/09(土) 01:18:59ID:???聞いてる限りじゃ3日どころか1日でやる仕事だがw
動的に増えるフォームはその登録項目自体に現在の項目数をhiddenで持たせて
追加ボタンクリック→1個増やして表示、でいいんじゃないの?
iniには初期数と最大数でも格納しときゃいいと思うが。
イマイチレベル低すぎて、どこで困ってるのか分からんです。
なんか仕様を整理して後はその通りに実装する、ってだけで終わる話にしか聞こえない。
0404nobodyさん
2006/09/09(土) 01:34:07ID:???作り方がどうこうっていうより、各項目の状態を仕様としてまとめられてない時点で
多分今のあなたにはそれを効率よく作ることは無理だと思う。
諦めて地道に作った方がいいんじゃないのか?
0405nobodyさん
2006/09/09(土) 01:35:22ID:???必要なのは言語の勉強ではなく設計の勉強。
言語仕様が分かればプログラムが書けると思うのは壮絶な勘違い。
0406395
2006/09/09(土) 01:47:06ID:???あと製造開始まで2,3日あるからそれまで仕様をまとめます
3日といわず1日でできるように。。
HTML_QuickForm教えてくれた方もありがとうございました
0407nobodyさん
2006/09/09(土) 01:49:31ID:???レイアウトはかなり作りこまれたものになると思うし。
とりあえず3日かけてベタ書きするのみ。
そういう仕様にしてしまったのなら。
「使いづらいからページ分けて」と言われ、嫌にならないことを祈るよ。
0408nobodyさん
2006/09/09(土) 02:25:23ID:???渡された画面を動的生成できるように作るだけだろ?
0409nobodyさん
2006/09/09(土) 06:26:39ID:???>「死ね」が脅迫になるとは初耳だねw。
>>322が慌てて自己弁護に走り出しました。
しかしもう手遅れです。彼はもう既に犯罪者なのですから。
0410nobodyさん
2006/09/09(土) 07:18:40ID:stHF8kGV0412nobodyさん
2006/09/09(土) 11:27:16ID:???最低限の条件の上での設計になるだろう。で、その設計
通りに作ると、当初想定していた条件範囲内での変更
であれば簡単に対応できる。
しかし、設計の想定条件を越える変更を加えようとすると
折角時間かけて設計したのにグズグズになってしまうこともある。
そうなると、あぁ〜前提条件ミスったな。とか
あれもこれも、欲張るんじゃなかった。とか
いっそのことベタ書きでもよかった。とか後悔することもある。
結構、バランス難しいと思うけどね。
0413nobodyさん
2006/09/09(土) 11:27:33ID:???ホントに脊髄反射だな。
そもそもhiddenデータも含めてエラーチェックされてれば
セキュリティ的な問題は出ないよ。
0416nobodyさん
2006/09/09(土) 11:52:34ID:???0417411
2006/09/09(土) 12:25:54ID:???セキュリティは重要な時代になってると思うよ?CSRFあるしな
hiddenの件は書き方足りなかったね。すんません。
案外、(hidden=画面から見えない項目)<>ユーザからの入力項目
と認識してない人が多いから。hiddenもSubmitの都度他の入力項目と
同じと考えようね。(hiddenであろうとなかろうと、って認識してない
人が多いって事)ということを言いたかった。
0418411
2006/09/09(土) 12:35:04ID:???まぁいっか・・・
0419nobodyさん
2006/09/09(土) 12:47:01ID:???0420nobodyさん
2006/09/09(土) 13:09:25ID:bt/VDzRMPEARのDB_DataObjectで「UPDATE」するときの質問です。
DB_DataObjectのインクルードや設定ファイル読み込みが終わったとしします。
numが1のデータを探して年齢を変更するといった場合は
$hoge=DB_DataObject::factory("hoges");
$hoge->get(num,1);
$hoge->age = 15;
$hoge->update();
でできるのですが、numが1で名前がyamadaのデータの年齢を変更するといった場合がうまくできません。
$hoge=DB_DataObject::factory("hoges");
$hoge->whereAdd('id = 1');
$hoge->whereAdd('name = yamada');
$hoge->age = 15;
$hoge->update();
PEARのドキュメントをみても、複数絞込みのUPDATEの例がなくてこまっています。
直接SQL query()をなげるしかないのでしょうか。
0422かむかむ
2006/09/09(土) 15:03:38ID:WZEde27eもっと効率的な方法ありますでしょうか?
class Globals {
public $user = array();
//POST
function Post($element) {
if(!is_array($element)) {
$this->user[$elsement] = htmlout($_POST[$elsement]);
} else {
foreach($element as $element=>$key) {
$this->user[$elsement][$key] = htmlout($_POST[$elsement][$key]);
}
}
}
//GET
function Get($element) {
if(!is_array($element)) {
$this->user[$elsement] = htmlout($_GET[$elsement]);
} else {
foreach($element as $element=>$key) {
$this->user[$elsement][$key] = htmlout($_GET[$elsement][$key]);
}
}
}
0424かむかむ
2006/09/09(土) 15:22:41ID:WZEde27e返レスありがとうございまする!
基本的に分かりやすいのがベストだと思っているんでこんなクラス名・メソッド名にしました(`□′)b
$global = new Globals;
$global->Post('text');
$global->Get('hoge');
こんな感じでインスタンスしてますが、できればGET,POST関係なくとれれば(内部で対応)できればと考えてます
$global = new Globals;
$global->_GP('text');
$global->_GP('hoge');
0425420
2006/09/09(土) 15:24:18ID:bt/VDzRMありがとうございます。やはりそうですかね。できれば、テーブル構造の変化も予想されるので、直接SQLを記述する方法は取りたくなのです。
query();使う以外に方法はないものでしょうか。
0426nobodyさん
2006/09/09(土) 15:40:56ID:???フォームからの書き込みをphpで処理し
xmlとして出力するものを作っています。
Operaで全角文字を書き込むと、
一部の文字が勝手に実体参照に変換され送られています。
(たとえば「〜」が「?」に)。
このため、文面の一部としてフォームに書き込まれた「&」を「&」に変換する際、
既に実体参照に変換された全角文字の先頭の「&」までもが
更に「&」に変換されてしまい、ぐちゃぐちゃになってしまいます。
Firefoxではこうしたことは起きないようです。
どなかたうまい解決法を教えてくださいませんか。お願いします。
0428nobodyさん
2006/09/09(土) 15:48:31ID:???「&」を「&」に変換する際、
更に「&」に変換されてしまい、
です。すいません。
0429428
2006/09/09(土) 16:10:49ID:WZEde27e0430nobodyさん
2006/09/09(土) 16:15:29ID:???そういうのをクラスにするのは、ただの無駄だと思うけど。
どうしてもGET, POSTを統一したければ
$var = (getenv("REQUEST_METHOD") == 'GET') ? $_GET : $_POST;
こんなんで、十分では。
0431426
2006/09/09(土) 16:16:40ID:???やっぱり実体参照を全部実体に変換して、
その上で再度実体参照に変換するしかないですよね。
0432nobodyさん
2006/09/09(土) 16:59:51ID:???ちょ、おまw
こんなことができなくなるよ。
<form method="post" action="example.php?foo=getdata">
<input name="foo" type="text" value="postdata">
</form>
0433nobodyさん
2006/09/09(土) 17:11:07ID:???0434nobodyさん
2006/09/09(土) 17:41:53ID:???0438nobodyさん
2006/09/09(土) 20:19:18ID:???0439nobodyさん
2006/09/09(土) 20:22:38ID:???仮に出来たとしてもやるべきではないわな。
POSTなのにわざわざURL引数としてパラメータ指定する意味がわからん。
0441nobodyさん
2006/09/09(土) 21:51:01ID:???いや、GETとPOSTの組み合わせは問題ないと思うけど
Firefox、Opera、IE、Safari、au W31CA、DoCoMo So505is、Lynx で問題無かったし、
W3C のHTMLチェックと、HTML-lint のチェックも通ったよ
それに、HTMLの仕様をざっと読んだ限りでは問題点は発見できなかった
見落としているかもしれないが…
0443初心者ですいません
2006/09/09(土) 23:05:47ID:7mfku9TF<?php include("○○○.php"); ?>
これは外部からphpを呼び込めますが。
これを拡張子がHTMLでも呼び出したいのですが
方法とかあるのでしょうか?
拡張子がphpの場合は、うまいことよびだされるのですがhtmlにすると
エラーがでて無理です。
.htaccessとうでやり方がありましたら教えて下さい m(_ _"m)
0445nobodyさん
2006/09/09(土) 23:15:12ID:???やっときちんとID出してる質問者さんが・・
読み込んだHTMLがPHPとして問題があるからエラー出てるのかな
0446nobodyさん
2006/09/09(土) 23:22:40ID:???HTTP的には「POSTメソッドのリクエスト先URLがexample.php?foo=data」
となっているというだけ。というのがより正しいような気がする。
で、本題だけど、少なくとも
<form method="post" action="example.php?foo=data">
<input name="hoge" type="text" value="postdata">
なんていうのは多くのサイトでやってることだよね?
でできる?できない?と意見が割れてるのは
<form method="post" action="example.php?foo=data">
<input name="foo" type="text" value="postdata">
と同じ名称(foo)を指定した場合のことですよね?
ちょっと読んでて気になったのでまとめてみたずらー
0447nobodyさん
2006/09/09(土) 23:25:10ID:???そのHTMLファイルの拡張子をPHPに変えるというのも一つの手だな
じゃあ俺はちょっくらラーメン食べに言ってくる
■ このスレッドは過去ログ倉庫に格納されています