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

【PHP】下らねぇ質問はID出して書き込みやがれ 85

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/06/15(月) 22:53:52ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0583nobodyさん2009/07/16(木) 16:16:09ID:???
DBでランダムな値生成すればいいのでは?
0584nobodyさん2009/07/16(木) 16:18:29ID:???
DBでやるならDBでできることはDBでやったほうがいいね
0585nobodyさん2009/07/16(木) 17:08:56ID:???
不毛な争いしてんじゃねーよw
0586nobodyさん2009/07/16(木) 17:39:57ID:???
PHPのサイトって落ちてる?
0587nobodyさん2009/07/16(木) 17:43:16ID:???
世界中のどこかのPHPのサイトは落ちてるかもね。
0588nobodyさん2009/07/16(木) 18:02:35ID:wZUMSXTz
落ちてないよ
俺昨日駅で拾った
0589nobodyさん2009/07/16(木) 18:05:33ID:???
落ちてたのか・・・
0590nobodyさん2009/07/16(木) 18:10:45ID:???
>>582
> ランダムな値を管理するには結局DB使うんでしょ?

なんで決め付けてるわけ?
そんなの要件に合った?
ファイル・ディレクトリかもしれないじゃんか。
0591nobodyさん2009/07/16(木) 18:18:27ID:???
別にどうでもいいけどDB以外はあり得ないな
0592nobodyさん2009/07/16(木) 18:37:36ID:???
>ファイル・ディレクトリかもしれないじゃんか。
用途がわからないことにはなんともいえないが
例にあげたようなアプリケーションでその言い分は苦しいよ
どこのレンタルサービスがそんなのファイルで管理してると思う?
0593nobodyさん2009/07/16(木) 18:47:19ID:wiET9Ah7
こんばんわ

レンタルサーバーを定期更新したいと思い
centOS php5の自鯖から
$conn = ftp_connect( $ftp_server,21,60 );とやったところ
どんなサーバーへも接続できません
何か根本的なところが抜けているとは思うのですが
なにを確認するのでしょうか? phpのコンフィグで --enable ftpにはなっています
0594nobodyさん2009/07/16(木) 18:47:45ID:???
たとえDBに格納するとしても、
ランダムな値が必要とされているなら、
uniqid使うのが手っ取り早いし効率がいいでしょ?

それとも簡単にランダムな値を生成してくれるDBがあるとでもいのかな?

DBに格納しても重複されない値が得られるだけ。
それは決してランダムな値ではない。
0595nobodyさん2009/07/16(木) 18:54:19ID:???
uniqid使わなくてもランダムで重複しない値生成できるよ。

rand()関数使って、ランダム(かもしれない)な値を生成。
それを主キー(プライマリーキー)か一意制約(UNIQUE)をつけたフィールドにいれる。
なお主キーにnullを入れて格納しても、連番になるので要求を満たさない。

そしてデータベースに入れて、エラーになれば、
再度rand()関数を実行して、ランダムな値を生成して格納する。
この処理を繰り返す。



