【PHP】下らねぇ質問はここに書き込みやがれ 43
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/01(日) 04:21:50ID:VGqlLhlDPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0470nobodyさん
2007/04/06(金) 22:11:53ID:???作ってみたんですが、フォームの部品を
[select box] [search box] [bottun]
みたいに並べるのはどうすればいいんでしょうか?
普通にやると
[select box]
[search box]
[bottun]
みたいにレイアウトされてしまいます。
0471nobodyさん
2007/04/06(金) 22:15:04ID:???0472nobodyさん
2007/04/06(金) 22:15:33ID:???0473nobodyさん
2007/04/06(金) 22:25:28ID:???どういうレンダラーをつかっているのかという問題。
ttp://www.is.titech.ac.jp/~yanagis0/kei/quickform.html
とか
ttp://www.townmedia.org/tips/PEAR/HTML_QuickForm.html
を見ながらどうすべきかを考えるべし。
>>471,472
全然、無関係。
0477nobodyさん
2007/04/06(金) 22:43:53ID:9fDFot8yとはとはとは?
0479nobodyさん
2007/04/06(金) 23:58:48ID:51+hyhMJでマッチさせると、$matches[1]には空文字列が入ってくれるのに$matches[3]には値がセットされません。
この挙動は変ではありませんか?
0480 ◆SQL.mUThc.
2007/04/07(土) 00:10:22ID:vJbH2RhGまずwildcard.phpでセッションを開始し、GETのyouridにセッションidを渡します
このような形になります ⇒ hoge.php?yourid=hogehogehoge3333
そしてGETで受け取ったyouridの値を、hoge.php側で確認できる$_SESSIONのセッションidと一致したかどうかでユーザー認証をしています
そこで質問ですが、
このセッションidがリファラーなどで外部に漏れて第三者に渡り、その第三者がこのアドレスにアクセスしたとしても
その第三者がアクセスするときはセッションIDが違うので、認証ができないことを確認したのですが
この方式でユーザーの認証をするのはセキュリティ的にみて問題はありますでしょうか?
セッションを扱うのは今回がはじめてで無知なことは承知しています
詳しい方よろしくお願いします
0481nobodyさん
2007/04/07(土) 00:22:19ID:???そのセッション情報をどこに保存するかで変わると思う
cockieなら、悪意がある人間がたまたま情報を手に入れる
ことができたのなら、認証を突破できるだろう
0482nobodyさん
2007/04/07(土) 00:34:35ID:???セッションIDをパラメタに埋め込む必要はあるのかな?
勘違いかも試練がデフォルトクッキーが使えるならクッキー
にセッションIDを持たせるんじゃなかったっけ?
ただ何があろうともSSLは必須
0483 ◆SQL.mUThc.
2007/04/07(土) 00:48:33ID:vJbH2RhGやはり当方セッションについて勉強不足のようです
もう少し勉強しないと危険なスクリプトになりそうです
どうもクッキーがポイントみたいですね 出直してきます
ご意見ありがとうございます
0484nobodyさん
2007/04/07(土) 00:50:27ID:???ここに書いてあるぐらいの事は最低でも全部やっといたほうが無難。
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session
0485nobodyさん
2007/04/07(土) 01:31:50ID:zMY0muXp文字コードは今までいろいろ試しました。SJIS,EUC,UTF8
一長一短あると思いますが、何が一番いいでしょうか?
0487nobodyさん
2007/04/07(土) 01:40:41ID:???0488nobodyさん
2007/04/07(土) 01:41:13ID:???クロスブラウザを考慮しつつ、手間がかからない方向で考えると
スキルあるならSJIS。携帯でも見れるし。
スキル無いなら、EUCが無難ってとこじゃね?
古いOSのブラウザをバッサリ捨てるならUTF8。
0489nobodyさん
2007/04/07(土) 01:42:55ID:???0490nobodyさん
2007/04/07(土) 01:53:48ID:???0491nobodyさん
2007/04/07(土) 01:55:00ID:???0493nobodyさん
2007/04/07(土) 02:03:31ID:???せっかくうざい文字コード問題がUTF8統一で解決しかかってるのに、ノイジーマイノリティのために
全体の足を引っ張るのは論外じゃね? 全体の1%もない連中が騒ぎすぎなんだよ・・・
0494nobodyさん
2007/04/07(土) 02:20:39ID:???足引っ張るとかじゃないんじゃね?
サイト構築者が、一人でも多くのお客さんに見てもらいたいと
イヤラしく考えるかどうかだけでしょw
俺個人の話をすると、某マイナーゲームのサイトを
立ち上げたんだけど、まぁぶっちゃけ、既に有名サイトがあって
その二番煎じだったんだよね。ただ、その某有名サイトは
UTF8でCMS的な作りだったんだけど、俺はEUCで構築して
携帯用にはSJISで吐き出せるようにした。某雑誌がその
ゲームを取り上げる際に、紹介サイトとして、俺のサイトを
掲載したいとメールを送ってきた。本家的な某大御所サイトが
あるのに、何故俺のサイトなんだろう?と今でも分からないけど
多分、雑誌社の編集部はMac OS9で、俺のサイトをチェック
しやすかったんだろうと、俺は睨んでるw
0495nobodyさん
2007/04/07(土) 02:51:44ID:???0496nobodyさん
2007/04/07(土) 04:45:19ID:???0497nobodyさん
2007/04/07(土) 06:09:42ID:???0498nobodyさん
2007/04/07(土) 07:19:36ID:???0499nobodyさん
2007/04/07(土) 10:01:39ID:vZgv1pNd今のところは以下の手順でやってます
cd imap-2006f
make lrh
cp -p c-client/rfc822.h c-client/mail.h c-client/linkage.h /usr/include/
cp -p c-client/c-client.a /usr/lib/
これで
php-5.2.1
./configure --with-imap=/usr/local
とすると
utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen.
ってエラーで止まっちゃって
config.log見ると
configure: failed program was:
#line 45958 "configure"
#include "confdefs.h"
#include <c-client.h>
int main() {
int i = U8T_CANONICAL;
; return 0; }
0500nobodyさん
2007/04/07(土) 10:23:25ID:???使ってないので良く知らんけど
なんで、聞く前に
U8T_CANONICAL is missing PHP
ぐらでぐぐらないのか?一発で原因がわかるんだけど。
0501nobodyさん
2007/04/07(土) 10:43:33ID:???やっぱり独自にフレームワークを構築するのかな?
どんな感じで作ってるのかすげー気になる。
0502nobodyさん
2007/04/07(土) 10:45:39ID:???作る気にはなんねーけど
0503nobodyさん
2007/04/07(土) 10:48:05ID:???GREEやってることを見ればいいんじゃない?
あそこは本人のEthna発展系でフレームワーク作ってるから。
0504nobodyさん
2007/04/07(土) 10:50:04ID:???0505nobodyさん
2007/04/07(土) 10:55:57ID:???SNSそれ自体は結局は単なるブログと掲示板の集積だから「簡単」に作れるにしても、
商売に必要な多機能付加、メンテナンス考えれば、きちっとしたフレームワークがなきゃね。
0506nobodyさん
2007/04/07(土) 11:23:40ID:???SNSなんて既存のフレームワークで充分だろ
0507nobodyさん
2007/04/07(土) 11:38:26ID:36/fFnrN0508nobodyさん
2007/04/07(土) 11:50:23ID:???0509nobodyさん
2007/04/07(土) 12:10:36ID:JPCg3GgQ0510nobodyさん
2007/04/07(土) 12:40:12ID:???0511nobodyさん
2007/04/07(土) 13:09:47ID:JPCg3GgQ0512nobodyさん
2007/04/07(土) 13:18:06ID:???フレームワークって言った場合は、ソフトウエアのためのソフトウエア統合環境のことだ。
0513nobodyさん
2007/04/07(土) 13:23:52ID:JPCg3GgQ0514nobodyさん
2007/04/07(土) 13:24:34ID:???0515479
2007/04/07(土) 13:43:50ID:qxhDTSD1失礼しました。
0516nobodyさん
2007/04/07(土) 13:44:49ID:???0517nobodyさん
2007/04/07(土) 13:56:34ID:???0518nobodyさん
2007/04/07(土) 14:02:21ID:S7Rnm2Ut0519nobodyさん
2007/04/07(土) 14:03:37ID:???0520501
2007/04/07(土) 14:07:31ID:???thx 参考になります。
SNSというよりWebアプリと言うべきだったorz
最近phpをはじめてCMSなどをいじりはじめたので
>>505さんの言われている様なことが気になっていたんです。
で自分で話し振っといて悪いがフレームワークが何なのかわからなくなったw
しかもなぜ>>501の質問に至ったのかさえ忘れてしまったw
ほんと俺ってバカだなwwwwwwwww
0521nobodyさん
2007/04/07(土) 14:09:30ID:???まずは、マニュアルを読め
http://jp.php.net/manual/ja/function.flock.php
0522nobodyさん
2007/04/07(土) 14:16:46ID:S7Rnm2Utさんくす
すまん読んだつもりが見逃してた
0523nobodyさん
2007/04/07(土) 14:40:08ID:???とりあえずなんでもいいからフレームワークダウンロードして
ちょっと弄ってみたらわかるとおもう
言葉で説明しても分かってる人にしか分からん説明になりそうだ
0525nobodyさん
2007/04/07(土) 17:02:20ID:???なんか違う結果が出るんですけど・・・。
あと
$hoge = array( var => 'test' );
と
$hoge = array( 'var' => 'test' );
って違うんでしょうか?
0526nobodyさん
2007/04/07(土) 17:03:41ID:???/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
| ( ゚Д゚) <あのね、先生もそんなにヒマじゃないの。
|(ノ |)
| |
ヽ _ノ
U"U
0527nobodyさん
2007/04/07(土) 17:13:48ID:???0528nobodyさん
2007/04/07(土) 17:33:22ID:???0529nobodyさん
2007/04/07(土) 17:48:09ID:???直リンクできないようにする方法とかない?
0530nobodyさん
2007/04/07(土) 17:52:13ID:???__FILE__ と $_SERVER['SCRIPT_FILENAME'] を比較することで
直アクセスか、includeされてるかの判別ができるからそれでどうにかしろ
0531nobodyさん
2007/04/07(土) 18:05:51ID:???1.普通は、include先ファイルはWebディレクトリ外に置く。これが基本。
2.中に無きゃいけないっていうなら、include元の(たとえば)index.php冒頭に
define('MYFILE',true);
とか書いておいて、includeされるファイル冒頭に
if(!defined("MYFILE") || MYFILE != true) {
die('');
}
みたいなことやる。
3.2.でアクセスされるのも厭なら、apacheのrewrite_modつかって
RewriteEngine on
RewriteRule (アクセス許可ファイルじゃなきゃ) (アクセス不可)
とかで処理。
0532nobodyさん
2007/04/07(土) 18:18:21ID:???0533nobodyさん
2007/04/07(土) 18:21:53ID:???テキストファイルとして見えちゃうことが多いから駄目でしょ。
0534nobodyさん
2007/04/07(土) 18:21:54ID:???アクセスできなくすればいいapacheなら.htaccessとかでdenyに
webからアクセスできなくてもphpからなら権限さえあればincludeできる
0535nobodyさん
2007/04/07(土) 18:23:58ID:???0536nobodyさん
2007/04/07(土) 18:25:35ID:???>>531あるいは>>531の2のようなこととかをPHP内部でしておくのが大切。
0538nobodyさん
2007/04/07(土) 18:47:11ID:???何か実現したい事があった時に、色んな設定(コーディング)等をする必要があるのは高度だ。
不具合があった時に問題切り分けなど時間かかって経費かかるし、
速度面や再利用性など重視で問題がなければ、言語内で完結したほうがいい。
0540nobodyさん
2007/04/07(土) 18:57:09ID:???0541nobodyさん
2007/04/07(土) 19:40:16ID:???0542nobodyさん
2007/04/07(土) 20:06:11ID:???0543nobodyさん
2007/04/07(土) 20:27:29ID:???みたいのを読んだ気がするんだけど、
functionの戻り値がOKなら配列(array)だめならfalse(bool)
みたいに違う型を送るのは、設計的にあまりよくないのですか?
戻り値が想定できないじゃなくて、文字列か配列特定できないどっちかが返ってしまうとかだったかも・・・。
0544nobodyさん
2007/04/07(土) 20:56:32ID:???その関数を使うPG視点で分かりやすく使いやすいのが良い関数。
>戻り値が想定できない?ような設計はだめだ
「戻り値が想定できないような関数名はだめだ」なら良く聞くけど。
0545nobodyさん
2007/04/07(土) 22:01:57ID:???PHPの標準関数はそういう戻り値(array or bool)が多いけど
正直言って使いにくいとはよく思う。
慣れたんで困らなくはないけど。
ただ、これは作法の話であって設計がダメとかいうのとは違う。
元の話を思い出したらまた来な。
0546nobodyさん
2007/04/07(土) 22:11:55ID:???0547nobodyさん
2007/04/07(土) 22:36:32ID:???ほとんど同一人物だろこれ。
0548nobodyさん
2007/04/07(土) 22:37:42ID:???0549nobodyさん
2007/04/07(土) 22:45:55ID:???0551nobodyさん
2007/04/07(土) 23:01:15ID:???PHPに興味はあるんだけど頭が悪くて質問に答えるどころか、
疑問も浮かんでこないのに、なにかスレで言いたくてたまらない
可哀想なやつだと思ってにこにこして読んであげてるよ、おれw
0552nobodyさん
2007/04/07(土) 23:01:46ID:K6TrX8TC$fp = fopen(filename, "r");
while(!feof($fp))
{
$str = fgets($fp, 4096);
$str = rtrim($str); // 改行除去
echo "$str<br>";
}
fclose($fp);
ファイルの中身
------------------
ああ
いい
うう
EOF
------------------
単純にファイルの中身を表示しているだけだが、ファイルの末端を改行すると
その行も処理されちゃうのはなんで?
EOFで最後の行は無視されるかと思うんだけど…
(if (!$str){ continue; } でうまくいけるけど)
0553nobodyさん
2007/04/07(土) 23:15:51ID:???null[EOF]
null[改行]
はrtrimから見れば一緒です。
0555nobodyさん
2007/04/07(土) 23:19:30ID:???0556nobodyさん
2007/04/07(土) 23:20:53ID:???単純にeofに達する判断が読み出した後だからとしか
期待する動作を望むならfgetsの戻り値でやるとか
$fp = fopen(filename, "r");
while($str = fgets($fp))
{
$str = rtrim($str);
echo "$str<br>";
}
fclose($fp);
0557nobodyさん
2007/04/08(日) 03:33:53ID:evw5P74Isubstr_count ( file_get_contents($file), "\n" );
今までは
count(file($path));
でやってたけど上のほうが1.5倍速かった
ファイルはShift_JISで日本語入ってるけど平気かな
0558nobodyさん
2007/04/08(日) 04:30:38ID:???sjisの下位バイトは制御コード使ってないので大丈夫。
間違ってるのは後者。改行コードが0個でも1と返る。
0559nobodyさん
2007/04/08(日) 09:24:41ID:iJakkiFrたとえば、ライブハウスのライブ情報を登録する機能があるとして、
各日にちごとに出演者情報を登録する際に、出演者数が毎日マチマチで
ある場合、SQLに送信する出演者IDの数もマチマチになるわけですけど、
そうすると、単純に考えたら保存するフィールドが複数必要になります。
でも、そんな不安定なことするわけにいかないので、特定のフィールド”players”に
カンマ区切りで追加上書きしていくのが正解なのかなぁと思ったんですが、
こういう発想でいいんでしょうか?
なんだかphpの質問かSQLの質問かわからないですが、アプリ制作の
いろはとして質問させてもらいました。OKですか?
0560nobodyさん
2007/04/08(日) 09:40:33ID:???DBの正規化の考え方からすれば、その「不安定なこと」も「特定フィールド
カンマ区切り」もいずれも外れてる。
ライブイベント情報に即して、出演者「行」を増やしていく(第一正規化)。
ライブイベント情報をキーにして出演者 tableを別途作り、またIDキーなどで
整序していく(第二正規化以降)のが普通。
0562nobodyさん
2007/04/08(日) 10:48:24ID:evw5P74Iさんくす
問題ないのね というか後者は間違ってたのか 助かりました
0563nobodyさん
2007/04/08(日) 11:42:42ID:???大抵カラムをその数だけ増やすかカンマ区切りで入れちゃうんだけど
0564nobodyさん
2007/04/08(日) 11:44:15ID:???0565nobodyさん
2007/04/08(日) 11:49:33ID:???みたいなもん)、出演者情報は、どう考えてもライブ情報なら最初から正規化対象だろうから
いい勉強の機会ということで。
0566nobodyさん
2007/04/08(日) 12:48:00ID:+aqEfY9a$path = '/diary/2007/';
$dir = opendir($_SERVER['DOCUMENT_ROOT'].$path);
while($file = readdir($dir)) {
if(ereg(".php$", $file)) {
$file = ereg_replace('.php', '', $file);
echo('<a href="/diary/2007/'.$file.'">'.$file.'</a>'."\n");
}
}
closedir($dir);
このようにファイル名を取得してリストを作っています。
ディレクトリ 2007 の中には 01.php, 02.php, 03.php, 04.php のファイルがあり
また、上記の方法ではこの順に表示されます。
ディレクトリの中の最後のファイル名のみを取得したい場合は
(上記の例では 04.php が "最後のファイル名" に相当します)
どのように書けば良いのでしょうか。よろしくお願いします。
0567nobodyさん
2007/04/08(日) 13:13:00ID:???$aF[] = ereg_replace('.php', '', $file);
として
最後に
$hosii_file_mei = array_pop($aF);
じゃだめなのかい?
0568nobodyさん
2007/04/08(日) 13:23:08ID:Q73wCY81PHPでBBSを作りました。
案の定荒らしが書き込まれています。
そこでプロキシ経由での書き込みを禁止したいのですが、その書き込みがプロキシ経由かどうかを知るためにはどうすればよいのでしょうか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています