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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/10/11(木) 17:55:41ID:uObe69hr
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、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カテゴリ)の各スレで
0591nobodyさん2007/10/19(金) 04:54:51ID:???
>>590
えっと。自己レスです・・・
""とするとこを''となってたのが原因でした。失礼しました。
0592nobodyさん2007/10/19(金) 08:40:54ID:???
ID:ftfft438の学校の先生って、
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のモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。

高専でもやんねーぞこんなの
相当キてる狂死だな
0596nobodyさん2007/10/19(金) 10:34:08ID:???
>>593
教え方が下手糞ってことか
現にここに課題を聞いてくるバカ生徒がいるわけだからw
0597nobodyさん2007/10/19(金) 10:35:47ID:???
あと、この教師の授業を受けてもアプリが作れるようになる気がしない
0598nobodyさん2007/10/19(金) 10:38:58ID:???
>phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。

三つまとめて答えると
客のレベルとニーズと納期と金次第

これ以上も無ければこれ以下もないと思うが…
0599nobodyさん2007/10/19(金) 10:43:23ID:???
上司の理解度と社員のモチベーションもねw
0600nobodyさん2007/10/19(金) 10:56:41ID:???
>>579
>授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから
日本の法律に定める高等学校だとしたら、この時点で教師失格だな
大学じゃあるまいに、検定済み教科書を使うことが法律で決まっている
0601nobodyさん2007/10/19(金) 10:59:39ID:???
>>598
「客のレベル」はちょっと違うだろ
技術的なことを知っている客は多くないから、
どっちかというとSEが客に提案しないといけない
0602nobodyさん2007/10/19(金) 11:30:51ID:???
オマエら余所でやれ
0603nobodyさん2007/10/19(金) 11:59:05ID:???
>>602
お前がくるな
0604nobodyさん2007/10/19(金) 12:14:25ID:???
失せろ><
0605nobodyさん2007/10/19(金) 13:00:51ID:???
ばか、ばっか
0606nobodyさん2007/10/19(金) 13:08:02ID:r5ngcnDV
真面目な質問です。「MySQLに接続できませんでした」状態で、困っています。

状況は…
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:???
>>607
ローカル内で実行してますから、ポートは関係ないでしょう。
もちろんポート空けて、外から実行しても同じく接続できません。
0609nobodyさん2007/10/19(金) 13:25:06ID:???
>>608
そもそも192.168.1.3のサーバ自体のポートは空いてるのか?
俺はMySQLを知らんけど、MySQL自体がアクセスをはじいていないか?
>>607が言っていることからこのくらいの連想ができないようじゃやめといたほうがいいぞ
0610nobodyさん2007/10/19(金) 13:28:30ID:???
そもそもシェルからデータテーブル操作できるのか?
phpでやる以前に他のPCから操作できるのかを先に確認したほうがいい
0611nobodyさん2007/10/19(金) 14:02:21ID:???
>>606
原因になりそうな事はたくさんあるから問題切り分けましょう。
ローカルで接続しても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:???
>>608
LAN内であってもhosts.allowとかで開けてやらんといけない場合とかあるけどな。
コマンドラインのmysqlクライアントで接続できるかどうかをまず確認すべき。
それで繋がらないならDB板池。
0614nobodyさん2007/10/19(金) 14:56:38ID:???
ポート開いてることが確実なら、
mysql側ではじいてるんじゃないか
my.cnf
bind-address
0615nobodyさん2007/10/19(金) 15:27:56ID:???
PHPからバッチファイルを呼んでるけど動かないんです(PHP5

test.php
┗test←フォルダ
  ┗test.bat
PHPは、exec("test/test.bat");
と書いてるのですが何が悪いのでしょうか?
06166062007/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済みです)