俺ならすなおにuniqid()使うw
0596nobodyさん2009/07/16(木) 19:06:29ID:wZUMSXTz
ユニークな発想ですね
0597nobodyさん2009/07/16(木) 19:16:38ID:9yCTA3Ep
oopの利点を具体的に教えてください。
今はよく使う関数はユーザー定義関数でまとめてるし、それで事足りています。
よく、「車のエンジンやギアなど中の精密な構造まで知らなくても
運転の仕方が分かれば車は乗れる」とかたとえ話するばか
みす。する方がいらっしゃいますが、それでは分かりません。
具体的に教えてください。
0598nobodyさん2009/07/16(木) 19:32:20ID:???
よくわからないけどメール認証に使うキーだろ?
DBでも乱数の生成は可能だが重複する可能性のあるただの乱数をキーに使うのはご法度
DBの算術関数操作だけで重複しないまともなキーを作成するのは可能かもしれない
自分は数学詳しくないんで具体的なやり方はわからないけど
ただそんなご苦労なことやるぐらいならすでに用意されているものを使うべき
車輪の再発明だっけか?
DBでできることはやったほうがいいとはいうが限度ってものがある
プログラム側で簡単に実現できるならそっちを使ったほうがいい
パスワード突っ込むときだってプログラム側でハッシュ関数にかけてるのと同じこった
0599nobodyさん2009/07/16(木) 20:04:06ID:???
ではお次の方、どうぞ
0600nobodyさん2009/07/16(木) 20:12:22ID:???
わからない質問はスルーかよw
0601nobodyさん2009/07/16(木) 20:59:10ID:wZUMSXTz
CMS作ろうと思います
お勧めのライブラリとかありましたらおしえてください
0602nobodyさん2009/07/16(木) 21:09:21ID:???
それも作れよw
0603nobodyさん2009/07/16(木) 21:45:36ID:???
>>597
ものの考え方だからそんな難しく考えないで
オブジェクトに対する情報(プロパティ)と動作(メソッド)
これをまとめたのがクラス
パーツまで考えるときりがないのでおおざっぱにパソコンというオブジェクトを考えると
動作(メソッド)として、『起動する』 『シャットダウンする』ってのがあるね
これをソースであらわすと
class パソコン {
 function 起動する() {
 }
 function シャットダウンする() {
 }
}
こうやって最初に考えておいて後で中身を書いていくのがオブジェクト指向的な書き方
こんな調子でWebアプリケーションにおきかえて考えてみればOK
掲示板というオブジェクトを考えると
動作(メソッド)は『書き込む』 『表示する』とかあるね
class 掲示板 {
 function 書き込む(内容) {
  内容を書き込む
 }
 function 表示する() {
  内容を表示する
 }
}
情報(プロパティ)については割愛したけど考え方としてはこんな感じ
最初はこんな感じから始めればOK
継承とかMVCモデルとかははじめは気にしなくていい混乱するだけだから
とにかく始めはオブジェクトに必要なもの(書くべきことを)を見極めるところから
0604nobodyさん2009/07/16(木) 22:01:21ID:???
>>597
肝心な質問に答えてなかった
利点は個人でやってるうちは特にないと思ってOK
0605nobodyさん2009/07/16(木) 22:09:01ID:xcgIWd6Z
フラットに関数定義していくより、
クラス単位にまとめた方が見やすい。継承も使えるし。
06065972009/07/16(木) 22:13:58ID:9yCTA3Ep
>>603&&604
ありがとうございます!
0607nobodyさん2009/07/16(木) 22:44:56ID:???
>>603
>こうやって最初に考えておいて後で中身を書いていくのがオブジェクト指向的な書き方

それはオブジェクトというよりは段階的詳細化の気がするなあ。。
gotoとラベルでも同じことはできるわけで。
0608nobodyさん2009/07/16(木) 22:56:21ID:???
>>607
自分の意見書こうよ。
0609nobodyさん2009/07/16(木) 22:57:08ID:???
書いてるじゃん
0610nobodyさん2009/07/16(木) 23:06:32ID:???
>>608
手続きとデータをまとめて持てる、っていうのと
(言語にもよるかもけど知れんが)他人から隠せるっていうのが利点かな。

>>603のBBSの例で、例えば書き込み先がファイルだとする。

関数だと、呼び出し元がファイルポインタを引数として渡すか、
あるいは関数内でグローバルスコープにする必要があるわけで
つまり「ファイルポインタ」の存在を気にしないといけない。
0611nobodyさん2009/07/16(木) 23:40:54ID:???
ファイルポインタはコンストラクタで開けばおk
0612nobodyさん2009/07/17(金) 01:47:11ID:???
WEBプログラムについて詳しい人に質問があります。
2chで規制を食らった時に書き込みをする方法について某スレで紹介が
ありそこでその存在をしったのですが、

そのサイト上のページに

・書き込みを行いたいURL
・名前
・投稿内容
・(自分の携帯メールアドレス)

を入力し「送信」ボタンをクリックすると自分の携帯メールにURLが送られて来て
そのリンクをクリックすると2chの投稿フォームに入力した内容が設定される
のですがあれはどうやっているのでしょうか?
0613nobodyさん2009/07/17(金) 01:53:01ID:???
>>584
大抵の場合、先にネックになるのはDBだから
PHPで簡単にできるならPHPでやってしまうってのは悪くはない。
0614nobodyさん2009/07/17(金) 01:57:31ID:???
>>613

