【PHP】ID出さなくても質問OKなスレ【初心者歓迎】 at PHP
[2ch|▼Menu]
[前50を表示]
400:397
09/05/07 12:28:43
>>398
>>399

説明が足りず申し訳ありません。
2次元配列かどうか、というか、
1次元目(?)が連想配列なのか、単純な配列なのかを調べたいのです。

現在は、

if ( isset ( $data[0] ) )
だったら、後者というように判定しているのですが・・・

401:nobodyさん
09/05/07 12:35:38
ループでキーに数値以外が含まれてるかどうか判定するだけじゃん
プログラマーならすぐ思いつくと思うが・・

402:nobodyさん
09/05/07 12:45:30
>>400
多分、PHPには「単純な配列」って無いんじゃないかな。

URLリンク(php.morva.net)
>PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、 値をキーに関連付けます。

403:nobodyさん
09/05/07 13:11:43
>>402
だからキーが数値のみで
構成されているかどうかを
調べたい、ってことだろ?

専用関数あるだろ。

404:nobodyさん
09/05/07 13:25:21
>>403
それは質問者が考えればいいことだし。
ただ、「普通の配列」ってのは無いってだけで。
歯抜けな配列も作れるし、キー値だけでチェックするのもかなりびみょー。

ところで配列のキー値がすべて整数かチェックする専用関数って何?
ざっと見た感じ見当たらないんだけど。

URLリンク(php.morva.net)

405:397
09/05/07 13:25:50
>>401
それはもちろん思いついたのですが、
もう少しスマートな方法はないかと思いまして・・・


return array_keys($array) !== range(0, count($array) - 1);

こんな方法があるのを知ったのですが、
これだと、

$array(
0 => 'hoge',
2 => 'fuga',
3 => 'piyo'
);

のように、配列が歯抜けになっている場合に一致しなくなりますし・・・

>>403
専用の関数とは何のことでしょうか??

406:nobodyさん
09/05/07 13:38:16
きみの言うスマートな方法ってのは明確で解かりやすいというより
制御構造使わないような方法のこと?

407:nobodyさん
09/05/07 18:30:34
クラスってのがなかなか理解できません
どなたか詳しく解説してくれませんか?

408:nobodyさん
09/05/07 18:37:19
どこが分からんの?

409:nobodyさん
09/05/07 22:32:52
>>407
いいよ。

410:nobodyさん
09/05/07 23:13:30
このスレの先輩方はhtmlは得意でしょうか?

411:nobodyさん
09/05/07 23:28:15
おうよ

412:nobodyさん
09/05/07 23:31:35
ほんとかよwwwwwwwwwwwwwwwwwww

413:410
09/05/07 23:34:13
僕は一応html4系とxhtml1.0と1.1で、しかもstrictとtなんちゃらで使えるタグと属性を口頭で全部言えるぐらいの知識しか持ちません
xhtml1.0 strictで使えるタグの数もパッと言えるぐらいの知識です

414:nobodyさん
09/05/08 00:10:55
じゃ言ってみてくれ

415:410
09/05/08 00:13:27
>>414
76個

416:410
09/05/08 00:14:07
ちなみにhtml4.1 strictとxhtml1.0 strictで使えるタグは同じです

417:nobodyさん
09/05/08 00:16:17
はよ全部言えよ

418:nobodyさん
09/05/08 01:36:40
なんだよ質問じゃなくただの知ったかかよ

419:nobodyさん
09/05/09 08:57:00
4択問題をcsvに記録していくスクリプトを作っています。
csvに下のように書き込まれるようにしています。

名前,答え,答え,答え,答え,答え,(改行)
名前,答え,答え,答え,答え,答え,(改行)
名前,答え,答え,答え,答え,答え,(改行)

複数の人が同時に行うと、下のようにデータが混ざってしまいますよね?

Aさん,答え(Aさん),[Bさん参入で改行]
Bさん,答え(Bさん),答え(Bさん),答え(Aさん),答え(Aさん),答え(Bさん),

実際に試してみるというのがやりにくい問題なので、何を勉強しないといけないか
教えていただけますか。
そもそもCSVでこの手の記録をやろろうとするのはどうなんでしょうか。

420:nobodyさん
09/05/09 09:09:56
flock

421:nobodyさん
09/05/09 10:00:00
>>419
コード書いてもらわないと的を得た回答はでないよ

422:nobodyさん
09/05/09 17:18:10
以前$_SERVER["DOCUMENT_ROOT"]のことでググったときに
DOCUMENT_ROOTの値が実際の値とは違う場合がある事例を見ました。
とすると<base>タグやスクリプト内で絶対パスを作るときにこの変数を使うのは
危険な可能性もあるんでしょうか。
$rootPath = $_SERVER["DOCUMENT_ROOT"];
$a = $rootPath."/sample";
<base href="{$rootPath}">
また$_SERVER["DOCUMENT_ROOT"]以外にルートパス(?)を取得する方法はありますか?

423:nobodyさん
09/05/09 17:40:17
aru

424:nobodyさん
09/05/09 18:05:56
そのDOCUMENT_ROOTの値が実際の値とは違う場合がある事例を知らないけど
その事例がわかれば対応できないか?

425:nobodyさん
09/05/09 23:32:39
DOCUMENT_ROOTって、
public_htmlとか、
htdocとかのこと?

426:nobodyさん
09/05/10 00:07:15
>>425
知らない奴に聞いてねえよ
ロムってろks野郎

427:419
09/05/10 00:07:59
概略はこんな感じです。最初のifで名前の処理をした後は、最初の問題提示が
一番下のelseから始まり、まず二つ目のifに入り、その後は最初のelseの中をぐるぐるやって、
問題がなくなったら終了するような仕様です。今のところflockはあてずっぽうに入っている状態です。
15問あったとしてAさんがそれを終えるまでのすべてにろっくをかけておかないといけないのでしょうか。
複数の人が同時に問題を解けるようにしたいのですが。
if($_POST["id"] =="999"){
$file_name = "record.txt";
$file = fopen($file_name, "a+") or die("OPENエラー $file_name");
flock($file, LOCK_EX);
中略(解答者の名前の書き込み)
fputs($file, $time);
flock($file, LOCK_UN);
fclose($file);
}

