くだすれPHP(超初心者用)3 at PHP
[2ch|▼Menu]
[前50を表示]
200:nobodyさん
07/12/02 12:23:24
そういう風につくっちまったんだべ

201:197
07/12/02 13:19:32
あ゛あ゛あ゛あ゛ー
脳味噌がオパピーです教えて下さい


クッキーが使えないドコモなどで、セッションIDを受け渡す方法として、
URLに定数SIDを入れる方法とhiddenで渡す方法はわかったのですが、
セッションid以外の情報も持って移動したい時はどうすればいいのですか?

202:nobodyさん
07/12/02 13:23:39
> セッションid以外の情報
具体的には何?

203:197
07/12/02 13:29:39
>>202
具体的には
個人の名前や年齢など、個別な情報20点ほどを持ってページを移動したいのです

204:nobodyさん
07/12/02 13:34:42
セッションIDは何のために受け渡すの?

205:197
07/12/02 13:43:11
>>204
セッションidは本人確認の為に受け渡します。
1のページからきたユーザが、2のページへ移動してきたユーザと同一かどうかを確認するためです

206:nobodyさん
07/12/02 14:01:15
セッションIDを誤解してるのかな。
セッションIDは、サーバが持っているデータを引き出すための鍵のようなもの。
鍵を持ってる事自体を本人確認に使うこともあるし、
その鍵でサーバからデータを取り出す事もできる。

207:nobodyさん
07/12/02 14:06:55
セッションIDはセッションを受け渡すために使うもんだろ・・・

208:197
07/12/02 14:11:23
>>206
意味間違えてるんだと思います…
サーバーにセッションidを使って情報を持たすのは、一度にいくつでも可能ですか?

またオパピーです

209:nobodyさん
07/12/02 14:27:32
基礎から勉強しろって

210:nobodyさん
07/12/02 15:34:27
>>207
そのやり方がわかってないんじゃね
教えてやれば

211:nobodyさん
07/12/02 15:46:34
自演乙

212:nobodyさん
07/12/03 08:37:02
>>201
>>196>>197ってレスしてるのに何も進歩していないとは何事だ!

213:nobodyさん
07/12/07 23:57:59
> セッションid以外の情報も持って移動したい時はどうすればいいのですか?
この「移動」って具体的に何を示してるの?



なんで、質問者に質問しないといけないような質問するの?

214:nobodyさん
07/12/08 01:52:51
お前の理解力がないからだろ

215:nobodyさん
07/12/08 02:19:56
情報小出し厨は死ね。

216:nobodyさん
07/12/12 07:13:18
>>208
セッションID渡された時点でその個人は特定できるんじゃないの。
セッションIDをキーにしてDB検索とか

217:nobodyさん
07/12/16 07:29:41 nJrEMZh9
恥を承知で質問します。
Smartyテンプレートの実際に使われる基本的なパターン(中身)を教えてもらえませんか?
正直、プログラムに関してはスーパー初心者です。一応、PHPやperl・正規表現についての理屈は、昨日、斜め読みでざっと把握しました。しかし、全くSmartyへの理解にはつながりません。
Smartyを理解するヒントとして実際のテンプレートの記述とそのパターンなど提示していただけると助かりるのですが‥。
Smartyというのは、例えば、既に記述されたHTMLを差し替えて表示したり、コンテンツ構成を根本から修整したりできるのでしょうか?


218:nobodyさん
07/12/16 08:06:15
その前に、Smartyを使う必要があるの?
普通にPHPで「<title><?php echo $title ?></title>」とかでもいいだよ。
デザイナさんで、Smartyのテンプレートファイル弄る必要があるなら別だけど。

219:nobodyさん
07/12/16 08:58:24
>>218
アドバイスありがとうございます。


> その前に、Smartyを使う必要があるの?
> デザイナさんで、Smartyのテンプレートファイル弄る必要があるなら別だけど。
 私はデザイナーではありませんが、テンプレートを利用し利用者が自由にコンテンツデザインを選択できることは非常に重要なポイントになります。Smartyは、その点に長けていると聞いたのですが、実際、どうなのか?と。

> 普通にPHPで「<title><?php echo $title ?></title>」とかでもいいだよ。

 PHPとSmartyは、ある程度出来ることは似ているのでしょうか? 私としては、body内のタグ構成を丸ごと置換出来るならば、PHPでもSmartyでもかまわないのですが、Smartyがデザイン的に有利ならば、やはりSmartyを活用したいと考えています。

 とりあえず、もう少し自分で探ってみた方が良いみたいですね。ありがとうございました。


220:nobodyさん
07/12/16 22:43:28
>>219
なんでSmartyのドキュメントは読まないんですか?

221:nobodyさん
07/12/17 02:33:24
>>219
ヒント:smartyはphp

222:nobodyさん
07/12/18 06:49:50
>>219
Smartyのメリット(使い方)

 1.PHPスクリプトで動的に表示させるデータを生成(あるいはDBから取得)する。

 2.Smartyテンプレートファイルと呼ばれる、HTMLの中に1.の変数を書き込
  めるタグ(記号)を書いたファイルを用意する。

 3.PHPスクリプトから、そのテンプレートファイルを指定して表示させると、
  あら不思議、HTMLの中にPHPの変数が表示されるじゃないか!

 4.テンプレートファイルの記述では、データ量に応じて表示をループさせたり
  できるので、たとえば実行するまで何行のテーブルを表示させることになるか
  わからない行データも、スッキリとテンプレートファイルに書けるぞ!

 5.おまけに、テンプレートファイルを複数用意すれば、PHPスクリプトを修正する
  ことなく、いろんなデザインの表示に切り替えられるよ!

こんな感じ。ご参考になったかなぁ?

223:nobodyさん
07/12/18 21:22:45
phpで書けばいいじゃん

224:nobodyさん
07/12/19 01:53:46
プレビューでもできれば利点はあると思うんだけどなぁ



225:nobodyさん
07/12/19 16:07:10 DnDjbDYh
簡単なプログラムでもDBを導入したほうが効率が良いのでしょうか?