>>612
について教えて下さい。気になって寝付けません。
0615nobodyさん2009/07/17(金) 02:03:13ID:???
>>614
>>1
0616nobodyさん2009/07/17(金) 02:40:25ID:???
>>614
どうしてご指名なのかは知らんが、getでパラメータ渡してんじゃねーのかな。
その携帯に送られてきたURL晒してみ?
0617nobodyさん2009/07/17(金) 02:52:05ID:???
>>597
簡単にいうと、カプセル化、ポリフォーフィズムかな。
完璧に動き、仕様変更は絶対ないという前提なら、それでもいいかもしれん。

2-3行で利点を説くのは難しいわい
0618nobodyさん2009/07/17(金) 03:13:04ID:???
>>612
面白いこと考える奴がいるんだね、商売上手だなぁ
WebProg 初心者の質問スレで質問すべきだと思うけど。
その携帯に送られてきたURLにユニークのgetパラメータがついてるんだよ
で、それをクリックするとリンクした先のページでそのパラメータを判別して
それに応じた書き込みデータを投稿するようになってるんだと思う
(きっと送信完了画面にはあれこれ広告が貼り付けてあるだろうねw)
06195932009/07/17(金) 09:41:13ID:189Q4h2A
Linux板へ行ってみます
0620nobodyさん2009/07/17(金) 10:51:11ID:???
>>603
クラス1つで書き込みとか表示とかすべてこなしてくれるのに
クラスのファイルが複数でてくるのでしょうか?
0621nobodyさん2009/07/17(金) 11:00:20ID:???
>>620
クラスは1ファイルに納めておk
0622nobodyさん2009/07/17(金) 11:03:34ID:???
1ファイル以外に納めるやり方なんてあるのか
0623nobodyさん2009/07/17(金) 11:14:33ID:???
>>597
オブジェクト指向ねぇ。

ユーザー定義関数としてまとめてるでしょ?
いろんなプログラムで汎用的に使う関数は
きっと別のファイルに分けてまとめているはず。

オブジェクト指向は、このまとめ方をさらに発展させたものだよ。
いろいろごちゃごちゃ言う人いるけどねw
0624nobodyさん2009/07/17(金) 12:01:11ID:???
oopの本質はポリモることだろ
データと関数をまとめただけとか低レベルすぎ
0625nobodyさん2009/07/17(金) 12:23:31ID:???
じゃあポリモを実現できる本質はなんだよw
そこを言えよw
0626nobodyさん2009/07/17(金) 12:28:29ID:+Z3bH2zE
【OS名】win vista homepremium 32bit
【PHPのバージョン】php5.30
<?php
//setting.txtの読み込み
{
$setting_txt = file( 'setting.txt' );
foreach( $setting_txt as $setting ){
$setx = split("\n", $setting);
$set[$setx[0]] = $setx[1];
unset($setx);
}
}
?>
これを実行すると

Warning: implode() [function.implode]: Invalid arguments passed in X:/index.php on line 6

Warning: implode() [function.implode]: Invalid arguments passed in X:/index.php on line 6
何か根本的な勘違いをしてるような気がするのですが
自分ではわかりません指摘していただけると嬉しいです
0627nobodyさん2009/07/17(金) 12:32:19ID:WCCLHa3V
アップロードされたファイルを受け取って処理するケースについて教えてください。

心配しているのが、大量のファイルを悪意でアップロードされた場合に、
どのように防ぐか悩んでいます。
最大アップロードサイズを指定しても、それに満たないサイズで、
大量にアップロードされた場合に防ぐ方法が分かりません。


質問1:
クライアントからアップロードされたファイルを一時ファイルに置く処理(upload_tmp_dirで指定された場所に置く処理)は、
どのタイミングで行なわれるのでしょうか。
悪意のユーザーと分かった時点で、アップロード中に処理を切りたいと思います。

質問2:
upload_tmp_dirに置かれた一時ファイルは自動的に削除されますか?
Windowsでは、アップロードされた一時ファイルが探しましたがありませんでした。
「C:\WINDOWS\Temp」のところを見ました。

スクリプトの処理が終わると自動的に消去される仕組みでしょうか。

宜しくお願いします。
0628nobodyさん2009/07/17(金) 12:33:00ID:???
そのコードのどこにもimplodeなんて使われてないのでもっと上のほうでは?具体的には6行目
0629nobodyさん2009/07/17(金) 12:34:15ID:???
>>627
悪意のユーザってどうやって判別するの?
一時ファイルを削除するのはOSの仕事じゃないですかね.
まぁ別にPHPから削除してもいいと思うけど
0630nobodyさん2009/07/17(金) 12:56:05ID:WCCLHa3V
>>629
レスありがとうございます。

