【PHP】下らねぇ質問はここに書き込みやがれ 56
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/11(木) 17:55:41ID:uObe69hrPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0592nobodyさん
2007/10/19(金) 08:40:54ID:???phpをろくに理解してなさそうだなw
0593nobodyさん
2007/10/19(金) 09:08:24ID:???0594nobodyさん
2007/10/19(金) 09:16:06ID:???近頃のガッコはphp教えるのか
0595nobodyさん
2007/10/19(金) 09:58:31ID:???>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
高専でもやんねーぞこんなの
相当キてる狂死だな
0597nobodyさん
2007/10/19(金) 10:35:47ID:???0598nobodyさん
2007/10/19(金) 10:38:58ID:???>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
三つまとめて答えると
客のレベルとニーズと納期と金次第
これ以上も無ければこれ以下もないと思うが…
0599nobodyさん
2007/10/19(金) 10:43:23ID:???0600nobodyさん
2007/10/19(金) 10:56:41ID:???>授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから
日本の法律に定める高等学校だとしたら、この時点で教師失格だな
大学じゃあるまいに、検定済み教科書を使うことが法律で決まっている
0601nobodyさん
2007/10/19(金) 10:59:39ID:???「客のレベル」はちょっと違うだろ
技術的なことを知っている客は多くないから、
どっちかというとSEが客に提案しないといけない
0602nobodyさん
2007/10/19(金) 11:30:51ID:???0604nobodyさん
2007/10/19(金) 12:14:25ID:???0605nobodyさん
2007/10/19(金) 13:00:51ID:???0606nobodyさん
2007/10/19(金) 13:08:02ID:r5ngcnDV状況は…
LAN内の「192.168.1.2」に、CentOS5 + Apache + PHP5.1.6を起動。
同じく「192.168.1.3」に、CentOS5 + MySQL5.0.22を起動。
…で、「192.168.1.2」上で、以下のPHPを記述し実行。
<?php
$con = mysql_connect("192.168.1.3", "root", "xxx");
if ($con) {
echo "MySQLに接続しました";
} else {
die("MySQLに接続できませんでした");
}
?>
で、実行してみると「MySQLに接続できませんでした」と出力されます。
「192.168.1.2」にMySQLを立ち上げていた時は問題なかったのですが…。
"localhost"のところを、"192.168.1.3"にするだけじゃ、ダメなんでしょうか?
0607nobodyさん
2007/10/19(金) 13:13:13ID:???ポート開いてる?
0608nobodyさん
2007/10/19(金) 13:18:19ID:???ローカル内で実行してますから、ポートは関係ないでしょう。
もちろんポート空けて、外から実行しても同じく接続できません。
0609nobodyさん
2007/10/19(金) 13:25:06ID:???そもそも192.168.1.3のサーバ自体のポートは空いてるのか?
俺はMySQLを知らんけど、MySQL自体がアクセスをはじいていないか?
>>607が言っていることからこのくらいの連想ができないようじゃやめといたほうがいいぞ
0610nobodyさん
2007/10/19(金) 13:28:30ID:???phpでやる以前に他のPCから操作できるのかを先に確認したほうがいい
0611nobodyさん
2007/10/19(金) 14:02:21ID:???原因になりそうな事はたくさんあるから問題切り分けましょう。
ローカルで接続してもlocalhostや127.0.0.1はOKでも192.168.1.2でダメなことある。
MySQL側のポート、DBやOSの各種アクセス制限、Apacheの実行ユーザの問題…
>>606のソースだとPHPからのエラーメッセージ出力されないのだっけ?
出力されないなら
<?php mysql_connect("192.168.1.3", "root", "xxx"); ?>
だけで実行してエラーみるとか。
・apacheのログみる
・192.168.1.3でmysqlコマンドをホスト指定して実行(localhost,192.168.1.3)
・192.168.1.2でmysqlコマンドを実行
・192.168.1.2でphpスクリプトをコマンドライン実行
ほかに何かあったっけ?
0612nobodyさん
2007/10/19(金) 14:04:46ID:???PCを投げ捨てる
2階の窓から飛び降りる
0613nobodyさん
2007/10/19(金) 14:36:40ID:???LAN内であってもhosts.allowとかで開けてやらんといけない場合とかあるけどな。
コマンドラインのmysqlクライアントで接続できるかどうかをまず確認すべき。
それで繋がらないならDB板池。
0614nobodyさん
2007/10/19(金) 14:56:38ID:???mysql側ではじいてるんじゃないか
my.cnf
bind-address
0615nobodyさん
2007/10/19(金) 15:27:56ID:???test.php
┗test←フォルダ
┗test.bat
PHPは、exec("test/test.bat");
と書いてるのですが何が悪いのでしょうか?
0616606
2007/10/19(金) 15:30:45ID:???とりあえず、192.168.1.3(MySQLが稼動中)上で…
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'xxx';
mysql > SELECT user,host,password FROM mysql.user;
+------+----------------------+------------------+
| user | host | password |
+------+----------------------+------------------+
| root | 192.168.1.2 | xxxxxxxxxxxxxxxx |
+------+----------------------+------------------+
…という具合に確認もしてから、192.168.1.2(Apache+PHP稼動中)上で…
$ mysql -u root -p -h 192.168.1.3
mysql >
…おっ!192.168.1.2から192.168.1.3のMySQLを操作できるようにはなりましたよ。
でも、まだ>>606のコードを実行すると「MySQLに接続できませんでした」と出力されます。
(MySQLは、上記のユーザー追加作業後にrestart済みです)
う〜む…
0618606
2007/10/19(金) 15:36:40ID:???助かりました。
0619nobodyさん
2007/10/19(金) 15:44:59ID:???>>606のコードで上手く接続できたのかな?
オメデト。
ただrootユーザって192.168.1.2のrootのこと? だとヤバくね?
0620nobodyさん
2007/10/19(金) 15:54:36ID:???0622nobodyさん
2007/10/19(金) 16:05:26ID:???Windowsならexecのユーザノート見れ
Linuxならセーフモードかかってるならcgiで動かさないと無理
0623nobodyさん
2007/10/19(金) 16:25:38ID:KOAwsoaiログファイルをfile関数で読み込むとき、ログファイルが存在しなかった場合、
エラーになりますよね。
そこで、@でエラーを出力しないって方法と、is_fileで存在チェックを置く方法、
どちらが正攻法でしょうか?
0624nobodyさん
2007/10/19(金) 16:27:53ID:???ちゃんとファイルがあるか確認すべき
0625nobodyさん
2007/10/19(金) 16:36:09ID:???エラーを出さない書き方を心がけます
0626nobodyさん
2007/10/19(金) 16:36:43ID:???0630nobodyさん
2007/10/19(金) 16:55:27ID:???例外は想定外なことがあったときの処理機構
0631nobodyさん
2007/10/19(金) 17:15:02ID:T1qgNKd7引数で渡したもの全てエンコードしてくれるんでしょうか?
なぜか本文以外が文字化けしてしまうんですが・・・
0632nobodyさん
2007/10/19(金) 17:22:04ID:???0633nobodyさん
2007/10/19(金) 17:23:01ID:???is_fileの判別だけでは不十分。
ロックされて読み取りできない場合でもtrueを返すし、本当にその時読み取りできても、fileを呼ぶ時には削除されているかもしれない。
読み取りエラーと、ファイルの存在がない場合を区別する必要がなく、エラーをログに取る必要がないなら、
$data = @file('foo.log');
if ($data === FALSE) { echo '読み取り失敗'; }
else { do something }
>>631
mb_internal_encodingとmb_languageを設定
0634nobodyさん
2007/10/19(金) 17:24:00ID:???0635nobodyさん
2007/10/19(金) 17:37:25ID:???誰だよ、前に"で囲むとか教えた奴
0639nobodyさん
2007/10/19(金) 17:45:07ID:???0641nobodyさん
2007/10/19(金) 18:03:23ID:TMxSN4fU0642nobodyさん
2007/10/19(金) 18:03:57ID:???まずはマニュアルに目を通そうぜ
・To句 -> 自動的にはエンコードしない
・ヘッダ、本文 -> エンコードする
但しだ、ヘッダに含むFrom句を 俺だよ<[email protected]> の様にした場合
"俺だよ"の部分はそのままじゃ化けるからな
正しいかどうかは別として"俺だよ"の部分をMIMEエンコードで逃げとく
0643nobodyさん
2007/10/19(金) 18:05:00ID:TMxSN4fUMySQLの「居酒屋」という文字の「居」だけ検索できなくって・・・
「安い居酒屋があります!」→「居酒屋」→ノーヒット
「安い居酒屋があります!」→「屋」→ヒット
「安い居酒屋があります!」→「酒屋」→ヒット
「安い居酒屋があります!」→「居酒」→ノーヒット
「安い居酒屋があります!」→「居」→ノーヒット
0644nobodyさん
2007/10/19(金) 18:10:36ID:???0646nobodyさん
2007/10/19(金) 18:16:01ID:???またファビョって粘着されるのかと思うと・・。
0648643
2007/10/19(金) 18:18:50ID:TMxSN4fU0649nobodyさん
2007/10/19(金) 18:19:36ID:T1qgNKd7mb_encode_mimeheader()使っても文字化けしちゃいました。
謎の文字列っぽいのが、???????????になってしまった。(2回エンコードされたかんじ)
0652nobodyさん
2007/10/19(金) 18:27:49ID:TMxSN4fU有難う御座います
MySQLスレにいってきます
0653nobodyさん
2007/10/19(金) 18:28:48ID:???使ってみました、できませんでした、じゃ何もわからない
mb_encode_mimeheaderというキーワードがあるんだから、
ぐぐってサンプルになりそうな解説を探すべき
0654nobodyさん
2007/10/19(金) 18:44:16ID:???0655nobodyさん
2007/10/19(金) 18:46:04ID:???自分の手の内を明かさないのは死んだお爺ちゃんの遺言かな?
まずはどういう処理をして駄目だったのか表に晒そうよ
そうじゃないと他人には何が原因なのかわからない
0656nobodyさん
2007/10/19(金) 18:47:03ID:???0657nobodyさん
2007/10/19(金) 19:03:17ID:???http://example.com/index.php/controller_name
として、$_SERVER['PATH_INFO']からcontroller名取得してクラス生成してるんだけど、
index.php/ってやっているからか、1個下の階層として認識されちゃうんだよな。
index.phpを基準にデザインしたHTMLの画像が表示されなくなった。解決法plz
0659nobodyさん
2007/10/19(金) 19:23:29ID:???お前程度のレベルのやつが作るなw
ほかのフレームワークを使って勉強しろ。
0660nobodyさん
2007/10/19(金) 19:26:04ID:???まあ作った本人以外、誰も使わんだろうけど。
0661nobodyさん
2007/10/19(金) 19:26:13ID:???0662nobodyさん
2007/10/19(金) 19:41:00ID:???会社で使うぐらいだぜ
PHPじゃないけど
0663nobodyさん
2007/10/19(金) 20:34:22ID:xPmGrIJ2あるブログの新着記事が投稿されたら、そのタイトルと日付を
自サイトのトップページにIFRAMEで新着情報のスペースを作り
自動で反映されるようにしているのですが、「dc:date」の中の
日付だけを表示させたいのですが、行き詰っています。
↓がrssv.phpというファイルをいただいて、今の状態です。
−−−−−−−−−−−−−−−−−−−−−−−−−−
A;
$num = ($_GET['n']) ? $_GET['n'] : count($r->getItems());
for ($i=0; $i<$num; $i++) {
$val = $r->getItems();
$title = mb_convert_encoding(strip_tags($val[$i]['title']), $code, "UTF-8,EUC-JP,SJIS");
$link = htmlspecialchars($val[$i]['link']);
$date = $val[$i]['dc:date'];
// 内容
echo <<<B
<tr bgcolor="#ffffff"><td><small>
$date<br>
<a href="$link" target=_new>$title</a><br>
$desc
</small></td></tr>
B;
}
//フッタ
echo <<<C
−−−−−−−−−−−−−−−−−−−−−−−−−−
0665663
2007/10/19(金) 20:39:31ID:xPmGrIJ2とすればできるというのを見つけましたが、できませんでした。。
phpなのでsubstrというものを使って設定すれば・・と思いましたが
↑662の中にどう記述すればできるのか・・行き詰ってます。
どうすれば、<dc:date>の日付部分だけを表示させることができるの
でしょうか?どうぞよろしくお願い致します。
0666663
2007/10/19(金) 20:46:26ID:xPmGrIJ2早速のレスありがとうございます。
var_dump($val); というものを記述すれば可能なんですか?
↑のどこに記述すればいいのでしょうか?ぜひ教えてください!
0667nobodyさん
2007/10/19(金) 20:52:29ID:X7lKhvjyvar_dump()はデバッグ手法であって解決策じゃないよ
0669nobodyさん
2007/10/19(金) 20:57:43ID:???実行しようともしないような人には無理だ。
0670nobodyさん
2007/10/19(金) 21:00:18ID:???スクリプト作ってくれっていってるような質問だろうし放置でおk
0671nobodyさん
2007/10/19(金) 21:13:24ID:38gaNyWe0672663
2007/10/19(金) 21:23:52ID:???書き方なんか勘で弄くってるだけで、全然分かってないっす
php入門から始めます。。。
0673nobodyさん
2007/10/19(金) 21:31:59ID:???0675nobodyさん
2007/10/19(金) 21:33:37ID:???0676nobodyさん
2007/10/19(金) 21:34:10ID:???もっと経験積んでる人は肝心な部分を特定してその場所のみ貼り付ける
あと、自分で試してみたことも書くのが普通ぐらい
0677663
2007/10/19(金) 21:37:39ID:???知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
と思ってました。。実際に、今回以外にphpを自分で書くこと
なんか恐らく二度とないでしょうし・・
ただ単にdc:dateの日付だけを表示させることって大変なんですね。。
もう拘らずに、全て表示で自分を納得させます。お騒がせしました。。
0678nobodyさん
2007/10/19(金) 21:41:31ID:???0680nobodyさん
2007/10/19(金) 21:44:43ID:???0683nobodyさん
2007/10/19(金) 21:58:51ID:???>知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
>と思ってました。。実際に、今回以外にphpを自分で書くこと
なんの根拠も無しにこう思えちゃうのが素晴らしいと言うか
頭のネジが2, 3本外れていると言うか
0684nobodyさん
2007/10/19(金) 22:01:01ID:???スレタイを死守すべくエスパーしてみる>俺
$date = $val[$i]['dc:date'];
の後に、
$data = substr($data, 0, 10);
みたいなことやればいいんじゃね?
0685nobodyさん
2007/10/19(金) 22:03:46ID:???どうしようもない奴しかいねーのかよw 俺には難しくて分かりませんって素直に言えばいいのにww
0687nobodyさん
2007/10/19(金) 22:06:45ID:???0689nobodyさん
2007/10/19(金) 22:15:07ID:???0690nobodyさん
2007/10/19(金) 22:16:54ID:???■ このスレッドは過去ログ倉庫に格納されています