【PHP】下らねぇ質問はここに書き込みやがれ 70
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/25(水) 10:14:08ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0160nobodyさん
2008/06/29(日) 22:14:57ID:???0162nobodyさん
2008/06/29(日) 22:20:12ID:???発注や求人はJavaが多いかもな。
Javaでサイト作る需要>JavaでWebサイト作れる人ってことでしょ。
それなりのところなら自分でPHPでサイト作れるだろ。
レンタルでPHPが使えるサイト多いしプロじゃなくても作れる。
JavaもPHPもブラウザが実行しているわけじゃないよ。
Webサーバで実行してその出力が送信されブラウザはHTMLを表示してるんだよ。
ということでそれ以降の発言はクライアントにまだしてなくて良かったね。
0163nobodyさん
2008/06/29(日) 22:20:46ID:???PHP(or JAVA)のソースと、HTMLソースの違いがわかってからここに来てね♪
おたふくソースとも違うからね☆
0164nobodyさん
2008/06/29(日) 22:22:11ID:96o86FsFずっと疑問に思っていたので、ぶつけてみたのですが、
期せずして反感を買ってしまってしまって申し訳ありませんでした。
私は純粋に技術論をお聞きしたかっただけです。他意はないです。
この質問は撤回します。
お騒がせしました。
0165nobodyさん
2008/06/29(日) 22:22:46ID:3JlRTfJh0167nobodyさん
2008/06/29(日) 22:26:37ID:???0168nobodyさん
2008/06/29(日) 22:27:45ID:???0170MEH
2008/06/29(日) 22:30:38ID:3JlRTfJhメタルミッキーというサイトにある通常レス式掲示板を、スレッド式掲示板にしようと頑張っているのですが、スレッド一覧をどのように取得したらよいかわかりません。
よし、やって教えてやろう!という方は是非教えてください。待ってます。
参照:
http://metalmickey.genin.jp/study/php_bbs_1_1.html
0171nobodyさん
2008/06/29(日) 22:31:40ID:???俺は趣味でPHPをちょっと勉強しているだけでよくわからないが、
PHPやJSPなどのHTMLのなかにスクリプトとかを混在して書くタイプは大規模に向いてないかもね。
PHPのバージョンでだいぶ違うとかも関係してるかな。
Javaでのは大規模が多いから人手がいるのかもね。
>>164
反感買ったのはその通りと思うけど
俺個人的には撤回でなかったことにすることよりも
ブラウザがJavaやPHPを実行しているわけではないと判ってくれたよね。
0172nobodyさん
2008/06/29(日) 22:38:15ID:???どちらかと言うと呆れて開いた口が塞がらない感じ
0173nobodyさん
2008/06/29(日) 22:39:00ID:96o86FsFソースが見えるというのは、たとえば、
共通のphpとしてinclude("./common.inc");とした場合に、
エラー表示が、common.incの何行目にエラーが出てしまうと、
悪意のユーザーがcommon.incを直接指定すると見えてしまうからです。
もちろん、Javaでもエラー画面でstacktraceで表示されますが、
それをたどってどこのクラスでNullPointerExceptionが出ているとわかっていても、
直接ソースをみる方法はありません。それはコンパイルされているからです。
あと、Javaはwebサーバーで実行されるという発言されている方がいましたが、
Javaのコードは通常アプリケーションサーバーです。
ソースが見える見えないという点で言えば、やはりJavaであり、
クリティカルミッションに使われる理由なのではないかと思った次第です。
色々とご意見を頂きましてありがとうございます。
0175nobodyさん
2008/06/29(日) 22:42:43ID:???単に、使う人間がPHPしか使えず、PHPで入門したプログラミング初心者ばかりだから、PHPは低く見られるんだよ。
悪いのはPHPではなく、使う人間のスキルが低過ぎること。
たとえば、PHP界隈では、rfc2616やrfc2822を熟読していたら、ほとんど神扱いだろ。
他のWeb系の言語・開発環境では、ありえない。だって、それが最低限度だから。
0176nobodyさん
2008/06/29(日) 22:48:45ID:???common.incはパーミション変えたりcommon.phpに変えるべきだってどっかで見かけたことある。
普段そんなこと忘れてるけど。
Javaはwebサーバーで実行されるって俺が言ったんだけど
>Javaのコードは通常アプリケーションサーバーです。
俺には難しくてわかりません。
Javaアプレット?
Javaが使われていることは認めるがソースが見える見えないに拘るのがよくわからない。
Javaのよさってそこ?
0177nobodyさん
2008/06/29(日) 22:50:09ID:???>ブラウザがサーバーからソースを受信してレンダリングする際に、
>ブラウザにとってはソースが筒抜けになるわけですよね。Javaにしても。
>パケット透過ツールを使用すれば一目瞭然です。
よく分からんのだが、これはどういう意味?
0178nobodyさん
2008/06/29(日) 23:00:26ID:???(アプリケーションサーバを調べてみた)
そりゃ3階層システムのミドルにPHPはないね。
0179nobodyさん
2008/06/29(日) 23:00:26ID:???> たとえば、PHP界隈では、rfc2616やrfc2822を熟読していたら、ほとんど神扱いだろ。
> 他のWeb系の言語・開発環境では、ありえない。だって、それが最低限度だから。
技術者の善し悪しって、別にそんなところじゃないだろw。
RFCなんかを例に出して奴の方が痛い。
javaがphpに比べて優れているのは大規模な開発の設計がやりやすい事。
あとは、堅牢性や分散処理する際など、色々メリットは大きい。
0181nobodyさん
2008/06/29(日) 23:02:28ID:???0182nobodyさん
2008/06/29(日) 23:06:24ID:???http://itpro.nikkeibp.co.jp/article/REVIEW/20070604/273484/zu01.jpg
0183nobodyさん
2008/06/29(日) 23:10:03ID:???ミドル層のJavaとフロント層のPHPを比較することがおかしくない?
PHPを使うことがありえないけどミドル層ならPHPのソースがユーザに見えないでしょ。
フロント層で変な文字受け取ってエラーでしょ。
俺って煽っていると思われて反論されたのかな。
0184nobodyさん
2008/06/29(日) 23:11:42ID:???Webアプリのセキュリティの知識足りないんじゃ。
0186nobodyさん
2008/06/30(月) 00:38:40ID:???0187nobodyさん
2008/06/30(月) 00:49:40ID:???0188nobodyさん
2008/06/30(月) 00:52:38ID:???0189nobodyさん
2008/06/30(月) 00:53:07ID:???納品先のクライアントがソースコードを見れるってことの間違いではないの。
PHPは確かにソースそのまま納品するから、内容見られるかなぁとか思うけど。
0190nobodyさん
2008/06/30(月) 01:11:01ID:???0191nobodyさん
2008/06/30(月) 02:12:26ID:???こんな残業続きで、2chすらみている暇がないんだから。
俺は、今は過労によるパニック障害で休養中だ。
0192nobodyさん
2008/06/30(月) 04:14:37ID:7Iaq6WLHPHPを走らせるのに適したバージョンはどっちですか?
0194nobodyさん
2008/06/30(月) 05:13:01ID:???テンプレ通りに作ったhtmlファイルが50個ある。
各ファイルのn行目とm行目のデータだけを取り出し、別ファイルにまとめたい。
///////////////現在のアルゴリズム//////////////
1.fgetsをn回空ループ
2.N行目でfgets。
3.空ループ
4.M行目でfget。
array[][n.m]に保存
///////////////////////////////////
array[][n,m]をファイルに出力
///////////////////////////////////
とやっているのですが、無駄が多いように感じます
fseek()も試してみたのですが、ファイル先頭からのバイト数は変動するので、中々うまくいきません。
ファイルポインタを任意の行の先頭に移動させる関数はないのでしょうか?
0195nobodyさん
2008/06/30(月) 05:34:32ID:???0196194
2008/06/30(月) 05:58:21ID:???fileを使うとソースは綺麗になるのですが、ファイル全体を変数に収納してしまうため、処理速度が極端に低下してしまいました。
0197nobodyさん
2008/06/30(月) 06:15:27ID:???0198nobodyさん
2008/06/30(月) 06:15:58ID:???別ファイルに書き出すだけの処理ならPHPでやるようなことでもない
処理速度を求めるのであればPHPでやることじゃないね
0199nobodyさん
2008/06/30(月) 09:43:52ID:???100行目だけ出力
head -100 ファイル名 | tail -1
0200nobodyさん
2008/06/30(月) 09:52:37ID:???これをブラウザで「保存」を選ぶと正常に保存できるのですが、「開く」を選ぶとうまく開けません。
どうもアプリケーションが開こうとしたときにはテンポラリファイルがなくなっているようです。
「開く」を選んでも正常に動作させるにはどうすればいいでしょうか?
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$filesize);
$fp = fopen($filepath, "rb");
while (!feof($fp)) {
$contents = fread($fp, 1024*1024*5);
echo $contents;
}
0201nobodyさん
2008/06/30(月) 12:46:25ID:???0202nobodyさん
2008/06/30(月) 13:06:05ID:???0203nobodyさん
2008/06/30(月) 13:17:50ID:???0205nobodyさん
2008/06/30(月) 15:02:15ID:???0206nobodyさん
2008/06/30(月) 15:16:50ID:???0207nobodyさん
2008/06/30(月) 16:02:23ID:???0208nobodyさん
2008/06/30(月) 17:08:50ID:???MySQL連携のプログラムを、UTF-8で作っています。
で、文字エンコーディングを変更するコード SET NAMES は アプリケーションから使うとSQLインジェクションの脆弱性につながる、
との記事を見つけました。
幸いにも、自分が使っているサーバーは mysqli_set_charset() が使えるので助かりましたが、この先の参考にも聞いておきたく思います。
本当に アプリケーション内で SET NAMES を発行するとSQLInjectionの脆弱性につながるのでしょうか。
また、もし、mysqli_set_charset 等が使えないサーバーの場合、どうすればよいのでしょう?
PHPなのかスレスレですが、ご助言いただけると幸いです。
0209nobodyさん
2008/06/30(月) 17:12:08ID:???仕方ないでしょうけど
0210nobodyさん
2008/06/30(月) 17:13:29ID:???0211nobodyさん
2008/06/30(月) 17:22:56ID:???何で危険なのかがわかってればいいよ。
特に問題になるのは、エスケープ関連(SET NAMESだとエスケープAPIは
現在どのエンコーディングを使ってるかわからない)だし、
自分のとこの運用でどうしてるのか把握して問題ないのならいいでしょ。
0212nobodyさん
2008/06/30(月) 17:35:21ID:???PHPでWEBの仕事してるプログラマーって、よくある一般的なイメージな残業、休日出勤な
プログラマーよりは残業時間とか少ないの?
人によりけりだと思うが、軽い気持ちで答えてほしい。
0213nobodyさん
2008/06/30(月) 18:00:50ID:???0214nobodyさん
2008/06/30(月) 18:15:19ID:LUnLRZ5m0215nobodyさん
2008/06/30(月) 18:28:19ID:???2.ランダムで1個選択
3.飛ぶ
0216208
2008/06/30(月) 18:45:53ID:???まだSQLの知識が薄く、照合順序とか多すぎてよくわからないので、理解に時間がかかりそうですが……。
とりあえずは、SET NAMES は使わずに mysqli_set_charset なり mysql_set_charset なりのAPIレベルのもので、設定することにして、
SQLの知識をある程度蓄えてから、対策を練ることにします。
お早い回答、ありがとうございました。
# でも、持ってる参考書とか読んでも、文字コードの設定は SET NAMES...
0217nobodyさん
2008/06/30(月) 18:56:15ID:???0218nobodyさん
2008/06/30(月) 19:19:20ID:???0219nobodyさん
2008/06/30(月) 19:25:18ID:???案件の1つにPHPが入ってくるというのはあるが
だいたい普段は.他の言語でWeb以外のことをやっていたりする
つまり一緒だ
プロジェクトに遅れが出れば残業も休日出勤もあるし
そもそも早く終わったからといってノルマ達成で帰っていいよというわけにはいかない
やることがなければ自習になるが普通は何かしら手伝ったりすることになる
PHP専門でやってるような会社はないに等しい
大学生のベンチャーならありえるが
そういうところも将来的にはPHPのみってことはなくなってくる
まぁそんな都合のよい仕事はないので諦めてください
給料は都会のバイト並でよければ地方で探せばまったりな会社あるかもね
0221nobodyさん
2008/06/30(月) 19:59:29ID:???0222nobodyさん
2008/06/30(月) 20:05:31ID:Eb0PY41u意外にサンプル少ないんで泣いてまつ
書籍追加(確認窓もほすぃ
編集
削除
検索
モヌヌメの書籍、webあったらおしえて〜
apache2
php5
mysql5
linux
0223nobodyさん
2008/06/30(月) 20:09:16ID:???0224nobodyさん
2008/06/30(月) 20:20:34ID:???何でだろうね?
小さいサイズのテキストファイル
Content-Transfer-Encoding指定なし
Content-Length指定なし
readfile($filepath);
だと開けた。
0227nobodyさん
2008/06/30(月) 23:08:40ID:???たしかにこれはそのままだ〜!
ってか書籍スレもあったのねw
0228nobodyさん
2008/07/01(火) 00:35:17ID:A4l+wdTUHTMLの前に$textfile="todo.txt"; として
書いてるんですが
require($textfile)で呼び込むと
todo.txtは呼んでるがそのままソースが全部出てきてしまいます
<HTML>
<HEAD>
<BODY>
内容・・・・
</HTML>
みたいな感じです。PHPの設定なんでしょうか?
0229nobodyさん
2008/07/01(火) 00:36:43ID:???0230228
2008/07/01(火) 00:37:45ID:A4l+wdTU勘違いしてました・・・
癖でTODOリストなのに・・・HTMLで書いてしまってました
申し訳ありません・・・
0231nobodyさん
2008/07/01(火) 00:39:30ID:???0232228
2008/07/01(火) 00:45:06ID:???テキストエリアにtodo.txtの編集書き込みが出来るようなソースを
書いていたんですが、todo.txtはテキストなのに
HTML文章で書いてしまっていただけです
HTMLで書いてたからタグが出てきたので気づいて消したら普通に
文章だけ表示されました。すいません
0233nobodyさん
2008/07/01(火) 14:51:09ID:???test.php?test
という形式で値の受け渡しをしているのを見かけるのですが
どうすれば受け取れるのでしょうか?
0234nobodyさん
2008/07/01(火) 14:56:17ID:???0236nobodyさん
2008/07/01(火) 16:03:57ID:???これってバグ??
0237nobodyさん
2008/07/01(火) 16:17:22ID:???原因不明のメモリーエラーで落ちる。
MySQL使った時、それで原因が特定できず大変な目にあった。
preparedを使いたいなら、自分で実装してくれ。それくらい簡単だろ?
0239nobodyさん
2008/07/01(火) 16:27:58ID:???236ではないが、マジか。
この前使ってみて使いやすかったから、今度からこれ使おう、とか思ってたのに。
まだ、取れてないの? そのバグ。
0241nobodyさん
2008/07/01(火) 17:09:30ID:???バージョンは、5.1.6
WindowsXP、BSD6.2の両方で使って、どちらでも落ちた。
起動してから時間が経つと、突然DBへ接続できなくなる。
再起動すると直る。永続的コネクションを利用しても利用しなくても落ちる。
で、同じ構成でphp標準のmySQL関数でやったら直った。
0242nobodyさん
2008/07/01(火) 17:57:28ID:???5.2.1でprepareの無限ループバグをfixedってあるけど、使うSQLによって発生するんかね
0243241
2008/07/01(火) 19:06:47ID:???参照するとデータがかえってこない。更新すると失敗する。っていう現象。
何回もデータが可笑しいのかと確認しちゃって原因究明にすごい時間がかかった。
速度が上がったわけでもないし、プリペアードのためだけだったから、すぐに標準関数に変えた。
それ以内何も起こらず、DBは連続稼働78日目。
0244nobodyさん
2008/07/01(火) 19:26:12ID:r/sMGUKq私のシステムは、データベースへ接続するクラスを用意していまして、
あとは、各業務クラスに以下のようなコードを書いています。
$sql = "INSERT INTO ...";
$databaseClass->($sql);
あちらこちらの業務クラスに生のSQLが書いてあります。
抽象的なご質問ですが、このような実装をどう思いますか?
市販されている解説本を読むと、テーブル毎にデータベース接続用のクラスを分けろと
書いているものもあるのですが、それだと複数のテーブルをjoinする場合、
どちらのクラスに入れるべきか迷うので、そのような実装はしていませんでした。
結構、正規化しているテーブルが多いので、joinするSQLが少なくありません。
データーベースに関する良いクラス設計指針があればアドバイスお願いします。
0245nobodyさん
2008/07/01(火) 19:37:44ID:???joinしてるSQLを発行するクラスは業務毎に纏めてクラスを分けてるな、俺は
業務モデルから業務DAOとテーブルDAOを呼ぶ感じで
0246nobodyさん
2008/07/01(火) 22:52:13ID:ZeCzXD4I普通のhtmlにアクセスしたら認証なんてないのに
0247nobodyさん
2008/07/01(火) 23:45:17ID:FRuokrT4\1000という表示がIEとSafariで バックスラッシュ+1000 になってしまいます
\部分はSQLから引き出してるのではなく、PHPに直書きしてます
winXP、apache2、PHP5.2.3でUTF8を使っています どう対応すればいいでしょう?
アドバイスお願いします
0248nobodyさん
2008/07/01(火) 23:58:57ID:???PHPはブラウザに依存しないサーバサイド言語で
すべて同じ結果が得られるようになっている
ブラウザによって表示が違うなどの不具合は
PHPとは関係ない
バックスラッシュになるのはブラウザの言語指定がおかしいからとか
そういったことが要因
\ではなく文字参照&yen;(&は半角で)で出力するなど工夫すべし
0249nobodyさん
2008/07/02(水) 00:42:01ID:???エラーが起きる最小限のソースを。
>>241
5.2.0から5.2.6でPDOに関する数十ものバグが修正されているし、MySQLでおきたエラーがSQLiteで起こるとは限らない。
0250nobodyさん
2008/07/02(水) 00:45:28ID:???そんな情報どうして知っているの?
関係者?それとも逆コンパイルしてソースをcompareしたとか???
0251nobodyさん
2008/07/02(水) 00:55:51ID:???0252nobodyさん
2008/07/02(水) 00:58:37ID:???0253nobodyさん
2008/07/02(水) 02:09:08ID:TfVbJDoGありがとう! 感謝します!
0256200
2008/07/02(水) 10:40:54ID:???でできました。
http://jp2.php.net/manual/ja/function.readfile.php#47408
0257236
2008/07/02(水) 10:42:53ID:???コマンドラインより、a.phpを実行後すぐに別端末からb.phpを実行する。
b.phpにおいてbeginTransaction();をコメントインすると、
PDO::ATTR_TIMEOUTが無効になる。
と、まぁこんなかんじです。
a.php ---------------
<?php
$pdo = new PDO('sqlite:a.db');
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
$pdo->beginTransaction();
$pdo->exec("insert into a(i) values(5)");
sleep(100);
$pdo->rollBack();
?>
b.php ---------------
<?php
$pdo = new PDO('sqlite:a.db');
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
//$pdo->beginTransaction();
$sth = $pdo->prepare("insert into a(i) values(10)");
if (!$sth->execute()) {
var_dump($sth->errorInfo());
}
//$pdo->rollBack();
?>
0258nobodyさん
2008/07/02(水) 10:47:24ID:???0259nobodyさん
2008/07/02(水) 11:42:57ID:???>sleep(100);
ここは笑うところか
■ このスレッドは過去ログ倉庫に格納されています