悪意のユーザを判定する一つとしては、
小さいファイルを何回も何回も短時間にアップロードを繰り返すようなケースでしょうか。

そのほか、サーバーに負荷が掛かるようなケースに制約を掛けたいと思います。
0631nobodyさん2009/07/17(金) 12:58:04ID:???
>>630
運用してみればわかると思うけど、そんな暇なユーザーいないよ
0632nobodyさん2009/07/17(金) 13:09:01ID:WCCLHa3V
>>631
そのように信じたいのですが、
暇なユーザーかどうか分かりませんが、
毎日毎日届くスパムメールやウィルスなどのことを考えると、
セキュリティーのために、予算の許す限りで考えられる得る対策はしたいと思っています。
0633nobodyさん2009/07/17(金) 13:23:17ID:???
要するにアップローダがブログの画像投稿とか
そのようなシステムかな?

無駄に制限をつけるのなら、最初からそのシステムの思想に
欠陥が在るように思えるが、いかがか?
0634nobodyさん2009/07/17(金) 13:27:28ID:???
失礼
×アップローダがブログの画像投稿
○アップローダかブログの画像投稿
文章を間違えました。

アップローダならばDBにアップロード時刻を保存して時間で制限をかける
画像投稿ならファイルサイズにて制限と思いますが、
細かいファイルのやり取りで制限をつけるなら、クッキーで
カウントさせて回数を制限させるのが簡単と思います。
それではダメですか?
0635nobodyさん2009/07/17(金) 13:36:55ID:???
>>597
継承とか、オーバーライドとかオーバーロードを理解すると便利さが分かるかもしれない。
でも、現時点で困ってないならいらないんだと思う。

複数人での大きめの開発とかだと有効だけど、一人で書く分にはそれほど効果は上がらないかも。
0636nobodyさん2009/07/17(金) 13:47:10ID:???
>>633
セキュアな機能は多くの場合無駄にはなるが、
その無駄が正常なシステムの運用を支えるのであって、
その無駄を欠陥と考えるのは、平和主義者の素人だな。
0637nobodyさん2009/07/17(金) 13:51:51ID:???
連続投稿制限がセキュア(笑)
0638nobodyさん2009/07/17(金) 14:31:47ID:F6lKm6fi
拡張子がphpのときのみ、phpを実行できる
というような設定はできますでしょうか?
例えば、test.htmlが、

<html>
<body>
<?php
echo phpinfo();
?>
</body>
</html>

であったとしても、拡張子がhtmlなのでecho phpinfo();は実行されない
という感じです。
よろしくお願いします。
0639nobodyさん2009/07/17(金) 14:35:26ID:???
>>638
それはPHPとは関係ない
Webサーバ側の設定でしょ(htaccessとかの話)
深読みしてPHPのソースを表示したいなら
拡張子phpsにする
htaccessにAddType application/x-httpd-php-source .phpsを追加
0640nobodyさん2009/07/17(金) 14:39:17ID:???
セキュア機能って
シス管がシステムをしっかりと安定させてトラブル対策を少なくしているより
トラブル発生しまくりで対応に動いている方が働いていると思われるのと同じだよな
0641nobodyさん2009/07/17(金) 17:07:31ID:NiuWIla/
$befor = "http://www.example.com/?file=test.html<;br>http://www.example.com/?file=abc.html";
$data["test"] = "123";
$data["abc"] = "456";
$after = preg_replace("/(http:\/\/www\.example\.com\/\?file\=)([\w\-\.!~\*'\(\)%#]+)/","変換後",$befor);
echo $after;

$afterが「123<br>456」のように
変換後の部分を$2の拡張子を取った $data["$2"] のようにしたいのですが$2を文字列として上手く利用できません
どなかご教示出来ますか?
0642nobodyさん2009/07/17(金) 17:50:12ID:raMKvGDh
ゼンドガードが高すぎるのですが割れ落ちてないですか?
またはゼンドガードに代わる暗号化ソフトやコンパイラ無いですか?

ソースが見えるのはともかく、データベースのパスワードも丸見えなのはセキュリティ上どうかと思います。