if (is_numeric(@$_POST['answer']) || $_POST['id'] == "2"){
$file = fopen($file_name, "a") or die("OPENエラー $file_name");
flock($file, LOCK_EX);
if(intval(@$_POST['k']) == "0")
{
中略(正誤判定)
fputs($file, $string);
flock($file, LOCK_UN);
fclose($file);
中略(問題提示とPOST)
}


428:419
09/05/10 00:11:40
スクリプト後半です。長いので細かいところは省略してありますが、
本物は期待通り動くことは動きます。
**********
else {
$file_name = "record.txt";
$file = fopen($file_name, "a") or die("OPENエラー $file_name");
flock($file, LOCK_EX);
中略(正誤判定)
fputs($file, $string);
flock($file, LOCK_UN);
fclose($file);
//////全問終了
if($question[0] == ""){
echo "<br><br>終了です!";
中略
$file_name = "record.txt";
$file = fopen($file_name, "a") or die("OPENエラー $file_name");
flock($file, LOCK_EX);
$string = $array.",";
$time = $time."\n";
fputs($file, $string);
flock($file, LOCK_UN);//同時アクセスを防ぐロックを解除
fclose($file);
}
else{
中略(問題提示とPOST)
}
} }
else {
$fname = "voc.csv";
$data = file($fname);
中略(問題提示とPOST)}  }

429:nobodyさん
09/05/10 00:12:13
>>427
マジレスするとflock($file,LOCK_UN)はいらない
なぜならfcloseでファイルが閉じられるから

430:nobodyさん
09/05/10 03:06:05
>>427
> 複数の人が同時に問題を解けるようにしたいのですが。
全問終了時だけファイル操作(とロック)すればいいと思うんですよね。

431:419
09/05/10 07:43:14
>>429
ありがとうございます。

>>430
ありがとうございます。

そうですね。最後に一気に書き込む仕様にしておけばいいですよね。
今の仕様ですと、最初のelseの中でぐるぐると出題するごとに
各問題に対する回答者の答えを一つ一つ書き込む
仕様なので(<私の理解が間違ってなければ)、おそらく複数の人が
回答すると419のようにデータ混じるのではないかと思っています。
途中の回答を回答者ごとに一時的にどこかにためておけばいいんですね。

テンポラリーファイルを回答者ごとに別々に作成して回答を一時的に格納し、
最後にひとつの記録用ファイルに書き込むというのを今考えたんですが、
これどうでしょうか、他にもっといいやり方があるでしょうか?


432:nobodyさん
09/05/10 12:07:35 glvoYFM0
掲示板の親記事にコメントすると
その親記事にコメントが表示されますが
これってどういうアルゴリズムなんでしょうか?

433:nobodyさん
09/05/10 12:14:49
全てはデータ構造
データ構造が決まればそれに合わせてプログラムがコーディングされるだけ。

434:nobodyさん
09/05/10 20:17:25 kteLIAQk
携帯電話で対応機種を判別するWebページをphpで作っています。
エラーは出ずに動作はしたのですが、対応機種に一致しているはずなのに
一致判定を通ってくれません。
判定条件が間違っているのかもしれませんが、自分ではさっぱりわからないので
ご指摘を頂ければと思います。

【test.php】
<?php

$userAgent = $_SERVER['HTTP_USER_AGENT'];
$deviceList = file("DeviceDisplay.csv");

foreach ($deviceList as $key => $value)
{
rtrim($value);
list($name, $agent) = explode(',', $value);
print $name."<br />";
print $agent."<br /><br />";
if ((strstr($userAgent,$agen))!= false){
print "おk";
break;
}
}
print $userAgent."<br />".$agent;
}


【DeviceDisplay.csv】
903i,D903i

よろしくお願いします。

435:nobodyさん
09/05/10 20:18:00
>>434
PEAR使えば?

436:nobodyさん
09/05/10 20:21:35
$value= rtrim($value);

じゃないか?

437:nobodyさん
09/05/10 20:34:37
$getUA = $_SERVER['HTTP_USER_AGENT'];
$f = file("DeviceDisplay.csv");

foreach ($f as $k=>$v){
list($name, $ua) = explode(',', rtrim($v));
if ($getUA == $ua) {echo "csvに記録されてました";}
}

438:nobodyさん
09/05/10 20:45:09
>>437
===

