【PHP】下らねぇ質問はここに書き込みやがれ 68
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/03(土) 22:52:16ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0737nobodyさん
2008/05/19(月) 11:12:13ID:???0738nobodyさん
2008/05/19(月) 11:24:04ID:???Javascriptで取得できるから、あとはがんばって。
ただ、ブラウザごとに微妙に動作が違った気がする。
<form onSubmit="alert(this.file.value)">
<input name="file" type="file">
<input type="submit">
</form>
0739nobodyさん
2008/05/19(月) 11:46:25ID:qHM47HMzhiddenにthis.file.valueを設定すればよいということですね。
別件で作ったJavaサーブレットのアップロードでは取得できたので
PHPが隠蔽しているのかもしれません。
Javascriptでやってみます。
ありがとうございました。
0740nobodyさん
2008/05/19(月) 15:47:38ID:???PHP+Oracle接続環境を作成の際にエラーが出まして、
もし、分かる方が居たら教えて頂ければと思っております。
仮想マシン:Xen
管理OS:CentOS5
ゲストOS:CentOS5,Fedora8
apache 2.2.8
php 5.2.6
configureは出来たのですが、makeで以下のようなエラーが出ました。
libphp5.la
/usr/bin/ld: cannot find -lirc
collect2: ld returned 1 exit status
make: *** [libphp5.la] エラー 1
CentOS5,Fedora8共にエラーが出ております。
lircが見つからないといわれているので、
yum install *lirc*で全部入れてみましたが駄目でした。
両OSで出来ないのでXenのカーネルが問題なんでしょうかね…
よろしくお願いします。
0742nobodyさん
2008/05/19(月) 18:09:53ID:???なんでライブラリの問題でカーネルが原因になるんだか
/usr/bin/ld: cannot find -lirc はlircが見つからないではなく
libirc.aが見つからないって意味だ
よって yum install *lirc* とか無駄
libircが入ったパッケージをインストールするか、強引だがリンカの指定から-lircを外して動けばOK
0743nobodyさん
2008/05/19(月) 18:45:13ID:???解答ありがとうございます。
仮想サーバーと同じ構成のマシンがもう1台ありまして、
そのマシンはFedora5なんですが、
makeまではいけたので、
Xenのカーネルが問題なのかなと思ってしまいました。
エラーの意味やライブラリを理解できていない自分には、
リンカの指定をはずすなどかなり難しいそうなので、
libircが入ったパッケージを探してみます。
0744nobodyさん
2008/05/19(月) 19:41:48ID:xzrDZ7d0Apache 2.0
PHP 5
$h = popen('unko.exe');
if ($h == FALSE) die('失敗したにょ!');
fputs($h, ・・・以下省略
pclose($h);
こんな処理をしたいのですが、unko.exe は実際にはありません。
無いにもかかわらず popen の戻り値が FALSE にならないので
die してくれません。ちゃんと die してほしんです。
何か良い方法はありませんか?
0745nobodyさん
2008/05/19(月) 19:45:03ID:???0746nobodyさん
2008/05/19(月) 20:09:53ID:???PEAR::AUTHを使ってみたいのですが、
パスワード暗号化の時saltを付け加える事ってできますか?
暗号化方法の選択でSMD5等が無いようなので…
0747746
2008/05/19(月) 20:16:05ID:???0748746
2008/05/19(月) 20:28:11ID:xxBfPPP+0749nobodyさん
2008/05/19(月) 20:47:56ID:???0750nobodyさん
2008/05/19(月) 20:50:38ID:???0751nobodyさん
2008/05/19(月) 20:53:44ID:???0752746
2008/05/19(月) 20:56:08ID:xxBfPPP+他でも聞いたのですが答えがなかったのです。
0753nobodyさん
2008/05/19(月) 20:57:51ID:???http://www.pearlgakki.com/
0754nobodyさん
2008/05/19(月) 20:59:14ID:???pearlってライブラリなかった?
0755nobodyさん
2008/05/19(月) 21:00:11ID:???http://www.jap.co.jp/pearl/
0756ハチミツ
2008/05/19(月) 21:52:54ID:sdAnx2Kbttp://bbs.832tool.net/
のショボい掲示板を作って、パーミッションは604にしました。
しかし、なぜかindex.phpのスクリプトが抜かれてしまいます。
教えてください。
また、サーバはXREA.COMを借りています。
セキュリティの穴があるとか言われたことがあるのですが、誰か詳しい方教えてください。
0757nobodyさん
2008/05/19(月) 21:56:08ID:???0758ハチミツ
2008/05/19(月) 22:05:23ID:sdAnx2Kbほぼ自作のindex.phpに穴があるせいか、パスワードの入ったログファイル(.cgiでパーミッション606)がアクセスされてしまうのです。
普通なら.cgiは、アクセスされないのですが、穴の性で見られてしまっているということです。
0759nobodyさん
2008/05/19(月) 22:07:19ID:???どっかで見たと思ったらあった。
情報小出しにするんだったら、プーさんになめられとくもんだと思う。
△▲ WebProg 初心者の質問 Part17 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1204462146/321-322
0760nobodyさん
2008/05/19(月) 22:08:14ID:???0761ハチミツ
2008/05/19(月) 22:10:33ID:sdAnx2Kbhttp://bbs.832tool.net/?id=test%00index.php
この不正アクセスで、index.phpがヌルバイト攻撃で不正アクセスされたのですが、%00を排除することにより、対策はできました。
今は
http://bbs.832tool.net/?id=%
こんなのは、不正アクセスとして、エラールーチンに飛ばしているのですが、
http://bbs.832tool.net/?id=test%00
が、チェックをすりぬけられます。
これは、穴になっていて、index.phpは不正アクセスされるのでしょうか?
0762ハチミツ
2008/05/19(月) 22:13:02ID:sdAnx2Kbよく意味がわからないです。
>>760
不正にindex.phpが見られたら、
同じディレクディレクトリにあったとしたら
pass.cgi
が見られたり、
../pass.cgi
と指定されたら見られてしまいます。
0763nobodyさん
2008/05/19(月) 22:21:40ID:???日本語も良く分からない。
index.phpに(不正なクエリと共に?)アクセスされと同階層にあるpass.cgiが見られてしまう?
謎。
ドキュメントルート以上に置くかapacheをちゃんと設定するかaccessで拒否るか拡張子phpにすればいいのでは?
0764ハチミツ
2008/05/19(月) 22:26:56ID:sdAnx2Kb指定されたファイルが見られてしまうと言うことです。失礼しました。
データの書き込みは
{$id}-log.cgi
と記述していまして、
id=testして、あればログファイルを記述しなければエラーをだすようにしているのですが
この$_GET['id'];
に不正に
index.phpが仕掛けれているせいか、-log.cgiが擦り抜けられてしまうという怖い攻撃らしいです。
昔はそれで、中身が表示されたのですが、今は対策したはずです。しかし、中身が漏れているらしく…
教えてほしいです。
0765ハチミツ
2008/05/19(月) 22:29:04ID:sdAnx2Kb0766nobodyさん
2008/05/19(月) 22:36:15ID:???0767ハチミツ
2008/05/19(月) 22:38:02ID:sdAnx2Kb0768nobodyさん
2008/05/19(月) 22:40:51ID:???ない気がする。そんなの、どう対策すべきかは誰にも判らんだろ。
0771nobodyさん
2008/05/19(月) 22:50:24ID:???いやー、でもさ何気に>>746はここの解答者には難しくね?(俺含め)
そりゃ平のMD5がオンライン辞書攻撃であっさり抜かれる事があるのは承知してるが
0773nobodyさん
2008/05/19(月) 23:54:40ID:???0774nobodyさん
2008/05/20(火) 00:01:01ID:???0775nobodyさん
2008/05/20(火) 00:16:10ID:???773 名前:nobodyさん[sage] 投稿日:2008/05/19(月) 23:54:40 ID:???
横から悪いが、PEARのソースコードなんてそんな簡単に改造できるもんなん?
0776nobodyさん
2008/05/20(火) 00:17:29ID:???ソースも読めない池沼と言うべきだった
0777nobodyさん
2008/05/20(火) 00:39:40ID:???0778nobodyさん
2008/05/20(火) 00:49:15ID:???それすら出来ないならPEARまんま使うか、他のよさげなライブラリ探すしかない。
だって自分で作りたいんでしょ?
0779nobodyさん
2008/05/20(火) 01:06:40ID:YowAhmFQ一回のクエリで全データを配列に入れて、それからforなどで表示する方法と、
どちらが速くて負荷がかからないですかね?
実験では後者ですが、具体的な差が説明されている
サイトなどをご存じでしたら、教えて下さい。
0780nobodyさん
2008/05/20(火) 01:18:34ID:???通信ならDB呼ぶオーバヘッドを考慮して前者
メモリなら後者
あとね自分でベンチとったならそれ信じなよ
こんな匿名のとこで聞いて前者のほうが断然早い!とか言えば信じ込んじゃうわけ?
自分の結果に自信を持ってくれ
0782nobodyさん
2008/05/20(火) 11:27:00ID:MX4GJ438上みたいな記述って問題ないでしょうか? echo $var1_1と試したところ、
ちゃんと表示はされてるんですが、念のため確認したいです。
どなたかご回答お願いします。
0783nobodyさん
2008/05/20(火) 11:27:56ID:???0784nobodyさん
2008/05/20(火) 11:29:22ID:???調べるって大事
http://www.php.net/manual/ja/language.expressions.php
0785nobodyさん
2008/05/20(火) 11:41:01ID:???以前調べたら、PHPだけがJavaとかPerlとかCと三項演算子の結合の向きが違ってたし。
0786nobodyさん
2008/05/20(火) 12:40:09ID:???つまりこんな関数があるとき、
function hoge() {
echo "hogehoge";
}
$a = `hoge()`
// $a = "hogehoge" となる
ということがやりたいのですが。
0787nobodyさん
2008/05/20(火) 13:08:12ID:???http://jp2.php.net/manual/ja/book.outcontrol.php
0788nobodyさん
2008/05/20(火) 13:13:01ID:???そのページよりは
http://www.php.net/manual/ja/language.operators.php
の方がいいでしょ。
代入演算子は right結合だから
$a = $b = $c は $a = ($b = $c) として評価
0789786
2008/05/20(火) 15:14:45ID:???0790nobodyさん
2008/05/20(火) 20:01:58ID:???echoで自分の定義したオブジェクトを指定した場合に特定のメソッドの結果を返させたいのですが、どうやれば良いのでしょうか。
例:
($barはfooクラスのインスタンスであるとして)
echo $bar;
ってしたときに
echo $bar.toString();
のような動作をさせたいのですが。
0791nobodyさん
2008/05/20(火) 20:09:02ID:???正しくは
echo $bar->toString();って感じです。
echoが通常呼び出す文字列変換メソッド?を書き換えられれば良いのでしょうか。よくわかりません。
0792nobodyさん
2008/05/20(火) 20:28:34ID:???0793nobodyさん
2008/05/20(火) 20:41:24ID:???デフォルトではなんかのインターフェイスを呼んでおいてほしいです。toString()が存在するかどうかすら隠ぺいしておきたい。
なるべくソースコードをすっきりさせるために…
0794nobodyさん
2008/05/20(火) 20:42:27ID:???これは明示的に変換が必要なケースだろ
0795nobodyさん
2008/05/20(火) 20:48:21ID:???0796nobodyさん
2008/05/20(火) 20:51:10ID:???http://jp.php.net/manual/ja/language.oop5.magic.php
0798nobodyさん
2008/05/20(火) 22:17:15ID:aFyFy0AFmb_convert_encoding()でShift_JIS→UTF-8に文字コードを変換して
simplexml_load_string()でxmlのデータを扱うおうとしてるけどエラー出るから助けてくれ
エラーは「Entity: line 1: parser error : switching encoding: encoder error」って出てるけどエンコード系でダメなの?
コードは下な感じ
<?php
$_xmlFile = file_get_contents( "etc.xml" );
$_xmlFile = mb_convert_encoding( $_xmlFile, "UTF-8", "Shift_JIS" );
$_xml = simplexml_load_string( $_xmlFile );
?>
ググッたらsimplexml_load_string()はUTF-8でないとダメ!って見つけてこうやってんだけど
他に何かありますか?
0799nobodyさん
2008/05/20(火) 22:22:38ID:???0800nobodyさん
2008/05/20(火) 22:37:15ID:aFyFy0AFxmlは別のjavaプログラムからShift_JISで出力してる
<?xml version="1.0" encoding="Shift_JIS" ?>
<data>
<no_001>
<date>2008/05/20</date>
<comment>あいうえお</comment>
</no_001>
</data>
>>798のmb_convert_encoding()の返り値の$_xmlFileを
var_dump()でみたら2バイト文字は文字化けしてないんですけど・・・
エラー的には1行目がおかしい?(文字コード関係?)
0801nobodyさん
2008/05/20(火) 22:42:19ID:???0803nobodyさん
2008/05/20(火) 23:21:06ID:???XMLファイルの中でエンコードが指定されてるから、ファイルの文字コードが正しければ、
mb_convert_encoding は不要。
0804nobodyさん
2008/05/20(火) 23:38:22ID:???>>801
Shift_JISで出さないとxmlファイルの一部が文字化けしちゃうんだよね
mb_convert_encoding()がなんとかしてくれると思ったんだが
>>802
試してみたが"sjis"でも変わらなかった
>>803
実はxmlファイルをjava側で出力してる時に全角ハイフンの文字化け対策で
ファイル出力のときの文字コード指定はWindows_31Jにしてるんだけど・・・それが原因だったりするのかな(文字コードが合ってないってことで)
文字化けしてないんで大丈夫と思ってるんだけど(xmlにはWindows-31J指定できないんでShift_JISにしてる)
0805nobodyさん
2008/05/20(火) 23:46:18ID:???>xmlにはWindows-31J指定できないんで
これ本当?Windows-31J は IANA文字コードセット名だから使えて良い気がするんだけど。
PHPもサポートしてるし。
http://www.php.net/manual/ja/mbstring.encodings.php
とりあえず全角ハイフン無しのデータ作って読み込めるところまでやった方が良いんじゃね。
0806nobodyさん
2008/05/20(火) 23:50:24ID:rMEOfKkXこれはどのように理解すればいいでしょうか?
$a = 'hoge';
$b =& $a;
var_dump($b);
$a = 'poge';
var_dump($b);
unset($a);
var_dump($b);
0807nobodyさん
2008/05/21(水) 00:01:15ID:???ほいほい
http://jp2.php.net/manual/ja/language.references.unset.php
0810nobodyさん
2008/05/21(水) 01:40:53ID:???名前とか。
0811nobodyさん
2008/05/21(水) 01:57:50ID:???あんまりマトモなやり方じゃないが debug_backtrace で一応取れる。
マトモな方法があったら自分も知りたい。
http://jp.php.net/manual/ja/function.debug-backtrace.php
0812nobodyさん
2008/05/21(水) 01:58:57ID:???0813nobodyさん
2008/05/21(水) 02:29:38ID:???0814nobodyさん
2008/05/21(水) 02:55:49ID:???0816nobodyさん
2008/05/21(水) 09:04:09ID:???class BOO {
static function booo() {
}
}
class FOO extends BOO {
}
FOO::booo();
で、booo関数内で "FOO" を取得したいという意味なら、キビシイ気がする。
多分無理なんじゃなかろうか。
0817nobodyさん
2008/05/21(水) 12:23:44ID:???でもそれだと意味が無いよなぁ。
User::Create();
とかやりたいけど。Factoryでいいか。
0818nobodyさん
2008/05/21(水) 13:42:40ID:8D+5rC/5簡単そうだからみんな作らないのかな・・・
利用するだけの俺にはサッパリだが。
作り方の載っているサイトでもいいのでどなたか教えてください。
0819nobodyさん
2008/05/21(水) 14:20:55ID:???それまで待つ
0820nobodyさん
2008/05/21(水) 17:51:04ID:7+lnnayNmysqlにデータを登録するとき、<p style="color:red;">A</p>のような文字列を入れたい場合は
htmlspecialchars()をすべきなんでしょうか?
addslashes()でやったところ上手くいかなかったのですが、html〜をしたら上手くいきました
でも、本を読むとhtml〜は引き出したデータをhtmlに出力するときに使うものと
あるので、変なことをしている(どこかに手違いがある?)のかと心配になっています。
どうなんでしょうか?
環境はphp5 mysql5 apache2です
よろしくお願いします
0822nobodyさん
2008/05/21(水) 18:00:21ID:???addslashedで何がダメだったのか不明だが、prepareを使うとか
mysql限定でいいならmysql_real_escape_stringとかそのあたりで好きなの使え
0824nobodyさん
2008/05/21(水) 22:41:35ID:2LrwwB21prototype.jsのAjax.Requestを用いてPHPから値を取得したいのですが、PHP側からはどのように値を返せばよいのでしょうか?
例として、js側は…
new Ajax.Request(
'return.php',
{
method: 'post',
parameters:Form.serialize(this),
onComplete:function(request){
alert(request.responseText); // ここの受け取り方もいまいち自身がありません…
},
});
とすると、return.php側ではどのように返せばよいのか…単純に return "foo"; ではダメでした。
よろしくお願いします。
0826nobodyさん
2008/05/21(水) 22:48:37ID:???0827nobodyさん
2008/05/21(水) 22:56:12ID:???レスポンスコードとかヘッダとか一部の小さいやつ除く)
0828nobodyさん
2008/05/22(木) 00:11:42ID:b0IxLnKbメールで画像を送ったら縮小されてまたメールで帰ってくるcgiかphpとかありますか?
かなり困ってます!
0829nobodyさん
2008/05/22(木) 00:42:00ID:???0830nobodyさん
2008/05/22(木) 01:35:10ID:6+GQhqgHsakuraのレンタルサーバ借りてるのですが、簡単なお小遣い帳のCGIがありましたら、ご教授ください。
0831nobodyさん
2008/05/22(木) 01:54:57ID:???このスレは作る人を対象としたスレです
0832nobodyさん
2008/05/22(木) 02:58:49ID:???0833nobodyさん
2008/05/22(木) 03:40:10ID:???いついつにいくらお小遣いをもらったとか、次の日にママンに内緒で銀行からお金振り込んで
モリタポ買っちゃったとか、そういうのを書き留めておきたいと。で、世界中に公開したいと。
ずっと前にWeb制作板の「こんなCGI探してます」スレが埋まって、
誰も次スレを立てないまま現在に至ってるからこうなるんだろうか。
0834nobodyさん
2008/05/22(木) 12:16:13ID:AwS6iPvU$timestamp=***("Y年m月d日",$date);
みたいな。
strtotimeは規定の形式じゃないといけないですし
なんか無いですかね?
0835nobodyさん
2008/05/22(木) 13:01:01ID:???0836nobodyさん
2008/05/22(木) 13:01:28ID:mji3QyC6fscanf()
■ このスレッドは過去ログ倉庫に格納されています