あとユーザー関数を使う度に呼び出すのではなく常にメモリ上に置いておきたいのですが
そういうのできますか?
0643nobodyさん2009/07/17(金) 17:55:09ID:???
>>642
通報した
0644nobodyさん2009/07/17(金) 17:56:15ID:kh/NJMur
ウレチーゴメンネー
オワビニ、ライチモテキタヨー
ウレチーライチシュキダッタヨネ!
キョウモ、イッパイモッテキタヨー
0645nobodyさん2009/07/17(金) 17:57:02ID:kh/NJMur
ごめんなさい誤爆しました
0646nobodyさん2009/07/17(金) 17:59:08ID:???
>>642
お前にぴったりの言語がある。「ひまわり」
0647nobodyさん2009/07/17(金) 18:08:42ID:???
>>642
>データベースのパスワードも丸見えなのはセキュリティ上どうかと思います。

なんで?
0648nobodyさん2009/07/17(金) 19:51:26ID:???
俺は、HTTP非公開領域にiniファイル置いて ini_array で読み込んでる
0649nobodyさん2009/07/17(金) 20:04:21ID:???
public_html以下においてアクセスできるようにしとくとか
公開FTPにおいてあるとか人為的流出ならマヌケと言わざるをえないけど
しっかりとした対策をした上でサーバの脆弱性を突かれて見られてしまったとかなら
もうそれはどうしようもない話
レンタルサーバならなおさら
DB鯖の脆弱性ついて直接ハッキングされるなんて可能性も捨てきれないわけで
通常運営するにあたってちゃんとした対策しができてるならそれ以上の過度な対策は必要ない
やっても無駄だから
0650nobodyさん2009/07/17(金) 20:11:54ID:???
セキュリティー
心配するほど
人来ない

orz
0651nobodyさん2009/07/17(金) 22:42:09ID:vZoTOxod
質問です。以下の条件の時、
$id = $_POST['id'][$i]; //3を返す
$var = "DB_lessonPic".$id;//DB_lessonPic3を返す

$_POST['{$var}']; で3を返すようにしたいですがうまくいきません
どうしたら良いでしょうか?
0652nobodyさん2009/07/17(金) 22:47:15ID:???
意味が良くわかりません。
強いて言うなら、$_POSTはスーパーグローバル変数なのでコード内でキーや値を変えないほうがいいです
0653nobodyさん2009/07/17(金) 22:53:19ID:???
エスパーすると、何らかの已むに已まれぬ事情で$varに色んな変数(DB_lessonPicX)
を突っ込んで、それに応じたXだけを返すようにしたいんだろう。

何でそんなことをしたがるのかは別のエスパーのために取っておく。
0654nobodyさん2009/07/17(金) 22:55:54ID:vZoTOxod
>>652
どうもありがとうございます
フォームのnameとして
DB_lessonPic1,DB_lessonPic2,DB_lessonPic3,,,って感じに末尾の数値が変わるものがあるんですが
受けてで、それぞれのvalueを取得したいんです。
ただ末尾の数値が何になるかは動的なものなので($_POST['id'][$i]のvalueに決定される)
$var = "DB_lessonPic".$id;
$_POST['{$var}'];
これでうまくいくかなと試してみたけど失敗してる次第です
ダメなのかな
0655nobodyさん2009/07/17(金) 23:25:13ID:???
>>654
とりあえずエラーでてるならかきなよ
シングルクオートでは{}は使えない
ようするに$_POST["{$var}"]としないとだめ
$varがStringならそのまま$_POST[$var]でいい

まぁ何がしたいんだかよくわからないけど
$_POSTには連想配列でPOSTされた値が入ってるから
$_POST[x]がわからなくても
foreach ($_POST as $key => $value) {
echo $key;
}
これでわかるはずだ
0656nobodyさん2009/07/17(金) 23:27:59ID:???
訂正
$_POSTには連想配列でPOSTされた値が入ってるから