う〜む…
06176062007/10/19(金) 15:33:37ID:???
すみません、>>616の作業でうまくいきました!
06186062007/10/19(金) 15:36:40ID:???
遅ればせながら、皆さんありがとうございました。
助かりました。
0619nobodyさん2007/10/19(金) 15:44:59ID:???
>>618
>>606のコードで上手く接続できたのかな?
オメデト。
ただrootユーザって192.168.1.2のrootのこと? だとヤバくね? 
0620nobodyさん2007/10/19(金) 15:54:36ID:???
全然PHP関係ねぇ・・・・
06216062007/10/19(金) 16:02:00ID:???
>>619
やっぱりですか。
>>606、>>616ともにrootはやめて、適当なユーザー名に変更しました。
0622nobodyさん2007/10/19(金) 16:05:26ID:???
>>615
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:???
PHPに限らずエラー処理はちゃんとしといたほうがいいよ
0627nobodyさん2007/10/19(金) 16:45:27ID:???
>>623
例外処理
0628nobodyさん2007/10/19(金) 16:50:43ID:???
>>623
@使うのはどんな場合でも正攻法とは言えない。
0629nobodyさん2007/10/19(金) 16:51:45ID:???
>>627
623じゃないけどエラー処理はやっぱり例外処理でした方がいいんですかね?
ソースも見やすくなるし。
0630nobodyさん2007/10/19(金) 16:55:27ID:???
エラー=例外じゃないよ
例外は想定外なことがあったときの処理機構
0631nobodyさん2007/10/19(金) 17:15:02ID:T1qgNKd7
mb_send_mailは自動でエンコード変換を行ってくれるということですが、
引数で渡したもの全てエンコードしてくれるんでしょうか?
なぜか本文以外が文字化けしてしまうんですが・・・
0632nobodyさん2007/10/19(金) 17:22:04ID:???
mb_send_mail に一致する日本語のページ 約 24,000 件中 1 - 30 件目 (0.27 秒)
0633nobodyさん2007/10/19(金) 17:23:01ID:???
>>623
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:???
mb_send_mail で検索した結果 1〜10件目 / 約61,700件 - 0.04秒
0635nobodyさん2007/10/19(金) 17:37:25ID:???
そういえばfalseって"でかこまなくていいんですね。
誰だよ、前に"で囲むとか教えた奴
0636nobodyさん2007/10/19(金) 17:40:59ID:???
>>633
俺は file_exists を好んで使うが
0637nobodyさん2007/10/19(金) 17:42:14ID:???
>>636
セーフモードでトラブルからつかわない
0638nobodyさん2007/10/19(金) 17:42:31ID:???
>>635
「いつも誰かに教えてもらう」っていう姿勢はよくないぞクソ厨房
0639nobodyさん2007/10/19(金) 17:45:07ID:???
でた。クソ呼ばわり。
0640nobodyさん2007/10/19(金) 17:45:49ID:???
>>635
ここの回答が常に正しいとは限らない
0641nobodyさん2007/10/19(金) 18:03:23ID:TMxSN4fU
テスト
0642nobodyさん2007/10/19(金) 18:03:57ID:???
>>631
まずはマニュアルに目を通そうぜ
・To句 -> 自動的にはエンコードしない
・ヘッダ、本文 -> エンコードする

但しだ、ヘッダに含むFrom句を 俺だよ<[email protected]> の様にした場合
"俺だよ"の部分はそのままじゃ化けるからな
正しいかどうかは別として"俺だよ"の部分をMIMEエンコードで逃げとく
0643nobodyさん2007/10/19(金) 18:05:00ID:TMxSN4fU
UTF-8の日本語一覧の載っているサイトとかないですか?