439:nobodyさん
09/05/10 20:45:11
> if ((strstr($userAgent,$agen))!= false){
$agent

なんかいろいろあるな

440:434
09/05/10 20:55:16 kteLIAQk
>>435-439
ご指摘ありがとうございます!
今回は自力でやりたいのでがんばってみます。

改行を消したのにそれを代入してないのと、
==で判定、そして決定的な綴りミスですね・・・orz
以上を踏まえてリベンジしてきます。


441:nobodyさん
09/05/12 10:24:23
1.ファイルがない時は作成し、ある時は追加モードでオープン。
2.ファイルが新規作成された時は、chmod 0666
という処理をしたいです。

fopen($filePath, 'a')でファイルオープンした時に、
新規作成されたかどうかが分かれば簡単にできると思うのですが、
できません。
どのようにすれば目的の処理ができるでしょうか?

442:nobodyさん
09/05/12 10:34:06
file_exisitsでだめなん?

443:nobodyさん
09/05/12 10:54:04
chmodで失敗したらファイルがないでいいじゃん

444:nobodyさん
09/05/12 10:54:47
マジレスするとファイルの作成&書き込み時にfile_exisitsなどはやめた方が良い

445:nobodyさん
09/05/12 11:07:09
flockと組み合わせればfile_exisitsはアリかと

446:nobodyさん
09/05/12 11:18:38
>>444
何故に?

447:nobodyさん
09/05/12 11:32:33
>>445
chmod するしないぐらいなら、そんなに神経質にならなくても良いと思うが。

448:nobodyさん
09/05/12 21:45:37
>>446
ファイルがあるかな?
ファイルがないなー
よーしファイルをつくるぞー
ちょーーとまったーワシが先にファイルを作るでぇ〜ゲヘゲヘ
よっしゃーワシが先にファイル作成完了〜〜大勝利〜〜〜
、、、さーーって、さっき調べた時にファイルなかったから、作るかな,,,
作成、っと、、、ん?今、なんか、違和感を感じたが、、、、なんだったんだ???

449:nobodyさん
09/05/12 21:47:19
file_exisits使うのはネタに見えてしまうw

450:nobodyさん
09/05/12 21:54:39
file_existsの何が悪いのかkwsk

451:nobodyさん
09/05/12 22:36:38
>>448
今回はaモードでopenだから関係ないじゃん。

452:nobodyさん
09/05/12 23:01:41
俺的にはスクリプトでパーミッションを弄る動作はダメコードだと考えている

453:nobodyさん
09/05/12 23:06:33
だからfile_existsの何が悪いのよ
適当なこと言わないでよ

454:nobodyさん
09/05/12 23:06:47
別にいいやん。
ただWindowsだとchmodできんのはチト不便。

455:nobodyさん
09/05/12 23:10:17
>>453
まず貴様がfile_existsって問題ない理由を述べればいいよ

456:nobodyさん
09/05/12 23:13:14
>>455
マニュアルに使用上の注意について書いてないじゃない

457:nobodyさん
09/05/12 23:15:59
また荒らしかよ

458:nobodyさん
09/05/12 23:18:11
0666ってことはログファイルか

459:nobodyさん
09/05/14 21:19:26
なんだってー

460:nobodyさん
09/05/15 06:59:21
結局file_existsが駄目な明確な理由を誰も上げられないんですね
2chなんて所詮口だけ野郎ばっかりか・・

461:nobodyさん
09/05/15 07:11:40
何を今更

462:nobodyさん
09/05/15 08:06:57
>>460
ホント期待できなくなったね。
昔と違って、OK waveとか知恵袋とかあるし、まともな連中はそっちの方を見てるのかな。

463:nobodyさん
09/05/15 08:18:07
>>460
このスレにはニートとフリーターしかいないんだからしょうがないよ
それにPHPはバカ専言語だから優秀な人間は興味を示さないし

464:nobodyさん
09/05/15 08:23:51
>>463
たしかにPHPなんて使えても所詮WEB開発が関の山だからねw
そのWEB開発にしても最近はRubyとかPythonが台頭してるわけだからPHPを好んで使ってる奴は
アレとしか言いようがないね

465:nobodyさん
09/05/15 08:24:53
何を今更

466:nobodyさん
09/05/15 08:30:41
とまぁここまで全部>>460の自作自演なんだけどね

467:nobodyさん
09/05/15 08:34:55
どこでRubyとPythonが台頭してるんだ?

468:nobodyさん
09/05/15 08:36:49
>>467
地球上のどこかで

469:nobodyさん
09/05/15 08:40:09
>>467
お前の知らない外の世界でだよ
まったくこれだから警備員は(ry

470:nobodyさん
09/05/15 08:40:41
じゃちょっと示してみ

471:nobodyさん
09/05/15 08:41:47
釣られてソース厨出現ww

472:nobodyさん
09/05/15 10:14:37
>>460
仰る通りニートとフリーターの憩いの場なんで帰っていただけませんか?

473:nobodyさん
09/05/15 12:25:37
>>460
じゃあこのまま使い続けてください
誰も止めはしませんので^^

474:nobodyさん
09/05/15 13:22:36
過疎杉sage

475:nobodyさん
09/05/16 22:47:21
可変変数って大抵他の書き方した方がスマートでわかりやすいソースになると思うんだけど、
一体どういうときに使えばいいのだろう?

476:nobodyさん
09/05/16 23:33:14
>>475
特に使う必要はない。
perlであったから、いれてみました、ってだけ。

477:nobodyさん
09/05/16 23:42:36
>>476
じゃperlではどのように使われてるの?

478:nobodyさん
09/05/16 23:45:50
それは老人にきいてください

Perlについての質問箱 39箱目
スレリンク(tech板)

479:nobodyさん
09/05/16 23:48:44
お前は知らないんかw

480:nobodyさん
09/05/17 00:49:35
>>475
配列をextractで展開するのと似たようなことが出来るかな。

$arr = array('a'=>'b', 'c'=>'d', 'e'=>'f');
foreach($arr as $key=>$value){

${$key} = $value;

}
んで、最終的に例えばテンプレートファイルを
include 'template.html'
とか呼んでやれば、テンプレート内で展開した変数を使えたりとか?
これだけだったらextractすればいいけど、配列のキーの特定の文字だけ展開したくない場合とか、
(例えば、先頭がアンダーバーで始まってるものは展開しないとか)
条件をつけて展開できるかな。


481:nobodyさん
09/05/17 06:43:27
本日も過疎。
最新50に1週間も前のレスが表示されるってどんだけww

482:nobodyさん
09/05/17 11:51:52
この板ではよくあること

483:nobodyさん
09/05/17 22:52:05
俺が常駐してるスレなんて連続20レスほど保守あげ
しかも俺の

484:nobodyさん
09/05/18 02:39:12
本番マシンで、エラーを表示させたくない場合、
ini_setと
error_reportingと
どっちを使うの?

485:nobodyさん
09/05/18 02:49:39
display_errorsじゃねーの?

486:nobodyさん
09/05/18 03:04:08
>>485
書き方は?

487:nobodyさん
09/05/18 03:05:27
display_errorsってディレクティブでしょう?
ディレクティブってphp.iniにしか設定できないんでしょう?

レンタルサーバーなので、pnp.iniはいじれない環境です。
なので、php.iniをいじらなくてもできる方法を教えてください

488:nobodyさん
09/05/18 03:11:25
じゃhtaccessでok

489:名無し募集中。。。
09/05/18 03:28:45 wP2DRNT9
ini_set('display_errors','on')

490:nobodyさん
09/05/18 10:16:50
情報小出しうぜえ

491:nobodyさん
09/05/18 10:36:42
小出しにしたほうがなんだかミステリアスでいいじゃないか

492:nobodyさん
09/05/18 20:39:24
>>490
自閉症のあなたがたの
質問能力を鍛えてあげているのです。

営業にまわったとき、
「情報の後だしウゼエwww」
とかって見込み客に言うんですか??

493:nobodyさん
09/05/18 20:40:09
>>489
これでいいの?

494:名無し募集中。。。
09/05/18 20:53:48 wP2DRNT9
今決まってることを先に全部伝えれば余分な工数が圧縮できるので
納期も見積もりも低く抑えることができるわけで
積極的な答えを引き出したいなら客も小出しにはしないけどな

495:nobodyさん
09/05/18 20:55:50
>>494
それであなたは営業に回ったときに、

「情報の後出しウゼエwww」

とかって見込み客に言ってるの?

496:nobodyさん
09/05/18 21:34:39
<a href="XXX">vvv</a>

これで、XXXにユーザーからの入力値を入れるんだけど、
javascriptのコードを書かれると
そのまま実行されるんで、
サニタイズしたいんだけど、専用関数あるの?

497:nobodyさん
09/05/18 21:41:15
サニタイズ言うな

498:nobodyさん
09/05/18 21:42:52
>>496
URLリンク(jp.php.net)

499:名無し募集中。。。
09/05/18 21:47:19 wP2DRNT9
>>495
「今決まってることを先に全部伝えてもらえれば余分な工数が圧縮できますよ 」
って言うけど

500:nobodyさん
09/05/18 22:14:26
>>498
それだとサニタイズできないでしょ。

501:nobodyさん
09/05/18 22:53:23
>>500
・・・・え? 何がしたいの?

502:nobodyさん
09/05/18 23:01:36
<a href="javascript:[ここにjavascriptのコード]">vvv</a>


こう書かれると、htmlなんとかでは
サニタイズできないでしょう?

だからjavascriptって文字をかけない
ようにしなければならないんだけど、
これって正規表現使ってゴリゴリ書かないと
だめなの?

503:nobodyさん
09/05/18 23:03:28
error_reporting(0);

これって使わないの?

504:nobodyさん
09/05/18 23:11:09
>>502
実際にそこに何が入るのか知らんが、入力値を分解してURL作ればいいだけの話じゃないの?

505:nobodyさん
09/05/19 02:17:09
ログファイルの中味を見られないようにするために、
拡張子を.phpにしようと思います。

これだと、たとえブラウザで直接ファイルを指定しても、
拡張子が.phpなのでPHPファイルとして実行しようとするので
(そして中味はPHPのスクリプトでなくて単なるテキストファイルなので)
見られないというわけです。

でもパーミッションが書き込み可能になっていると
問題ありますか?

506:nobodyさん
09/05/19 02:28:01
ドキュメントルート外や.htaccessでアクセスできないようにする方が吉
拡張子phpは最後の手段

507:nobodyさん
09/05/19 02:31:21
>>505
発想は悪くないんだがとりあえず試してみ。たぶん思ったのと違う結果になるw
あとパーミッションはあまり気にするな。共用鯖じゃsafemodeでも無い限りどーにもならん。

508:名無し募集中。。。
09/05/19 03:02:13 qJyAGOVK
PHPは<??>で囲まない部分はHTMLと同じ扱いだからなw

509:nobodyさん
09/05/19 10:05:00
>>495
素直に謝って今後そうすることが無いようにすればいいのに
開き直ってそんなこと言ってるから未だにろくな仕事が出来ねえんだよ。

510:nobodyさん
09/05/21 17:42:51
php_browscap.ini は商用利用可能なのでしょうか。
その他の制限があったりしないか不安なので質問です。
よろしくおねがいします。

511:nobodyさん
09/05/22 00:11:50
教科書に、

「 magic_quotes_gpc がONになっているときは、
stripslashes を使ってエスケープを取り除く」

と書いてあるのですが、そんなことをするよりも、
ini_set
とかで、
magic_quotes_gpc をOFF
にするほうが
いいのではないですか?

512:nobodyさん
09/05/22 00:13:11
>>511
いいと思います。

513:422
09/05/23 14:25:12
>>484に遅レス便乗で、今のレン鯖で.htaccessは使えますがOptionsディレクティブが使えないので
ini_set("display_errors", 0)をファイルの先頭に書こうと考えてます。
ini_set実行以前にエラーが出たら意味なしになってしまいますが、それはどういった場合が考えられるでしょうか。

514:nobodyさん
09/05/23 14:27:08
ん名前欄は関係ないです。すみません。

515:名無し募集中。。。
09/05/23 14:27:44 sw/qjhoP
ini_setを最先頭行に書けばいいだけだと思うが

516:nobodyさん
09/05/23 15:28:46
>>515
そうですね。
たとえば何らかの理由でファイルが読み込めない、実行できない場合ini_set前なのでエラーが出ると思います。
でよくよく考えたら今はerror_reporting(0)でエラーメッセージが出ないようにしてるんですけど
上記のようなときは結局エラーが出るだろうから、ファイル外で設定を変更できない以上エラー表示から逃れられなさそうです。
完全にエラーメッセージを非表示にできなければerror_reporting(0)で対処するつもりで質問をしたんですが、
これも完全でないなら素直にini_set("display_errors", 0)+ログ書き出しで対処します。
失礼しました。

517:nobodyさん
09/05/23 15:36:50
PHP前ならPHPのエラーはでないと思うが

518:nobodyさん
09/05/23 15:38:13
データベースのエラー文がそのまま表示されてるサイトとかもあるし
そこまで気にしないでも

519:名無し募集中。。。
09/05/23 16:00:00 sw/qjhoP
流石に本番運用では気にした方がいいと思うが

520:nobodyさん
09/05/24 19:13:43
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?

521:nobodyさん
09/05/24 19:26:51
業者に1万円払って作ってもらえ

522:nobodyさん
09/05/24 22:03:26
今なら俺が9980円で

523:nobodyさん
09/05/25 00:22:37
session.use_only_cookiesが0の場合、

URLにセッションIDが含まれてしまうので
セキュリティ的に、危険です。

なのでこれを普通は1にすると思いますが、
それはphp.iniを編集できる場合のみです。

レンタルサーバーなどでは、php.iniを編集
できない場合も多いです。

その場合は、session.use_only_cookiesの値を
取得して、それが0なら1にする、と
自分でPHPスクリプトの先頭に書くのでしょうか?

でもそれで間に合うのでしょうか?

524:nobodyさん
09/05/25 00:24:05
URLリンク(phpc2.seesaa.net)

例えばこのページだと、

ini_set( 'session.referer_check', "example.com" );
ini_set( 'session.use_trans_sid', 0 );
ini_set( 'url_rewrite.tags', "" );
ini_set( 'session.use_only_cookies', 1 );
ini_set( 'session.use_cookies', 1 );
ini_set( 'display_errors', 0 );


こんくらい書いてます。
セキュリティをカンペキにするには、
全部でどれだけ書かないといけないのでしょうか?

525:nobodyさん
09/05/25 00:29:11
ini_setじゃなくてphp.iniで設定しとけよみたいな

526:nobodyさん
09/05/25 00:29:42
クッキーもヘッダ部に平文で流れてるだけだろ
これを安全というのならURLにセッションID含まれてても同様に安全というしかないだろ

527:nobodyさん
09/05/25 01:19:22
URLはそれをブックマークしたり知らずに晒したりできるからまた違うんじゃないの

528:nobodyさん
09/05/25 01:39:29
セッション要るようなエリアはhttpsにしとけばいいだけの話

529:nobodyさん
09/05/25 02:09:17
いやブックマークとかURL流出はHTTPSだからとかいう問題じゃないだろ

530:nobodyさん
09/05/25 02:14:14
セキュリティの話をすると
ついてこれないヤツが必ずいるよね

高卒なのかな?

531:nobodyさん
09/05/25 02:15:06
「外出するときは、必ずドアにカギをかけましょうね」
.
「そんな、カギなんてプロの泥棒が本気だせば5分で開くんだよ
だからいちいちかける意味ないよ」

532:nobodyさん
09/05/25 02:18:16
httpsにしなくていいって話じゃなくてhttpsにするだけじゃ不十分って話だろ

533:nobodyさん
09/05/25 02:33:17
<a タグや、<imgタグのsrcにjavascripの
コードを直接書かれると、そのまま実行されてしまいます。

なので、javascriptをサニタイズする必要があるのですが、

ググって出てきたページに

URLリンク(php-web.net)

a、imgタグでは、<a href="javascript:...といった記述でj
avascriptが実行できます。このため、URL等は javasc
ript挿入対策として、「javascriptで始まる文字列をサニ
タイズする」作業が必要になります。

if (substr($_POST['url'],0,10) == "javascript:") {
die("Illegal URL!\n");
}

----------------------------------------------------

と書いてあるのですが、このコードでサニタイズできますか?

正規表現は使わなくてもいいの?

こういうとき、perlerだったら、100%の確率で
正規表現を駆使した渾身の一作を出してくるはずなんですけど。

534:nobodyさん
09/05/25 02:51:01
htmlspecialcharsでいいだろ

535:nobodyさん
09/05/25 03:15:54
URLリンク(php.benscom.com)

ここで

「PHP 6.0.0 で削除されました。」
という記述があるが、6なんて
まだ出ていないだろう?

それとも、漏れが知らないだけで、
もう出ているのか?

536:nobodyさん
09/05/25 03:18:53
出てるよ

537:nobodyさん
09/05/25 03:23:54 aHvsLNiK
simplexmlで下記xmlのstartTimeを取得するにはどうすればいいでしょうか?
<entry>
<gd:when startTime='2009-05-28T19:00:00.000+09:00' endTime='2009-05-28T21:00:00.000+09:00'>
<gd:reminder minutes='10' method='email'/>
<gd:reminder minutes='10' method='alert'/>
</gd:when>
</entry>

538:nobodyさん
09/05/25 04:42:43
$xml = simplexml_load_file('hoge.xml');
var_dump($xml);
してみれば分かるよ

539:nobodyさん
09/05/25 23:18:15
ini_set('magic_quotes_gpc', '0');

このやり方でオフにするのって

phpのバージョンが4.2以下でないと
使えないの?

540:nobodyさん
09/05/25 23:35:00
いや? そんなことないけどなんで?

541:nobodyさん
09/05/25 23:48:05
URLリンク(xoops.ec-cube.net)

ここのページに、

>magic quotes gpcがini_setできるのはPHP4.2.3以下だったと思います

って書いてあるけど??

542:nobodyさん
09/05/25 23:49:14
URLリンク(www.webdeveloper.com)

ここのページにも、

>you can only modify magic_quotes_gpc this way in PHP versions <= 4.2.3.

って書いてあるけど???

543:nobodyさん
09/05/26 00:12:13
Manualを見ろよ。 URLリンク(jp2.php.net)
4.2.4以降 PHP_INI_PERDIR になったからini_setじゃ無理。

544:nobodyさん
09/05/26 00:17:18
>>541-543
そこまでわかってるならわざわざ聞きに来なくても・・・

545:nobodyさん
09/05/26 01:13:59
アクセスログ等から
アクセスしてきたやつの
コンピューター名抜くのって
どうやってたの?

546:nobodyさん
09/05/26 01:37:40
User Agentの話?

547:nobodyさん
09/05/26 01:58:06
ウィンドウズなら同じワークグループだったらコンピュータ名抜けそう

548:nobodyさん
09/05/26 11:21:02
特定のディレクトリ$dirの中でもっとも作成日付が新しいファイルのファイル名を取得したいのですが、

globでディレクトリ内の一覧を作ってfilectimeで作成日付を取得して・・・えーとえーと・・・と考えたものの、
「あれ?このあとどうしよう」となってしまいうまくコードにまとめることができません

良い方法はないでしょうか

PHP5

549:nobodyさん
09/05/26 11:50:15
ソート

550:nobodyさん
09/05/26 12:02:33
$last = new SplFileInfo(null);
foreach(new RecursiveDirectoryIterator('target') as $entry)
if($entry->isFile() && $entry->getCTime() > $last->getCTime())
$last = $entry;
こんなんとか。

551:548
09/05/26 18:32:03
>>550
うわ〜一回で動きました
PHP5で実装された関数まだ使い慣れないんで初めて見ました
ありがとうございます

たまたまディレクトリ内の、取得したいファイル群の名前が全部日付なので、
これの応用で作成日付順じゃなくて名前の順で一番遅い(=新しい)ものを
取得できるんじゃないかと改造してるんですが私には不可能でしたw

552:nobodyさん
09/05/27 16:01:50
メールフォームから送信してるんですけど相手に届きません
ローカルサーバです
PHP.iniのどの設定を変えたらいいですか?

553:nobodyさん
09/05/27 16:40:06
ローカルアカウントには届くってんならOP25Bでググれ

554:nobodyさん
09/05/27 23:11:44
それって自分のISPの回線の
SMTPサーバー経由でないと
メールを送信できないってやつ?

555:nobodyさん
09/05/28 00:21:44
>>554
いえ、違うんです
レンタル鯖だとできたんですけど・・・

556:nobodyさん
09/05/28 00:26:24
レン鯖だとOKで自宅鯖だとNGって間違いなくポートブロックだろ
プロバイダのヘルプをサブミッションポートで検索してみ

557:nobodyさん
09/05/28 01:30:28
$filename = $month."/".$day.".csv":
$data = @file($filename);

PHP5でローカルのWindows機でテストしているのですが、上のように下位フォルダにあるファイルを開こうとすると失敗します。
ディレクトリを表す"/"の部分がWinだと\だからだと思うのですが、そもそも根本的に"/"で変数を繋ぐのが変なような気もします。
サーバー上でもローカルWin機でも動くようにできないものでしょうか。



558:nobodyさん
09/05/28 01:44:46
ごめんなさい、自己解決しましたw
$が間違って&になってましたw
切腹してきますw

559:nobodyさん
09/05/28 08:09:32
>>552
自宅ってどうせ窓でしょ?
「windows php mail」でググって味噌。

560:nobodyさん
09/06/01 20:27:02
JISの漢字コードから

3021 → 亜

のように、実際の文字を表示するには、
どのようにしたらよいのでしょうか?

よろしくお願いします。

561:nobodyさん
09/06/01 21:02:57
JISコードの場合、エスケープシーケンスで漢字であることを知らせないといけないから
echo "\x1b\$B",pack('H*', 3021);

562:560
09/06/01 21:29:46
>>561

できました!
ありがとうございます。

こういうことって、どこで覚えるんでしょうか?

563:nobodyさん
09/06/01 21:55:20
>>562
今のお前さんのような状況に陥ったときに覚える。
人に聞くか自分で調べるかの違いはあるけどな。

564:nobodyさん
09/06/07 01:18:31 q/9VwFhz
SSLを使って「login」というディレクトリをSSLのみの接続にしていますが、
loginディレクトリ内のリンクで<a href="../index.html">とするとhttpsのまま
階層が1つ下がるだけとなります
これをhttpにする関数はあるのでしょうか?

565:名無し募集中。。。
09/06/07 01:42:48 kkylNn0/
ない

566:nobodyさん
09/06/07 01:53:33
PHPって同じことやるのにも複数の似通った関数があるイメージがあるんだが、
コレとアレならこっち使うのがイイ!
みたいなベストプラクティスとかある?

567:nobodyさん
09/06/07 02:08:23
あるよ

568:nobodyさん
09/06/07 02:15:41
>>566
よくあるのが
is_nullを使わないで、 $hoge === null で評価したほうが早いとか
正規表現で評価できるsplitを使うより単純に「,」とかできりたいならexplodeを使ったほうが早いとか



569:nobodyさん
09/06/07 02:35:59
おれが作るから半年待て

570:nobodyさん
09/06/07 10:51:54
バッファの意味がわかりません><
どなたか親切な方^^いないでしょうけど教えてくdさい!

571:nobodyさん
09/06/07 11:08:03
ゴミを一粒ずつひろってゴミ箱に捨てるより、ちりとりで集めてゴミ箱に捨てるほうが効率いいの解かるならOK

572:nobodyさん
09/06/07 11:50:14
すいません。記載するスレを間違えてしまいました。
初心者ながら自作サイトを作成しているのですが、なぜか作成したページが
「疑わしいWebページを遮断しました」とノートンが反応するようになりました。
ソースが長いので記載はできないのですが、内容はmailtoで送信するための
名前やメアドを入力した後の「以下の内容で間違いないですか?」みたいな
画面です。値はメアド入力画面から$_POSTで受けとってます。
遮断される可能性としてはどのようなものがありますでしょうか?
すいませんがアドバイスを御願いします。

573:nobodyさん
09/06/07 11:53:14
ノートンよく知らないけど遮断した理由書いてあるログとかないの?

574:572
09/06/07 12:01:37
>>573
ノートンのセキュリティ履歴をみると
「疑わしいサイトとしてシマンテックに提出しました」としか記載がなく
なぜ疑われているのかがわからない状態です。


575:nobodyさん
09/06/07 13:06:34
ソース見ないで答えるのは情報処理の試験でも出題されないくらいの難易度の高さ
ノートンの判断はノートン作った人にしかわからん
つまり、「疑わしいWebページを遮断しました」でぐぐって似たケースを見るのがいいかと

576:nobodyさん
09/06/07 13:25:53
最終的に吐き出したものをHTMLに保存してそれを表示させて
疑わしいものを削っていけばわかるかもよ

577:572
09/06/07 15:11:25
>>575 >>576
すいません。ソース長くてどこを見せればいいかわからない状態です。
ソース削りながら色々試してみます。
ありがとうございました。

578:nobodyさん
09/06/10 11:22:45
変数に格納された数字を、正の数なら+を、負の数なら−を頭に付けて表示したいのですが、
それに便利な関数はないでしょうか

PHP4

579:nobodyさん
09/06/10 11:30:01
そんくらいなら自作してやれば

580:nobodyさん
09/06/10 11:31:18
宿題か?

581:578
09/06/10 11:56:17
自作しますた
30秒で終わりますた
15分ぐぐって損しますた


582:nobodyさん
09/06/10 11:59:44
>>581
You!ここに載せちゃいなよ!

583:nobodyさん
09/06/11 10:23:35
んなもんifで数値比較するだけだろw

584:nobodyさん
09/06/11 13:32:40
$str = $val > 0 ? '+' . $val : '-' . $val ;

あ、0のときはしらん。

585:nobodyさん
09/06/11 14:09:33
-1を--1にする気か?

586:nobodyさん
09/06/11 14:10:28
みんな printf 嫌いなの?

587:nobodyさん
09/06/13 16:08:22
あえてセッション使わずにglobal変数使いまくって

入力画面←→確認画面→送信

と行ったり戻ったりするフォーム作るって変?
遷移するたびに文字のエスケープやらなんやらで埋もれるんで明らかにいけてないなと

588:nobodyさん
09/06/13 16:18:56
global変数でどうやってリクエスト跨いでデータ受け渡しすんの?

589:nobodyさん
09/06/13 18:08:42
hiddenかsession以外でそれやる奴バカだろ

590:nobodyさん
09/06/13 18:21:00
>>587
>あえてセッション使わずに

の時点で変だけど、そうしたい理由は何さ?

591:587
09/06/14 21:34:45
>>588
フォームに入力→POST→確認画面→戻るリクエスト→hidden大量で入力画面にバックして反映
この間globalでユーザー関数またぎまくり

>>589
戻ると次へと送信でhiddenとそのエスケープ処理が100コくらいある

>>590
クッキー使えないのと、心理的にURLに埋め込みたくないのと、
ブラウザのバックボタンで期限切れだしたくない(じいちゃん連中向けなんでヤツらはパニクる)のでどうしていいやら

最後のはセッション関係なかったっけ

機能的にはできあがってきちんと動いてるんだが超気持ち悪い
やり方あったら教えてプリーズ

592:nobodyさん
09/06/14 21:54:41
>>591
>ブラウザのバックボタンで期限切れだしたくない

youメニュー隠しチャイナyo
っていうか心理面を克服してでもセッション使ったほうが楽だと思うんだがなぁ。

593:nobodyさん
09/06/14 21:56:49
セッションキーをhiddenで渡せばいいだけの話だろ常考

594:nobodyさん
09/06/14 22:00:08
>>593
そんなことできたのか
しらんかった

595:nobodyさん
09/06/14 22:11:51
まぁ実際はただのリクエストだからなw

596:nobodyさん
09/06/15 20:18:19
正規表現についてお尋ねします。
あるフォームに入力された全角文字を半角文字にして他のフォームに代入するといった事をやっていますが、
全角→半角にするのはmb_convert_kanaでやるとして問題は半角に出来ない文字(例えば漢字など)を取り除いて
代入したいのです。要は半角に変換した後の文字列から全角文字だけを取り除いて半角文字列だけにしたいのです。
例:HOGE安弘MOGE → HOGEMOGE
こういう事は正規表現で可能でしょうか?

597:nobodyさん
09/06/15 20:32:09
>>596
preg_match_allで欲しい部分を抜いてきて、implodeでくっつけるってのは?

preg_match_all('/([A-Z])/', $str, $match);
$newStr = implode('', $match);

パターンは自分の条件に読み替えてくれ

598:nobodyさん
09/06/15 21:11:06
PDOを使ったスクリプト配布してるとこ教えてください

599:nobodyさん
09/06/16 13:07:05
どなたか〜〜

600:nobodyさん
09/06/16 13:22:26
スレ違い

601:nobodyさん
09/06/16 17:27:04
ですか。失礼しました

でっこれはこのスレとマッチすると思うんですけど
海外からのフリースクリプトダウンロードしてもPDOをほとんど使って無いんですよ
なぜですか?

602:nobodyさん
09/06/16 18:15:13
Manualのサンプルじゃ足りないの?

さておき、質問の答えは「今のところわざわざPDOを使う理由が無いから」じゃないかなぁ。

603:nobodyさん
09/06/16 22:33:48
>>601
ソース見たフリースクリプトってどれ?

604:nobodyさん
09/06/16 23:00:21
えと、見すぎであまり覚えてないのですが・・・
ほとんどhotscriptからです

605:nobodyさん
09/06/17 01:01:12
適当に挙げてみてもらえると参考になるんだけど。
合計では約いくつ?

606:nobodyさん
09/06/17 10:46:14
まあ作られた時期も見てみ

607:nobodyさん
09/06/18 23:33:25
たった今澪抱き枕\7,300*4ポチったwww
今日の最終回泣くかもしんね俺www

608:nobodyさん
09/06/18 23:34:17
うわああああああああああああああああああああああああああああ
誤爆したああああああああああああああああああああああああああ
俺死ぬマジ死ぬw

609:nobodyさん
09/06/18 23:39:01
wwwwwwwwwwwwww

610:nobodyさん
09/06/18 23:43:23
kimoi

611:nobodyさん
09/06/19 01:47:29
早速ニコ動にうpかよw
保存すますたw

612:nobodyさん
09/06/19 01:48:10
ごむぇん・・・誤爆・・・

613:nobodyさん
09/07/01 11:28:04
WordPress の質問ってここで聞いてもいいんでしょうか。

arras theme というテーマを使っているのですが
そのテーマにはトップページに記事のサムネイルを表示する
javascript のスライドショーがあります。
それを他のページ(たとえば普通のページなど)にも
設置することはできるでしょうか。

home.php のそれっぽい場所をコピーして single.php に貼り付ければ
出来なくもなさそうなんですが、複雑でわかりにくいのと
そもそもそういう設定ができるかもしれないので質問しました。

環境はwordpress のバージョンは2.8 arras theme は最新のものを使っていて
自分は php と javascript であれば編集できます。よろしくお願いします。

614:nobodyさん
09/07/02 11:12:33
foo($array, 'a') なら $array['a'] を返し
foo($array, 'a', 'b') なら $array['a']['b'] を返すには

function foo() {
// ???
}

をどうしたらいいでしょうか。

func_num_args() を使って再帰で、
なんて思ったのだけど、考えがまとまらなくて。

615:nobodyさん
09/07/02 14:46:54
なんのためにそんな関数を
$var = foo($array, 'a');
なら
$var = $array['a'];
でいいじゃん

616:nobodyさん
09/07/02 15:38:49
foo($array, $bar, $baz) と書くんだったら $array[$bar][$baz] でいいよね。

foo($array, array('a', 'b')) を $array['a']['b'] にするんだったら
foo($array, $arr_keys) みたいに渡したいのかなとも思うんだけど。

617:614
09/07/02 15:41:46
>>615-616
E_ALL 環境で isset() が面倒なんので、
foo 内で isset して値を返したり、
値があるか判定するのを作ろうと思って。

618:nobodyさん
09/07/02 16:47:20
>>617
foo:セットされてないときfalse,セットされているときはその配列の内容が返る

$arr["a"]["b"]["c"] = "hoge-c";
$arr["a"]["b"]["d"] = "hoge-d";
$arr["a"]["b"]["e"] = "hoge-e";
var_dump(foo($arr,"a", "b")); // result array
var_dump(foo($arr,"a", "b","c")); // resurt string
var_dump(foo($arr,"a", "c")); // resutl false
var_dump(foo($arr,"b")); // result false

function foo() {
$cnt = func_num_args();
$var = func_get_args();
$arr = $var[0];
for ($i=1; $i<$cnt; $i++) {
if (!isset($arr[$var[$i]])) return false;
$arr = $arr[$var[$i]];
}
return $arr;
}


619:614
09/07/02 16:55:15
>>618
最高です。。。
ありがとうございます!

620:nobodyさん
09/07/02 21:49:43
せっかく5.3から省略三項演算子が使えるようになったというのに

621:nobodyさん
09/07/03 06:14:31
echo "<input type=hidden name=※>";

のような、出力するHTMLタグ内の※の部分に変数を置きたいのですが、
今までname=".$aaa.">のように". ."の間に変数名を入れて繋いでいたところ、
たまたま違う人がname={$aaa}>と{ }で囲っているのを見つけました。

変数の中身を{ }で参照できるのは納得できたのですが、
". ."で囲う場合、変数ではなくname=".session_name()."のようにできるところを
{ }で囲う場合はどうすればよいでしょうか。

PHP5

622:nobodyさん
09/07/03 06:15:55
{}で参照なんかできないよ

623:nobodyさん
09/07/03 06:21:26
とするとタグの途中に変数とか関数の戻りを表示したいときどうつなげるのが普通なんでしょう
". ."は超自己流なんで定番が知りたく。

624:nobodyさん
09/07/03 06:23:18
マニュアルか他のアプリのコードでも見てみれば?

625:nobodyさん
09/07/03 06:31:04
いくつかの他アプリで{ }と・・・・

626:nobodyさん
09/07/03 06:36:58
じゃそうすればいいんじゃね?

627:nobodyさん
09/07/03 06:39:26
すみませんでした
もうちょい詳しい人に聞いてみます

628:nobodyさん
09/07/03 06:40:56
死ね低脳w

629:nobodyさん
09/07/03 06:45:36
echo '<input type="hidden" name="',session_name(),'>';

630:nobodyさん
09/07/03 08:57:30
>>621-622
まあできるかできないかで言えばできる

631:nobodyさん
09/07/03 10:55:19
PHP は { } で関数と定数が埋め込めないのがダサい

632:nobodyさん
09/07/03 11:43:51
そんなものにまで対応させてたら文字列リテラルをパースするのにもっと時間がかかってしまう

633:nobodyさん
09/07/03 11:50:14
だいいち{}で変数が埋め込めてるわけじゃないし。
埋め込めてるのはダブルクオーテーションの機能だろ
{}は区切り文字なだけ

634:nobodyさん
09/07/03 12:48:46
>>632
" や ' 以外の括り文字でもあればいいのかもね。
それとは別に Perl や Ruby の q| | とかもほしいなぁ。

635:nobodyさん
09/07/03 23:23:32
613ですが自己解決しました。

プラグインで smoothview というのがあったので
そのインターフェースを改造しました。

636:nobodyさん
09/07/04 07:55:20
もしかしてsmartyなんじゃないの?
smartyって{}を多用するよね。

637:nobodyさん
09/07/05 21:23:19
powerd by *****
と表示しなくてもいいCMSはありませんか?

638:nobodyさん
09/07/08 11:36:42
すいません、こちらで質問していいのかどうかわからないんですが
レンタルサーバの設定では、PHPを「FastCGI アプリケーションモード」で動かしているらしいのですが
結構頻繁に「The FastCGI process exceeded configured activity timeout」ってエラーが出ます。
サーバ会社に聞くと、「FastCGIに対応したコードを記述してないからです」と言われたのですが、
当方、参考書を見ながら作成しているのですが、どこにもFastCGIについて書かれておらず
どこかにその対応コードなどが記載されているような参考にできるサイトを知っている方はいらっしゃらないでしょうか?

639:nobodyさん
09/07/08 11:48:42
>>638
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ._________________
      |FastCGI PHP               │・検索オプション
      └────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索

640:nobodyさん
09/07/08 11:52:55
たんに処理時間が長くてタイムアウトしているんじゃないかなぁ

641:nobodyさん
09/07/08 11:59:11
>>638
すいません、すでにいろいろとぐぐってはいるんですが
サーバ側でFastCGIを導入する方法ばかり記載されており、PHPでサイトを作る際の注意点などが記載されているものがなく
困っております。
そこで、そのような記載があるサイトがないかお尋ねしたのですが、やはり難しいのでしょうか。

642:nobodyさん
09/07/08 12:01:18
ActivityTimeout=300

643:nobodyさん
09/07/08 12:11:40
>>642
ありがとうございます。
タイムアウトの設定を変える内容のようですが、そちらはPHPファイルのどの当たりに記載すればよろしいのでしょうか?
そのコードがレンタルサーバ会社の言う、こちらが記載すべき「FastCGIに対応したコード」というものなのでしょうか。
なんどもお聞きしてしまって申し訳ありません


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

5373日前に更新/191 KB
担当:undef