$_POSTには連想配列でPOSTされたキーと値が入ってるから
0657nobodyさん2009/07/17(金) 23:45:23ID:vZoTOxod
>>655,656
なるほど、参考にさせていただきます
ありがとうございます!
0658nobodyさん2009/07/18(土) 09:15:53ID:wE0p3a0A
シングルクォートとダブルクォートの違い
0659nobodyさん2009/07/18(土) 10:53:15ID:FK9dZ1QC
ArrayObjectって使ってる方いますか?
PHP5.2.0の開発でオブジェクトとして扱える配列みたいな感じで
使ってみてたんですが、
php5.1.6では
$array['hoge']['hoge'] = 'hoge';
みたいな連想配列的な代入をするとエラーになるんですよね。
PHP Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference
これの原因や対処法などお教えいただけないでしょうか…。
0660nobodyさん2009/07/18(土) 12:24:22ID:???
追加はappendメソッドでやってください
0661nobodyさん2009/07/18(土) 17:51:24ID:pPEtcMUp
socket使ったHTTPのレスポンスヘッダ(?)を得るOOPで書かれたスクリプト(100〜200行くらいの)が
以前どっかのブログか何かに掲載されていたのですが、見つけられません。
知っているかた教えてください。
06626612009/07/18(土) 17:56:26ID:pPEtcMUp
見つかりました。自己解決
0663nobodyさん2009/07/18(土) 18:10:07ID:???
どこにあったか書いとけよ
0664nobodyさん2009/07/18(土) 20:00:39ID:???
ぐぐれかす
0665nobodyさん2009/07/19(日) 05:02:12ID:eVfI2UBD
【OS名】centos
【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
簡易掲示板を作成しているのですが質問があります。
テキストファイルで読み込んだ内容をhtmlで出力し、
出力した内容の横にテキストエリアを設置して、そのテキストエリアに書き込みをし、
保存ボタンを押すと保存され、日付と共に出力されるようにしたいのですが、うまくいきません。
どのようにすれば同一php内でこういう処理ができるのでしょうか?
読み込むファイル、phpファイルは以下のような内容です。

読み込みファイル data.txt

A田A男
B川B太郎
C上C子
D山D絵

本体PHPのhtml出力部 sc.php

サークル 一言コメント

氏名
A田A男   [来週火曜日は試験があるから参加できません!ごめん!]2009/7/19
B川B太郎 [金曜の飲み会出席する人、メール頂戴 → bkawabtarou@bocomo.ne.jp]2009/7/13
C上C子 [            ] //書き込みなし
D山D絵   [夏休み合宿の詳細、誰か教えて!] 2009/6/21

こんな感じです。
0666nobodyさん2009/07/19(日) 05:18:16ID:56+I2Wt4
>>665
「うまくいきません」ってことは、
「うまくいくはずなのに」と思ってるスクリプトがすでにあるのかな?
だとすれば、その大まかな流れでも書いてもらえると参考になります。

それとも、「うまい方法が思いつきません」って意味なのかな?
その場合は、「○○しようとすると○○なのでダメだ、うーむ」みたいな、
これまで悩んだ過程や現状の悩みを書いてくれると参考になります。
0667nobodyさん2009/07/19(日) 05:32:26ID:eVfI2UBD
>>666
説明不足で申し訳ありません。
スクリプトは自分で書いていっています。
現在、テキストファイルを読み込んでhtmlに出力されるところまでは
完成していて普通に動作しているのですが、書き込みの部分を
どういう風に処理してよいのかわかりません。
なのでうまい方法が思いつきませんの方が正しいです。
考えているのは、配布されているフリーの掲示板のように書き込んだ内容を
datファイルなどに保存をして、phpを開くたびにdatファイルを読み込み、
それぞれの人物のテキストエリアの内容と日付を表示させるようにしたいのですが、
この場合、A田A男の人物IDかなにかを設定して、A田A男のidが1ならば、
datファイルには1、コメント内容、書いた日付 的な物を書き込んで、読み込ませるようにしたら良いのでしょうか?
また、保存ボタンを押した場合、どのようにすればphpのhtml部を更新し、datファイルにデータを書き込みできるかでも悩んでいます。
長文ですいません。
0668nobodyさん2009/07/19(日) 05:32:32ID:???
1行掲示板なんてフリースクリプトがいくらでもあるから検索して既存の奴使ったほうが吉
0669nobodyさん2009/07/19(日) 07:52:27ID:56+I2Wt4
>>667
>>665を見る限り、実現したいのは「各メンバーの近況ひとこと欄」的な仕組みでしょうか?
最新1件しか表示しなくていいのなら、ほぼそのまま以下のテキストファイルを保存しておくのが簡単かと思います。