MySQLの「居酒屋」という文字の「居」だけ検索できなくって・・・
「安い居酒屋があります!」→「居酒屋」→ノーヒット
「安い居酒屋があります!」→「屋」→ヒット
「安い居酒屋があります!」→「酒屋」→ヒット
「安い居酒屋があります!」→「居酒」→ノーヒット
「安い居酒屋があります!」→「居」→ノーヒット
0644nobodyさん2007/10/19(金) 18:10:36ID:???
「居」 に一致する日本語のページ 約 3,580,000 件中 1 - 30 件目 (0.24 秒)
0645nobodyさん2007/10/19(金) 18:14:02ID:???
>>643
その質問とphpの間にどう深い関係があるのか、そこから説明してもらおうか
0646nobodyさん2007/10/19(金) 18:16:01ID:???
もう面倒くさいから答えてさっさと退散してもらうか徹底無視にしようよ。
またファビョって粘着されるのかと思うと・・。
0647nobodyさん2007/10/19(金) 18:18:02ID:???
>>646
>>645みたいなやつも無視しようよ
ただ煽るの好きなやつでしょ
06486432007/10/19(金) 18:18:50ID:TMxSN4fU
すみません、文字コード関係のスレが見当たらなかったので・・・。
0649nobodyさん2007/10/19(金) 18:19:36ID:T1qgNKd7
>>642
mb_encode_mimeheader()使っても文字化けしちゃいました。
謎の文字列っぽいのが、???????????になってしまった。(2回エンコードされたかんじ)
0650nobodyさん2007/10/19(金) 18:22:51ID:???
>>647
お前がいちばん無視できていないわけだが
0651nobodyさん2007/10/19(金) 18:26:05ID:???
>>648
>>643の質問なら、DB板のMySQLスレできいたほうがいい
0652nobodyさん2007/10/19(金) 18:27:49ID:TMxSN4fU
>>651
有難う御座います
MySQLスレにいってきます
0653nobodyさん2007/10/19(金) 18:28:48ID:???
>>649
使ってみました、できませんでした、じゃ何もわからない
mb_encode_mimeheaderというキーワードがあるんだから、
ぐぐってサンプルになりそうな解説を探すべき
0654nobodyさん2007/10/19(金) 18:44:16ID:???
でもそんなの関係ねえ
0655nobodyさん2007/10/19(金) 18:46:04ID:???
>>649
自分の手の内を明かさないのは死んだお爺ちゃんの遺言かな?
まずはどういう処理をして駄目だったのか表に晒そうよ
そうじゃないと他人には何が原因なのかわからない
0656nobodyさん2007/10/19(金) 18:47:03ID:???
mb_encode_mimeheader で検索した結果 1〜10件目 / 約27,200件 - 0.54秒
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
0658nobodyさん2007/10/19(金) 19:04:32ID:???
>>657
絶対パス
0659nobodyさん2007/10/19(金) 19:23:29ID:???
> フレームワークつくってるんだけど、

お前程度のレベルのやつが作るなw

ほかのフレームワークを使って勉強しろ。
0660nobodyさん2007/10/19(金) 19:26:04ID:???
作るのは自由だし勉強にもなるんだから、別にいいんじゃね。
まあ作った本人以外、誰も使わんだろうけど。
0661nobodyさん2007/10/19(金) 19:26:13ID:???
みなさん偉いんですねw
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
−−−−−−−−−−−−−−−−−−−−−−−−−−
0664nobodyさん2007/10/19(金) 20:37:56ID:???
>>663
var_dump($val);
06656632007/10/19(金) 20:39:31ID:xPmGrIJ2
substringというものを使って、substring-before(dc:date, 'T')
とすればできるというのを見つけましたが、できませんでした。。
phpなのでsubstrというものを使って設定すれば・・と思いましたが
↑662の中にどう記述すればできるのか・・行き詰ってます。

どうすれば、<dc:date>の日付部分だけを表示させることができるの
でしょうか?どうぞよろしくお願い致します。