アクセスカウンタを例にしますと、
テキストのログファイルを読み込ませるほうがよいのでしょうか?
この程度でもDBと連携させたほうが効率が良いのでしょうか?
簡単なものはテキスト、中規模以上はDBって感じでしょうか?
小さくてもアクセス頻度が高い場合はDBのほうが安全なのでしょうか?

速度、鯖の負荷、その他ありましたら教えてください
よろしくおねがいします

226:nobodyさん
07/12/19 19:32:38 E60FAw4D
すみません。超くだらない質問なのでこちらのスレで聞かせてください。
HTMLのタグ内でのダブルクォーテーションの扱いに困っています。

<input type="hidden" name="gid" value="<?php echo "abc_" . $gid; ?>">
value="<?php echo "abc_" . $gid; ?>"←この部分ですが、value=の次はPHPに処理が進むので
その中に再びダブルクォーテーションを使っても大丈夫ですか?というか文法的に間違いじゃないですか?

よろしくお願いします。

227:nobodyさん
07/12/19 21:34:28
>>226
マニュアルの文字列文法のページを100回読め

228:nobodyさん
07/12/20 02:40:21 g0oPtWoH
227へ
    __,,/  _, ----`ヽ  :.
     :.  / _     ___   、\
       / /   i      \   \\ :.
     :. ,'./       i  ヽ:.   ヽ:.:.. ヽ.ヽ
      ,'/    / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
     :. |i .i i  .i /  ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
       |i .i l  :N_, -弋 \弌弋ナ:}:.:}
    :. |i∧ ', :{ ,ィjモト \  イjミトイイV :.  な…
       .|  :メヽ.', `ozZ}      izN。ハ::{     なんでですか?
      :. |  :ヾ_! ゝ "゙゙    '  `゙ ハ.:', :.
      |  :.:_イ .:.ヽ.   (二フ , イ :.:.:!:.ヽ     なんでだれも
   :.  / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:.   答えてくれないんですか?
      / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
 :.  / .{. ',ヾ、ヽi .:.:.{ /(^`  |.:.:.:.//: : :.}: . ヽ.:.
   / /  ) ヽ ヾ、ヽ:.ハ ヤ{   ∧/.-‐'": : |:.:. i ',
  ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、  : : : l:.:.: .ハ ',
  { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
  V | .:.:/:.:|_,ィ' ̄  ヽ三{ `ー-ノ : イ : : :/:.:i.:{  リ
    ヽ:.:{、.:.V     : : ヘ     : : {: : :/:.::∧|
     ヽ! )人    : : :人      : : : / \! :.
      "  ヽ : : : : :/イ{     :.ノ: : : :.\ :.
       :.  \__///: :\______/: : : : : : : ヽ
           / //: : :|;|: : : : : : i: : : __: : : : ',
       :.     / 、 {;{   |;|   . : i/. : : : : : :|
          / `Y;{. . . .|;|. : : : /i: : : : : : : : :l


229:nobodyさん
07/12/20 03:00:52
DWあたりのツールが使えるだけでなんかWebが作れる気になっている初心者が多すぎだろ。

230:nobodyさん
07/12/20 03:34:10
>>228
読んだのか?

231:nobodyさん
07/12/22 19:34:41
>>226
このスレにふさわしい質問だ。

「"」で括られた文字列中に「"」を記述するときは、「\"」とするのだよ。


232:nobodyさん
07/12/31 16:42:06
例えば <a href='./index.php'></a>
というタグがあるとして
''の間の ./index.php を表示させる
というふうにするにははどうすればいいでしょうか?

233:nobodyさん
07/12/31 17:46:42
>>232
SimpleXMLでおk

234:nobodyさん
08/01/04 12:59:42
HTMLSQLも便利だよ。
URLリンク(www.jonasjohn.de)

235:nobodyさん
08/01/06 18:15:09
>>232
preg_match 使え。

236:nobodyさん
08/01/06 23:18:22
$test = array(
"hoge" => 0 ,
"poge" => 0 ,
"moge" => 1 ,
.
.
"hohe" => 3
)

$contents = array(
0 ,
0 ,
1 ,
.
.
3
)
にしたい場合はどんなふうに描けばいいんでしょうか?

237:nobodyさん
08/01/07 01:21:47
>>236
あれいばりゅーず

238:nobodyさん
08/01/11 04:17:35
例えば、
URLリンク(hogehoge.jp)
上で、
URLリンク(hogehoge.jp)
という文字列を取得してくる関数か何かは無いでしょうか?
$_SERVER変数の中にはそれらしいものがなかったので・・・

239:nobodyさん
08/01/11 04:22:37
あるだろ

240:nobodyさん
08/01/11 04:59:28
>>239
それがなかったんですよ。
$_SERVER['PHP_SELF']だと "/index.php"
$_SERVER['SERVER_NAME']だと "hogehoge.jp"
$_SERVER['DOCUMENT_ROOT']だと "/public_html/index.php"
ほかは何か違うし・・・
"http://"はともかく、"hogehoge.jp/~hoge"は取ってきたいんです。

241:nobodyさん
08/01/11 06:12:58
どこをどう探してなかったといっているんだ。このヴァカは?

URLリンク(jp.php.net)
URLリンク(jp.php.net)

242:238
08/01/11 11:30:21
>>241
いや、だから、絶対URLを取得したいんですよ。
いまテストしているサーバから別のサーバに移植する予定なので、
動的にとってこさせるようにすればわざわざURL部分を書き直さなくても
済むだろうと思いまして。

何をしたいかと言えば、特定のディレクトリに置かれているファイルを、
階層の違う別々のディレクトリから参照したい、と思いまして。

URLリンク(hogehoge.jp)
を、
URLリンク(hogehoge.jp)
URLリンク(hogehoge.jp)
URLリンク(hogehoge.jp)
など、どの階層に置いても同じ記述で/movie下の任意をファイルを参照する、という。
movie.flvをどこに置くかは決まっているので、hogehoge.jp/~hoge/さえ取得できれば
参照させられるんです。
相対パスだと、ひょっと別のディレクトリに置くと、パスを書き直さなきゃならないんで
移植が面倒になるな、と。


あえて言うなら、parse_urlに渡すURL(そのPHPファイルの絶対URL)を動的に取得したい
ということです。URLを解析したいわけではないんです。

243:nobodyさん
08/01/11 12:08:38
こいつは「応用」という事を知らないみたいだな

244:nobodyさん
08/01/11 18:17:35 mLMFZoBj
認証について質問です。
POSTでデータを送って暗号化などしてデータベースパスが一致したらログイン。
このソースで大丈夫なのかどうか不安です。
a.html→(ここ)→b.php
(ここ)でデータを盗むことができたりするのでしょうか?
これでいいならSSLの必要性がイマイチわかりません。

a.html

<html>
<head>
<title>test</title>
</head>
<body>
<form action="hogehoge.php" method="POST">
<input type="text" name="id">
<input type="password" name="pass">
<input type="submit" value="送信">
</form>
</body>
</html>

b.php

<?php
$pass = $_POST['pass'];
$pass = strip_tags($pass);
$pass = htmlspecialchars($pass, ENT_QUOTES);
$pass = md5($pass);
$pass = substr($pass,0,10);
-------データベースからmd5で暗号化されたデータを引き出して認証-------------
?>

245:nobodyさん
08/01/11 18:21:23
sslじゃないなら平文で流れるよ

246:nobodyさん
08/01/11 18:21:32 mLMFZoBj
連投でスマソ
URLリンク(www.soumu.go.jp)

> 通信途中でデータを傍受されると、情報が第三者に漏れてしまう可能性があります。

a.html→(ここ)→b.php
(ここ)でデータが取れるとこのサイトでは言ってるわけですよね?
では、パスワード漏洩しないには具体的にどのようにすればいいのでしょうか?

よろしくお願いします。

247:nobodyさん
08/01/11 18:23:32
sslにする

248:nobodyさん
08/01/11 18:29:13 mLMFZoBj
>>247
漏洩したくないなら金をそこで使うのは当然なのはわかります。
しかし、実際sslを使用していない認証はたくさんあると思います。

そのようなサイトは漏洩する可能性が高いと見て良いのでしょうか?

例 (mixi)
URLリンク(mixi.jp)

249:nobodyさん
08/01/11 18:30:46
>>248
>SSL(https)はこちら

250:nobodyさん
08/01/11 18:35:41 mLMFZoBj
>>248
見落としてた…orz

え、じゃあ今までhttpsでやってなかった俺のパスワード&アドレスは
漏洩してる可能性あるってこと?

なんでデフォルトがhttpsじゃないんだよ(´・ω・`)

251:nobodyさん
08/01/11 19:01:52
来週から初出勤の俺
PHPは参考書読む程度なんですが
開発現場ってどんな感じで作業進めるのでしょうか?



252:nobodyさん
08/01/11 19:48:43
殺伐と

253:nobodyさん
08/01/11 20:24:05
>>250
スレ違いになるが、JavaScriptでmd5に変換とかすれば

254:nobodyさん
08/01/11 21:04:07 mLMFZoBj
>>253
なるほど
<input type="text" name="pass1">
<input type="hidden" name="pass2">

document.pass2.value = md5された文字

色々省略してますがこんな感じで飛ばせばOKということですね?
これでセキュリティに問題ないならやってみようと思います。

255:nobodyさん
08/01/11 22:37:14
相手がJavaScript切っていたら?
ていうか、質問者もそのレベルならセキュリティ意識する必要ないし(しても対処できないのが落ち)
、回答者もひどすぎる。
とにかくSSLにすればいい。証明書を第三者機関に発行してもらうのはウェブページの信頼性を保障してもらうため。
別に俺のことは俺が保障するっていうなら俺俺証明書でOKなわけ。
それじゃ普通は駄目だから金払う。

256:nobodyさん
08/01/11 23:07:26
>>255
JavaScript切ってたら、mixiでいう「SSL(https)はこちら」を
選択しないのとそう変わらんだろうに
暗号化して送信するかしないかをユーザに任せるという意味ではね
SSLだって人によっては切ってるかも知れんぞw

257:nobodyさん
08/01/11 23:32:11
>>254
その例、なんとなく勘違いしてそうだが、
入力されたパスワードをsubmit時にJavaScript側で
md5にしてからPOST送信すんの
分からんかったら調べるなりJavaScriptスレへ

258:238
08/01/12 00:10:38
移植予定先で$_SERVER['SERVER_NAME']を試してみると、
hogehoge.jp/~hoge/が取得できましたorz
何を見てたんだ俺は・・・
どうもご迷惑おかけしました。

259:238
08/01/12 00:17:48
違った。$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']でした。
どうもたびたび申し訳なく・・・

260:nobodyさん
08/01/12 00:28:49
>>259
REQUEST_URI はやめといた方がいいんじゃね
素直に
substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '/'))
とかじゃダメなん?

261:nobodyさん
08/01/12 00:29:36
あーあ、SCRIPT_URI って書いたとおもったのに。

262:238
08/01/12 01:23:53
>>260-261
SCRIPT_URIは確かサーバの環境依存じゃなかったですか?
移植先はレンタルサーバなので、Apacheの設定を弄らせてもらえるか
微妙なんです。未だにどこに移植するか決まってないという。
自鯖にすれば設定し放題ですが、さすがに管理が・・・
/~hoge/句がつくかどうかも微妙ですし。

最悪、DBに絶対URLを格納しておいてそれを使うようにすると言う手を考えつきました。
まあとりあえずREQUEST_URIでやってみます。問題が起きたらDB方式に。
文字列エンコードすればXSSも何とか回避できるでしょうし。
ありがとうございました。

263:nobodyさん
08/01/12 01:45:55
Windows版phq4.4.2なのですが、
GDが読み込まれません。
php.iniの設定箇所のコメントを外す以外に何か設定が必要でしょうか?

264:nobodyさん
08/01/12 06:37:20
再起動する

265:263
08/01/12 17:40:18
>>264
ApacheはもちろんWindowsも再起動してみましたが反映されません。。。

php.ini以外にさわる箇所あるのでしょうか?

266:nobodyさん
08/01/12 18:50:14
理由は?
extension_dirの指定が間違ってるとか、GDの共有ライブラリが入ってないとか

267:nobodyさん
08/01/12 19:22:51
反映されないってどこを見て言ってるの?
php.ini はどこを変更したの?

268:263
08/01/13 06:15:16
レスありがとうございます。

>>266
extension_dirの指定はmbstringの設定が有効なので良いと思うのですが。
ライブラリはphp_gd2.dllですよね?それなら入っています…


>>267
反映についてはphpinfoにgdの項目が出てこなく、関数も使えないのでそう判断しています。
php.iniはextension_dirのコメントを外しました。

269:nobodyさん
08/01/13 10:02:45
手順と確認に問題は無さそうなので、修正しているphp.iniと実際に使われているphp.iniが違うファイルなんじゃないかな?
phpinfo()でどこのphp.iniを使っているか表示されるけど、それは一致してる?

270:nobodyさん
08/01/13 10:42:53
PHPIniDir('c:\php');

271:263
08/01/13 12:22:04
>>269-270
レスありがとうございます。
試してみたいと思います。

272:263
08/01/13 23:05:13
>>269
ビンゴでした。
なぜかiniファイルの読込先がC:\windowsに。。。
ここは変更できるのでしょうか?

一応、この場所にiniファイルを置きましたところ、GDの読み込みには成功いたしました。

ありがとうございました。

273:nobodyさん
08/01/14 02:36:12
なぜかとかって・・・

274:nobodyさん
08/01/14 07:49:03
iniのおき場所と、それぞれのおき場所の優先順位とコンパイルオプションの話はマニュアルに何か書いてあったような気がする

275:nobodyさん
08/01/15 04:28:15
PHPで、CSVファイルを取り込み、Postgresへ格納するの作ってるんですが、
100Mくらいのファイルを取り込むのに、時間が40分くらいかかって
メモリーも2Gくらいを、PHP.iniに書かないと途中でとまるんですが、
PHPってスピードとか、メモリー使用量ってこんなもんでしょうか?

276:nobodyさん
08/01/15 04:31:00
コードが悪い

277:nobodyさん
08/01/15 05:07:45
>>275
URLリンク(www.1x1.jp)

278:nobodyさん
08/01/15 09:57:33
メモリの使用量はPHPとはあまり関係なくプログラマが読み込ませたデータ量による
時間がかかっているのは激しくスワッピングしてるからだと思われ
普通はデータ量が大きいときは漸次処理して負荷を減らすもの

279:nobodyさん
08/01/15 12:28:56
100,000
のように数字に「,」が入ってるときに、数字のみを取り出すにはどうすればいいですか?

280:nobodyさん
08/01/15 13:14:35
ereg_replace(",", "", $var)でできました

281:nobodyさん
08/01/16 11:56:16 sJoxzvRt
質問させていただきます
たまにURLリンク(example.com?aaa)と言うようなURLを見るのですが
クエリ情報を受けとるファイルでは$_GET[?]で受けとっているのか教えて下さい

282:nobodyさん
08/01/16 13:16:39
le.com/?aaa のことならたいてい index.php において空の $_GET['aaa']

mod_rewrite 使ってることもありえる

283:nobodyさん
08/01/16 13:25:34
>>281
$_SERVER['QUERY_STRING']とか。

284:nobodyさん
08/01/16 15:11:30
>>283
それはそれで、何でわざわざそんなことやってるのかって疑問が出来るな

285:nobodyさん
08/01/17 11:15:01
アクセスログ解析用だろ

286:nobodyさん
08/01/17 12:05:56
キーのみのクエリで何でアクセスログの話が?

287:281
08/01/17 13:56:22
レスありがとうございます
>>282さんの
index.phpに空の$_GET[aaa]をおくと言うのを
試してみたのですが意味がわかっていないせいか何も変わりませんでした
もう少し詳しく説明お願いしていいですか?
お手数かけてすいません

288:nobodyさん
08/01/17 14:15:33
置いてじゃなくて於いて。
クエリ文字列を取得するなら>>283

289:nobodyさん
08/01/17 15:15:36
よく読んでませんけど、まずApacheの話として、クライアントから/?aaaみたいなパスで
リクエストされた場合、ファイル名がないのでウェルカムファイルがリクエストされたと
判断される。 /でリクエストすると/index.phpが読まれるのと同じ理屈で/?aaaの場合は
処理を行うスクリプトはindex.phpで、クエリとしてaaaが渡されると思う。
で、クエリは本来/?aaa=valueというようにフィールドとその値になってるけど、この
場合は値がないので、変数名は$_GET[’aaa’]となりデータは空の文字列
ということになるとめでたくね?データは空だから何も受け取ったことにはならないけど
連想配列のキーの有無で違いが出るので、!isset($_GET['aaa'])としてやると
/?aaaなのか/?bbbなのかは区別できるような木がする

290:nobodyさん
08/01/17 15:27:11
嫌がらせかw

291:nobodyさん
08/01/17 23:00:15 AXahQPv7
URLリンク(example.com?aaa)<)

URLリンク(example.com?bbb=aaa)

で通常は$_GET['bbb']で受け取ります
そのサーバでどこかに$_GET['bbb']を受け取るファイルがあるのです


292:nobodyさん
08/01/19 12:56:29
>>291
どこからbbbが出てくるんだよw

?aaaは$_GET['aaa']として入ってくる
データ内容は確かnullのはず
issetでチェックはできるけどな

293:nobodyさん
08/01/19 13:00:52
通常は って言い切るのはどうかと思うけどたいていmod_rewriteとかで$_GET['bbb']で受けるんじゃね
もちろんbbbかどうかは知らないけど

294:nobodyさん
08/01/19 13:09:31
mod_rewrite使うなら?をつける意味が無いな
/aaa/とかにすると思うが

295:nobodyさん
08/01/19 13:14:21
単にisset($_GET['aaa'])で存在チェックしてるだけでFAだろ。
何が問題なんだ?

296:nobodyさん
08/01/20 17:11:47
phpのスクリプトを読んでいると
($mode ? 'OK' : 'NO')
という分岐?が出てきたのですが
この方法の名前は何というのでしょうか?
調べようにも名前が判らず困ってます

297:nobodyさん
08/01/20 17:19:56
三項(条件)演算子

298:nobodyさん
08/01/20 17:21:32
>>296
URLリンク(jp.php.net)

299:nobodyさん
08/01/20 21:00:02
perl にもあるし、C/C++ にもあるし…あとは…
結構サポートしてる言語あるぞえ

300:nobodyさん
08/01/21 00:37:42
レンタルサーバー(アイル)でセッションを使ってユーザ管理できる形で
スケジューラー作ってます。

最近利用している人から、見ていたらお前のログイン状態が出てきたぞと
言われ、キャプチャされた内容が送られてきました。
セッションは
session_start()
ではじめて
$_SESSION[id]
$_SESSION[pwd]
にデータを入れてます。セッションはブッキングすることがないと
聞いていたのですが、たった4人の利用でブッキングがあったため、
もしかすると

iクラスタでは、クラスタリング環境となっており、
セッションの使用、またflock, fcntl 等のロックは機能しません。
symlink, mkdir 等での代用いただくようお願いします。
とレンタルサーバーにはかかれていましたが、クラスタリング環境で
flock,fcntlが使えないことでこういう事が起きているのでしょうか?
ここがはっきりしないと、別のサーバーに切り替えてもらえないし、
自分が選んだサーバーでもプランでもないので板挟みで状態で困ってます。

301:nobodyさん
08/01/21 00:44:27
セッションは機能しませんってこれ以上なく明確に書いてるやん('A`)

302:nobodyさん
08/01/21 13:09:21
>>300
DB使えるならDBでセッション管理すれば?
別にそんなに規模大きいもんでもないんでしょ?

303:296
08/01/21 14:21:47
>>297
>>298
ありがとう

304:244
08/01/21 19:22:48 5H6OPrCr
過去の話掘り返してスマナイ。

>>253でmd5にして認証を行ったはいいが
HTTPヘッダ見たら暗号化した文が表示されてた。

これってこの文盗聴されてそのまま打たれたら結局意味ないじゃんって結果に。

参考にしたページ: URLリンク(jsgt.org)

Digest認証でここはやってますが
どうも不完全なまま終わってるようで続きが見当たりません。

実際にSSLを使わないで認証してる方はいないでしょうか?
自分しか使わないのでSSLの証明はいらないんですが、、、

305:nobodyさん
08/01/21 20:16:56 5H6OPrCr
連投スマソ

結構大きなネトゲのサイトでburp suiteでHTTPヘッダを見てみた。

IDとパスがそのまま表示された…。
これってこの部分盗聴されたらログインされるはずだよな…?と思って
mixiのhttpsでログインしてみた。

こちらは何も表示されなかった。


そのネトゲのスレ行ってみたらセキュアなしかよって散々叩かれてた。
こんなのもあるんですね。


一応報告まで。

306:nobodyさん
08/01/21 21:07:52
>>304
そりゃまんまじゃ駄目。
ワンタイムパスワードにでもしないと。

307:nobodyさん
08/01/21 22:07:39
>>305
ネ糞○

308:nobodyさん
08/01/22 00:42:56 Qziki4SA
すみません、phpを始めたいのにインストール段階で行き詰っちゃいました…
すごく初心者なので、書き方おかしかったらすみません。
・os
windows vista
・希望
apache_2.2.6-win32-x86-no_sslをインストールしたい
・困ってる事
「このインストール パッケージを開くことができませんでした。
パッケージが存在し、アクセスできることを確認してください。
またはアプリケーション ベンダに問い合わせ、この Windows インストーラ パッケージが有効かどうかを確認してください。」
が出てインストールできない。
・やった対策
vistaだと通常とは違うという事で色々と調べて「コマンドプロンプト」というやつを管理者の権限で開いてインストーラーを実行させました。
そうすると何回やっても上記のエラーメッセージが出ます。
なので「windows install cleanup」をダウンロードして開いてみましたが該当するものはなし。

無知なりに考えた原因は、何度も違うバージョンのapacheをインストール→アンインストールしたせいでインストーラが狂ったのかと…。
どうにかインストールしたいです。「ベンダ」に問い合わせる他に何かまだ出来る事があれば教えてほしいです。

309:nobodyさん
08/01/22 01:33:19
>>308
このあたりが関係しているのかも。
URLリンク(www.apachefriends.org)
> Windows VistaではC:\Programfilesのフォルダのパーミッションが限定されております。
> その為、通常のインストールではインストールが成功しない場合があります。
> xampp用のフォルダをCドライブの直下か、C:\userの下にxamppというディレクトリを
> 作成してご利用いただくことをお勧めします。


XAMPPだと、インストーラを使うタイプと使わないタイプがあるから、こっちで
試してみたらどうかな。全部がセットになってるから便利だし。

310:nobodyさん
08/01/22 07:54:00
今の時期は、出来ればVistaでやるのは避けた方が良い。

311:nobodyさん
08/01/22 11:52:06
>>306
ワンタイムパスワードを考えてみました。
データベースにpass1とpass2のあるテーブルを作る。
pass1はユーザーが決めたパスワードをmd5した物。

ログインページにアクセスした時点で
ランダムな文字列を発行。(例 ZztMHpWSD)
全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)

<input type="text" name="pass">
<input type="hidden" name="rand_pass" value="(ランダムな文字列)">

submit押すと
md5_func(document.formname.pass.value)+document.formname.rand_pass.value;

これでpass1+ランダムな文字列が渡されました。

これで送られてきた物をpass2で一致すればOK。
この処理はできました。

----続く----

312:nobodyさん
08/01/22 11:56:30 q9syKBOV
問題点

Aさんがログイン画面にアクセスしてログインの情報を入力してる最中に
Bさんがアクセスしてきました。

その場合また新しいランダムな文字列が発行され
データベースのpass2が更新されてAさんの hidden に入ってる物が違ってきます。

現在この状況でつまっております。
何か助言を頂けないでしょうか?

313:nobodyさん
08/01/22 12:03:57
> 全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)
すべてのユーザーのを更新する理由は何?
ログインとかログアウトする時に一人のユーザーのみを
更新してはいけないの?

314:nobodyさん
08/01/22 12:12:27 q9syKBOV
>>313
> すべてのユーザーのを更新する理由は何?
アクセスしてるユーザーがどのユーザーかわからないためです。

ログアウトした時に一人のユーザーを更新する場合
ログアウトする時にpass1+ランダムな文字列で更新

再ログインするためにランダムな文字列発行するわけにもいかないし、
ログアウトの時クッキーにランダムな文字列書き込んだ場合
他のパソコンでログインできなくなる。

一応こんな風に考えてます。

315:nobodyさん
08/01/22 12:28:18 q9syKBOV
古い物上げてきたんで一応悩みをまとめておきますね。

・ SSLをできれば使いたくない(証明とかいらない&節約)
・ HTTPヘッダを見るとパスワード丸見え(盗聴怖い)
・ md5で暗号化しても暗号化した物を盗聴されて打たれたら意味ない
・ ワンタイムパスワードを作って毎回パスワードを変更するが他のユーザー接続で失敗

こんなところです。

316:nobodyさん
08/01/22 14:19:06
節約とセキュリティーをあげるのは相反するものだぞ。一般論として。
金属探知機を設置せずに、拳銃の持込を完全に防止したいみたいな意味だ。

317:nobodyさん
08/01/22 14:40:45 q9syKBOV
>>316
私がしたいのは独自で作成した金属探知機を使用したいのです。
金をかければ有名ブランドの金属探知機で安心、安全でしょう。

私がほしいのは安全だけなのです。

未熟なので能力が伴うかどうかは別として。

318:nobodyさん
08/01/22 14:42:26
ユーザに負担思いっきりかけていいならPGPの秘密鍵暗号鍵みたいな仕組みにすれば?
可能か不可能かって話なら可能だろ

319:308
08/01/22 16:03:11
>>309
ありがとうございます!
今職場なので、帰宅したら試してみます。

>>310
避けたい気持ちでいっぱいです。
一応使えている人がいる様なのでもう少しいじり倒してみます。

320:nobodyさん
08/01/22 17:21:38 q9syKBOV
ざっとセキュリティ関連の記事をいくつか見てきたのですが
どうやらこのスレにいるレベルでは無理そうな感じがしてきました。

>>318
ユーザーに負担はやはりかけたくないですね…。
PGPをざっと見てどのような物かがわかったのですが
できればユーザーにはシンプルにログインさせてあげたいです。
(ID & PASS ぐらい)

とは言っても数人で使う程度の予定で、
一度ログインしたら自動ログインできるように設定したいので、

ログイン画面は
ID入力画面→(データベース内容変更)→pass入力画面→ログイン
この流れでいこうと思います。

これだったら全ユーザーのパスワードを変更しなくていいですし。
これでどうしても証明やユーザーの手間を削減する必要がでてきたら、SSL導入を考えます。

ありがとうございました。

321:nobodyさん
08/01/22 17:46:58
ワンタイムパスワードなのに自動ログインてw

322:nobodyさん
08/01/22 17:52:25
>>321
自動ログインは別の処理だろ?

>>320
素直にSSL入れておけ。
何に使うかよくわからんがSSLに慣れておく事も重要

323:nobodyさん
08/01/24 12:32:36 NF7q/+V1
はじめまして。

別サーバにあるファイルの更新時間を表示させるには
どうしたらいいのでしょうか?


324:nobodyさん
08/01/24 13:50:13
ファイルの更新日時はftp接続じゃないと取得できないような気がする。
URLリンク(always-pg.com)
ファイルの中身だけであれば、httpで
$file = file("URLリンク(........)");
見たいな感じでいけるけれど。

325:nobodyさん
08/01/24 15:19:32
別サーバにあるのが性的で、Webサーバ経由で読み出せるなら

get_headers("URLリンク(www.hoge.jp)");

とやって、last-modifiedの値を見る

phpファイルなら、そのファイル自身にfilemtime(__FILE__)とかで更新時を出力させればいいと思う

326:323
08/01/24 15:32:15 NF7q/+V1
ありがとうございます。
試してみます。

いろいろ探してみたところ下のように”HTTPヘッダーから拾う”という方法を見つけました。
これで「Wed, 23 Jan 2008 00:00:00 GMT」と表示されるのを、
JSTにして、「6:15 1/24 Thu 」と表示したいのですが、整形の方法がわかりません。
どなたかご教授ください。よろしくお願いいたします。



327:323
08/01/24 15:32:38 NF7q/+V1
<?php
$URL="http://対象ファイル";
$purl=parse_url($URL);
if(!$purl["port"]) $purl["port"]=80;
//開く
$fp=fsockopen($purl["host"],$purl["port"]);
//リクエストを送る
if($purl["query"]){
fputs($fp,"GET ".$purl["path"]."?".$purl["query"]." HTTP/1.0\n");
}else{
fputs($fp,"GET ".$purl["path"]." HTTP/1.0\n");
}
fputs($fp,"Host: ".$purl["host"]."\n");
if($purl["user"]) fputs($fp,"Authorization: Basic ".base64_encode($purl["user"].":".$purl["pass"])."\n");
fputs($fp,"\n");
//HTTPステータスラインを取得
$buf=fgets($fp,1024);
if(!strstr($buf," 200 ")) return(FALSE);
//HTTPヘッダを取得
//$finfo["HTTPヘッダ名"] に内容が格納される
while(!feof($fp)) {
$buf=chop(fgets($fp,1024));
if(!$buf) break;
ereg("^([^:]*): *(.*)$",$buf,$sbuf);
$finfo[$sbuf[1]]=trim($sbuf[2]);
}
echo $finfo["Last-Modified"];
?>


328:nobodyさん
08/01/24 15:46:09
>>326
echo date('G:i n/j D',strtotime('Wed, 23 Jan 2008 00:00:00 GMT'));
こんな感じで。下記参照。
URLリンク(jp.php.net)

329:323
08/01/24 16:57:23 NF7q/+V1
最後の行を
echo date('G:i n/j D',strtotime($finfo["Last-Modified"]));
としたら望みどおりの結果になりました!!!

ありがとうございました。

330:nobodyさん
08/01/26 03:19:27
俺は Last-Modified → Date → クライアントローカル って順にしてるな

331:nobodyさん
08/01/27 19:58:32
はじめまして。超初心者用という事でわからない事があったので質問してみます

YahooAPIを用いて画像検索を行い、検索された画像をクリックする事でその画像の類似画像を新たに検索して
Webページに表示させるPHPを作成しているのですが、クリックされた画像の色情報を取得する方法がわかりません。
画像のRGB値を求めて、その値に近い画像を表示させるつもりで現在考えています。
色の取得自体は一応できてるのですが下に処理を書きます
  $im = imagecreatefromjpeg($content);
  $img_w = imagesx( $im );
  $img_h = imagesy( $im );
  $cnt = $img_w * $img_h;
  $r = array();
  $g = array();
  $b = array();
  for( $i = 0 ; $i < $img_w ; $i ++ ){
  for( $j = 0 ; $j < $img_h ; $j ++ ){
  $rgb = imagecolorat($im, $i , $j );
  $r[] = ($rgb >> 16) & 0xFF;
  $g[] = ($rgb >> 8) & 0xFF;
  $b[] = $rgb & 0xFF;
  }
  }
  $index_r = intval( array_sum( $r ) / $cnt);
  $index_g = intval( array_sum( $g ) / $cnt);
  $index_b = intval( array_sum( $b ) / $cnt);
クリックされた画像に対してこの処理を行う方法がいまいちわかりません。
わからない事だらけなのですが何か助言を頂ければお願いします。

OS:WindowsXP
PHP: Version 5.2.5
ApacheVersion:1.3.26

332:nobodyさん
08/01/27 21:02:47
>>331
検索結果表示時に画像リンクを
img.php?src=hogehoge.jpg
こんな風にimg.phpを経由させれば
img.php内で画像のソース取得などできるけど

こういう風に出来ない場合は
javascriptとかで画像に対してクリックイベント設定して
そこから処理させるとかかな・・・・

333:331
08/01/28 11:07:03
>>332
遅くなりましたがレスありがとうございます。

事情があってjavascriptは使わずに処理をさせたいのですが
上の方法で少し考えてみます。
img.phpという別のphpを新たに作成してそこで処理をさせるみたいな感じでいいのでしょうか?

334:nobodyさん
08/01/28 11:31:46
PHPはPerlと比較するとオブジェクト指向プログラミングが
やり易いようになっているけれど、やはり、大規模な開発には
向かないとかいわれています。javaの方が良いと。
この理由は何処にあるのでしょうか。他のプログラムとの連携や
モジュール関連なのでしょうか。

335:332
08/01/28 11:46:04
>>333
あーごめんちょっとぼけてた
<a href="hoge,php?src=hogehoge.jpg"><img src="hogehoge.jpg" /></a>
こういう風なリンクにしちゃえば
hogehoge.php内でどの画像がクリックされたとか解ると思うんだけどどうかな?
このhoge.phpにsrc=hogehoge.jpgを渡してやることによって
hoge.phpにはどの画像がクリックされたかわかるし
どの画像がクリックされたか解ればあとは上のコードでなんとかなると思うけど


336:331
08/01/28 11:54:21
>>334
レスありがとうございます。
PHPだけでしたいのは他にも理由はあるのですがjavascriptはまだ全然勉強してないので・・・
でもPHPと連動させて作成するものが多いようなのでこれから勉強していきます

>>335
レスありがとうございます。
hoge.phpでそんなことができたのですね。一度やってみます
親切に教えてくれてありがとうございます

337:nobodyさん
08/01/29 22:16:32
無知すぎて申し訳ありませんが

URLリンク(www.harudake.net)

↑のようなRSSから自動的に画像を抜き出してサムネイル表示させるには
どのようにすればよろしいでしょうか?
参考になりそうなサイトや書籍があったら教えてください

338:nobodyさん
08/01/29 23:04:54
>>337
それは多分JavaScriptでやってる
んで、PHPでやるなら
まずRSSをパースして画像のURLを抽出する
抽出した画像をDLしてローカルに保存するor抽出したURLをそのまま使用
IMGタグを生成時に一定サイズ以上はサムネイル化する処理を実行
表示デ終わり

339:nobodyさん
08/01/29 23:40:56
>>338
有難うございました 早速実行してみたいと思います

340:nobodyさん
08/02/03 14:38:33
お聞きしたいのですが、PHPを実行した時画面の左上に?が必ず表示されていて
困っているのですがどうすれば無くなるのでしょうか?
日本語で表示させたくてPHP本体の文字コードをUTF-8にして毎回保存しています。
これだと文字化けはせず日本語は表示されるのですが必ず?が表示されます。
PHPを保存する時の文字コードを変更するのではなく、php.iniの設定を変えなければならないのでしょうか?

OSはWindowsXP。PHPはバージョンを確認すると5.2.5なのですが途中でバージョンアップしたのか
iniファイルはPHPとPHP4の二つあります。Apacheは1.3.26です。

ただPHPの環境作りは別の人がやってしまったので今いちどこを修正すればいいのかわかりません。
なんとか解決する方法を教えてもらえないでしょうか

341:nobodyさん
08/02/03 14:54:58
>>340
PHPのソースコードに変な記号を表示させる記述がないのであれば、
間違って?を書いてるとかの可能性が考えられる。
あと、実行後のhtmlのソースのどの部分に記述があるかによって、
推測する事になると思う。

<?php
echo "test!<br>";

と、あえて書いてみるとか。

342:nobodyさん
08/02/03 15:18:25
<?php
echo "test!<br>";

と書いてためしに実行してみましたが、?test!と表示されます。
色んなPHPで実行してみましたが必ず?がついてきます。
間違って?を書いているということは無いと思うのですが・・・

343:nobodyさん
08/02/03 15:51:00
BOM

344:nobodyさん
08/02/03 16:13:35
>>343
BOMというのは始めて知りました。ありがとうございます。
このBOMを削除するのにUTF-8nで保存すると直るようなのですが、普通のメモ帳ではUTF-8でしか保存できません。

function delete_bom($str)
{
if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
$str = substr($str, 3);
}
return $str;
}

上のコードでBOMを削除できるそうなのですが。<?phpの処理の中で記述すればいいのでしょうか?
?が消えないのですが。本当にわからない事だらけで申し訳ありません

345:nobodyさん
08/02/03 16:16:54
エディタでUTF-8のBOM無しにするかUTF-8Nにすればおk

346:nobodyさん
08/02/03 16:18:30
悪いよく読んでなかったけど、要するに文字コード指定できるエディタ使えってこと。
メモ帳で開発は有り得ない。

参考:URLリンク(besunday.hp.infoseek.co.jp)

347:nobodyさん
08/02/03 16:22:16
>>346
ありがとうございます。まだ勉強し始めたばかりだったので(汗)

348:nobodyさん
08/02/04 00:53:06
あれ?bom無しは駄目なのか?
いつも秀丸使っててbom有りでスクリプト書いてたんだが…

349:nobodyさん
08/02/05 16:49:29
逆、BOM有りがダメ
予期せぬエラーが起きる

350:nobodyさん
08/02/05 19:30:27
あぁ、ごめん。逆だった…
bom有りで書いてたぜ。
具体的にどんなエラーが起きるの?

351:nobodyさん
08/02/05 20:27:52
基本的にEUCでbomは知らんかったんで秀丸でUTF-8で保存してみたけど?出ないな。
秀丸だと保存オプションもUTF-8Nとかもないしbom入らないのかな。
メモ帳でUTF-8で保存して実行したら ・ソtest!<br> みたいのは出た。

352:nobodyさん
08/02/05 20:48:26
秀丸でもBOMオプションあるな。
あんまり古いのだとないかもしれんけど。
これはphpが読み込んだときに自動的に削るべきもんかもね。

353:nobodyさん
08/02/05 23:51:41
秀丸、bom有り、bom無し で試してみた。
web 上では見た目上、変化無かったけど、
CLI で実行させたら、bom付きでは頭に 0x81, 0x45, 0xbf の3バイトがくっついてきた。

354:nobodyさん
08/02/06 00:11:29
>>353
そのくっついてくるのがアレ。
BOMつきUTF-8でファイル冒頭に

<?php
header("Content-Type: text/html; charset=UTF-8"); // 例。

なんてのを書くと「ヘッダ送ったあとでヘッダ変えたいとか、無理」と
PHPさんが優しく語りかけてくれる。

355:nobodyさん
08/02/06 00:16:53
なるほど。解ったよ。アンガト

356:354
08/02/06 00:24:06
書いてから気づいた。

> 頭に 0x81, 0x45, 0xbf の3バイト

0xef 0xbb 0xbf の3バイト(>>344参照)、じゃないのね。

357:nobodyさん
08/02/07 16:59:49 d+qc2qYD
チェックボックスでチェックされていたらチェックさせたいです
POSTのデータと一致してるかどうかでforeach書いてるんですけど
なんとなく無駄な感じがしてます…
いい書き方ってありますか?

foreach ( $hoge as $k => $v ) {
$checked = "";
if (isset($_POST['hoge'])) {
foreach ( $_POST['hoge'] as $key ) {
if ($key == $v) {
$checked = " checked=\"checked\"";
}
}
}
echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}


358:nobodyさん
08/02/07 17:42:05
>>357
こーかな?判定は一行にもできるけど逆に見づらいし。

foreach ( $hoge as $k => $v ) {
    $checked = "";
    if( is_array($_POST['hoge']) && array_search($v, $_POST['hoge']) != FALSE ){
        $checked = " checked=\"checked\"";
    }
    echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}

359:nobodyさん
08/02/07 17:44:38
でも$v素通りはあんまよくないな。

360:357
08/02/08 13:26:21
>>358
array_searchなんてあったんですね!
ありがとうございます

>>359
素通りとは…?

361:nobodyさん
08/02/08 13:37:59
$v を validate しろって事だよ。
359 はクロスサイトスクリプティングの可能性を示唆してるんだろ。

362:357
08/02/08 17:52:07
なるほど。
これは例なのでいれてないだけです。
$vはこっちで作成してる配列なのにな〜と思って。

ちなみに358は
!= FALSE ではなく !== FALSE ですね

363:nobodyさん
08/02/08 18:47:04
それが確実。

364:nobodyさん
08/02/09 01:31:23
つーか何で毎回is_arrayでチェックするんだよ


365:nobodyさん
08/02/10 18:46:39
フォームで入力した内容に " が含まれる場合、
それをそのまま出力したら\"となるのですが、
どうすれば\をつけずに表示や保存できるんですか?

366:nobodyさん
08/02/10 19:57:48
magic_quote_gpcをoffにする

367:nobodyさん
08/02/10 20:08:37
エー
それしか方法ないのですか?

368:nobodyさん
08/02/10 20:10:21
あるよ

369:nobodyさん
08/02/10 20:19:51
お願いします

370:nobodyさん
08/02/10 20:42:46
>>369
URLリンク(jp.php.net)

371:nobodyさん
08/02/10 20:43:34
>>369
URLリンク(jp.php.net)

372:nobodyさん
08/02/10 21:12:31
どうもです!解決しました。

stripcslashes(htmlspecialchars())っていう風につかったんだけどこれでいいのかな

373:nobodyさん
08/02/10 21:21:05
>>372
順序は逆の方が良くないか?

374:nobodyさん
08/02/10 22:06:12
ああ、phpには
"はフォームを通すと\\\"として送られてくるんですね
だから先に勝手につけられたスラッシュを消して
htmlspecialchars(stripcslashes($a, ENT_QUOTES)) とやれば"も'もHTML上できちんと表示できるようになりますね
勉強になりました


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5292日前に更新/165 KB
担当:undef