> A田A男   [来週火曜日は試験があるから参加できません!ごめん!]2009/7/19
> B川B太郎 [金曜の飲み会出席する人、メール頂戴 → bkawabtarou@bocomo.ne.jp]2009/7/13
> C上C子 [            ] //書き込みなし
> D山D絵   [夏休み合宿の詳細、誰か教えて!] 2009/6/21

その際、過去ログ用のファイルも別途用意して両方のファイルを書き換えるようにして、
過去ログのほうには「日付,氏名,コメント」のような記録が各行に並んでいれば扱いやすいでしょう。


>>667の最後に書かれた悩みは「マニュアルのファイルシステム関数読め」でおk?
使うのはたとえばfile()とかfwrite()とか。またはfile_get_contents()とかfile_put_contents()とか。
ただ、自分が作るならデータベースを使います。
0670nobodyさん2009/07/19(日) 10:51:12ID:???
A田A男のテキストエリアにB川B太郎がイタズラして変なこと書いて保存したりとかは
想定しなくていいの?
0671nobodyさん2009/07/19(日) 11:15:25ID:???
最近はデータベース使うまでもないって思うようになってきたなぁ。
ファイル使うと、ファイル形式云々かんがえなきゃいけなかったけど、
今はYAML使えばいいじゃんって感じで。

たいていの言語からでも読み書きできるから汎用性あるし、
読みやすい、書きやすいし、データを簡単に自由なデータ構造に出来る。
遅いって問題があるけど、それはserializeでキャッシュにしてしまえばいいし。
0672nobodyさん2009/07/19(日) 11:53:38ID:???
SQLであれこれするのに慣れてしまうとファイルの読み書きとか忘れてしまう。
仕方なくファイルに吐くにしても使い回しを考えてXMLとかJSONだし。
0673nobodyさん2009/07/19(日) 12:04:46ID:???
>>672
本職プログラマーだろ?
0674nobodyさん2009/07/19(日) 14:33:46ID:???
いや、データベース使っていても、
SQLなんて忘れてしまうよw
普通はO/R使うんでな。
0675nobodyさん2009/07/19(日) 14:56:26ID:???
O/RはSQLを知らない初心者でもをDBを使えるようにする仕組みじゃないぞ
0676nobodyさん2009/07/19(日) 15:19:31ID:???
パフォーマンスで問題になってからO/R使って無いな
SQLの改善費用だけで2500万とかうちの会社はホント恥ずかしい

O/Rはともかく、未だにEXPLAINすら知らない開発者は多い
0677nobodyさん2009/07/19(日) 16:17:41ID:???
>>675
漢字と一緒で、読めてもかけなくなる仕組みだろ?w
0678nobodyさん2009/07/19(日) 18:03:43ID:???
そりゃお前が頭悪いだけ
0679nobodyさん2009/07/19(日) 19:47:22ID:???
目的に通りの結果が得られれば、記録方法なんて何でも良いんだよ。
お前らも俺もコーディングの正確さ・美しさに捕らわれすぎ
0680nobodyさん2009/07/19(日) 20:38:41ID:???
正確さには囚われろよww
0681nobodyさん2009/07/20(月) 00:02:29ID:NuDmDR7p
質問です。料理のレシピ本みたいなアプリを作るとします。一品あたりの構成要素は。
・料理名(必須入力)
・作り方文章(必須入力)
・写真一枚(任意入力)
・写真の解説(任意入力。写真がない場合は出力しない「三つ葉を散らすと見た目も綺麗です」みたいな感じ)

この場合、「写真の解説」の出力判別用に、登録時にpic_upload = 1のようなカラムをDBに用意・insertして
それを判別するべきでしょうか?
該当ファイルが存在するかどうかをfile_exists();で確認して出力するしないを決めても良いかと思ってたんですが
ヘタなやり方だったかもと悩んできました
皆さんならどんなやり方にしますか? ご意見お願いします。
0682nobodyさん2009/07/20(月) 00:14:57ID:mGSM8h71
ふつうなら画像ファイル名(xxx.jpg)を記録するカラムで判断すると思うけど、
そういう質問するってことは、画像ファイル名は(id).jpgみたいに自然に定まる仕組みなのかな。
そうだとしても、pic_uploadとかやるよりはファイル名ないしパスを入れるカラムを作っといたほうがいいと思うな。
■ このスレッドは過去ログ倉庫に格納されています