06666632007/10/19(金) 20:46:26ID:xPmGrIJ2
>>664
早速のレスありがとうございます。
var_dump($val); というものを記述すれば可能なんですか?
↑のどこに記述すればいいのでしょうか?ぜひ教えてください!
0667nobodyさん2007/10/19(金) 20:52:29ID:X7lKhvjy
>>666
var_dump()はデバッグ手法であって解決策じゃないよ
0668nobodyさん2007/10/19(金) 20:55:00ID:???
>>666
$valの中にアンタが欲しいデータが入ってきているか目視しろってことでしょ
0669nobodyさん2007/10/19(金) 20:57:43ID:???
言われた関数についてリファレンスで調べてみようともしない、
実行しようともしないような人には無理だ。
0670nobodyさん2007/10/19(金) 21:00:18ID:???
もらったっていうぐらいだしPHPに関してはまるっきりわかってないんだろ
スクリプト作ってくれっていってるような質問だろうし放置でおk
0671nobodyさん2007/10/19(金) 21:13:24ID:38gaNyWe
purl.org/dc/elements/1.1/
06726632007/10/19(金) 21:23:52ID:???
そうっすか・・確かにPHPに関しては名前を昨日知ったばかりで
書き方なんか勘で弄くってるだけで、全然分かってないっす
php入門から始めます。。。
0673nobodyさん2007/10/19(金) 21:31:59ID:???
つまり端から自分が楽したい代わりに人に労力使わせるつもりだったのか
0674nobodyさん2007/10/19(金) 21:32:54ID:???
>>673
そういうスレだろ?ここはw
0675nobodyさん2007/10/19(金) 21:33:37ID:???
ちげーよボケが
0676nobodyさん2007/10/19(金) 21:34:10ID:???
質問の仕方見ただけでどこかのスクリプトのコピペだと分かるだろ
もっと経験積んでる人は肝心な部分を特定してその場所のみ貼り付ける

あと、自分で試してみたことも書くのが普通ぐらい
06776632007/10/19(金) 21:37:39ID:???
失礼しました。ただ、あとは日付の表示を直すだけだから
知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
と思ってました。。実際に、今回以外にphpを自分で書くこと
なんか恐らく二度とないでしょうし・・
ただ単にdc:dateの日付だけを表示させることって大変なんですね。。
もう拘らずに、全て表示で自分を納得させます。お騒がせしました。。
0678nobodyさん2007/10/19(金) 21:41:31ID:???
文体がきめぇ
0679nobodyさん2007/10/19(金) 21:44:17ID:???
>>678
お前の方がよっぽどキモいから
0680nobodyさん2007/10/19(金) 21:44:43ID:???
自分自身がきめぇ奴が、他人の文体wきめぇって書き込んでるぜw 鏡見て来いボケww
0681nobodyさん2007/10/19(金) 21:45:46ID:???
>>680
>>678のことかw
0682nobodyさん2007/10/19(金) 21:52:37ID:???
>>679-680 = >>663 ?
0683nobodyさん2007/10/19(金) 21:58:51ID:???
>失礼しました。ただ、あとは日付の表示を直すだけだから
>知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
>と思ってました。。実際に、今回以外にphpを自分で書くこと

なんの根拠も無しにこう思えちゃうのが素晴らしいと言うか
頭のネジが2, 3本外れていると言うか
0684nobodyさん2007/10/19(金) 22:01:01ID:???
>>677は稚拙で呆れるばかりだが。
スレタイを死守すべくエスパーしてみる>俺
$date = $val[$i]['dc:date'];
の後に、
$data = substr($data, 0, 10);
みたいなことやればいいんじゃね?
0685nobodyさん2007/10/19(金) 22:03:46ID:???
つーか、ココは自分が分からない質問をされると、逆ギレしてアホ扱いするような
どうしようもない奴しかいねーのかよw 俺には難しくて分かりませんって素直に言えばいいのにww
0686nobodyさん2007/10/19(金) 22:06:10ID:???
>>682
認定厨のお前には残念だろうが違うw
0687nobodyさん2007/10/19(金) 22:06:45ID:???
つかオブジェクトだからだろ
0688nobodyさん2007/10/19(金) 22:11:11ID:???
>>685
このスレは俺様の自作自演だからな
0689nobodyさん2007/10/19(金) 22:15:07ID:???
いや、俺だ
0690nobodyさん2007/10/19(金) 22:16:54ID:???
鯖は俺の足元にあるFMVだがな
■ このスレッドは過去ログ倉庫に格納されています