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

【PHP】下らねぇ質問はここに書き込みやがれ 22

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/08(木) 05:09:28ID:5gGJKVO4
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0511nobodyさん2006/06/17(土) 15:17:26ID:ZJRj0raG
セキュリティ的なことに関して質問です。

htmlspecialchars($_POST)とやって、フォームからの値を
まとめてサニタイズしようとしているのですが、これはセキュリティ的にみてダメですか?

そのほかにもaddslashes($_POST)とか、一個一個やるのが面倒なので、まとめてやりたいのですが、これってどうなんですかね?
0512nobodyさん2006/06/17(土) 15:34:37ID:???
>>511
http://takagi-hiromitsu.jp/diary/20051227.html#p02
0513nobodyさん2006/06/17(土) 15:45:12ID:???
>>510
おおっと!テレポーター
0514nobodyさん2006/06/17(土) 16:18:36ID:???
>>511
それで動くのなら好きにすればいいんじゃない? …動くものならな。
マニュアルにはhtmlspecialchars()もaddslashes()もStringしか受け付けないように書いてある。

それと、よほど変にいじった環境でも無い限りaddslashes()は通常は必要ない気もする。

http://php.s3.to/man/function.htmlspecialchars.html
http://php.s3.to/man/function.addslashes.html


>>513
** いわのなかにいる! **
05155112006/06/17(土) 16:24:05ID:ZJRj0raG
>512
レスどうもです。
ようするに、むしろ全部まとめてhtmlspesialcharsする方が自然ってことですかね?
05165102006/06/17(土) 16:32:17ID:ZJRj0raG
>514
レスどうもです。
まとめてやっても動くようです。$_POSTの中には数値というか整数型もありますが、エラーも出ないような...。
セキュリティについての本を買ったのですが、その中ではSQLインジェクション対策として、SQL文中の変数(文字列型)にはaddslashesをかけろと書いてあったのですがそうでもないんですかね?
0517nobodyさん2006/06/17(土) 16:47:44ID:???
へえ、俺がローカルでhtmlspecialchars($_GET)を試したら

> Warning:
> htmlspecialchars() expects parameter 1 to be string,
> array given in ほげほげ

とか言われるんだけど、最近のPHPはArrayもOKになったんか。
それは知らなかったよ。スマソ


で、ここは読んだ?

http://php.s3.to/man/function.addslashes.html

> 注意:
> magic_quotes_gpc は デフォルトでOnです。

まあ念に念を入れてaddslashes()をするのも自由ではないでしょうか。
0518nobodyさん2006/06/17(土) 17:21:32ID:???
配列に対して処理したけりゃarray_mapとか使えばええんでないの?

>>517
本家にマニュアルがあるのに、そこのマニュアルを薦めるのはヤメれ。
0519nobodyさん2006/06/17(土) 17:24:31ID:???
>>518
す、すまそん。
普通に本家と勘違いしてた…w
05205102006/06/17(土) 17:31:16ID:ZJRj0raG
>517
れすありがとうございます。
スミマセン、僕が間違ってました。error_repoting(4)とやっていましたorz。
たしかにWarning出ますね。

マニュアルのaddslashesの項目、大変参考になります。magic_quotes_gpcはデフォルトでonなんですね。
丁寧にありがとうごいます。

>518
ありがとうございます。
array_mapという手がありますか。
そもそもhtmlspecialchars($_POST)みたいな「発想」自体がアリなのかどうかということなんですが、どうなんでしょうか?

それと全然別の質問になってしまうのですが、基本的にはnotice系のエラーも全部潰すべきなんでしょうか?(自分はうっとうしいのでerror_repotingって書いちゃうんですけど...。)
0521nobodyさん2006/06/17(土) 17:39:08ID:???
>>520
>htmlspecialchars($_POST)
この発想はありだろ。
誰かがローカルからHTML改変してPOSTしてきても使用しなけりゃOKだし

PHPには良く使われる処理なんかは関数として用意されてる場合が多いので
やりたいことがあったら検索して見つけウマーって脳汁コンボになりやすい
0522nobodyさん2006/06/17(土) 17:49:29ID:ZJRj0raG
>520
れすどうもです。発想はアリですか。
ただほんとにやると517さんのエラーが出るので、518さんのように別の関数を用意したりするのが吉ですかね。

いま試したんですが、htmlspecialchars(extract($_POST))はアリですかね?
ちゃんとタグが無効になってwarningも出ないようです。
0523nobodyさん2006/06/17(土) 17:51:05ID:???
function obutsu_ha_shodoku() {
global $conf, $flag;
$_SERVER = array_map("sanitize", $_SERVER);
$_GET = array_map("sanitize", $_GET);
$_POST = array_map("sanitize", $_POST);
$_COOKIE = array_map("sanitize", $_COOKIE);
}
function sanitize($value) {
global $conf, $flag;
$value = trim($value);
$value = htmlspecialchars($value, ENT_QUOTES);
$value = addslashes($value);
$value = str_replace(array("\r\n", "\n", "\r"), "<br />", $value);
return $value;
}

こうですか? わかりません!><
0524nobodyさん2006/06/17(土) 17:54:04ID:???
あるphpをroot権限で動かしたいのですが、ブラウザからそのようなことは可能でしょうか。

具体的にはroot所有のディレクトリへのデータの入出力を行いたいのですが、
ブラウザ側からだとApache権限で動くため書き込むことは出来ません。

SSHやコマンドラインからphpを実行すればrootで動きますが
ブラウザ操作で達成できることに意味をなす内容のためその手段を選択することは出来ません。

Cronジョブの利用も同様に即内容を反映させる必要があるため利用できません。
セキュリティ面の問題抜きで可能か不可能かという場合そのような操作は可能でしょうか。

よろしくお願いします。

環境:Linux(FC3) php-5.1.4 root権限を所持している状態です
0525nobodyさん2006/06/17(土) 17:56:09ID:???
>>522
http://jp.php.net/manual/ja/function.extract.php

> 警告
> extract() をユーザー入力 ($_GET, ...) のような信頼できないデータについて使用しないでください。
> もし行う場合、例えば register_globals を信頼しているような古いコードを一時的に実行したい場合、
> EXTR_SKIP のような extract_type の値が上書きされていないことを確認してください。
> そして php.ini の variables_order で定義されたものと同じ順で展開すべきであることに留意してください。

というか普通にforeach()使っちゃダメなん?
0526nobodyさん2006/06/17(土) 18:00:01ID:GQE5aPRk
pearのDBを使っているのですが追加処理時に
DB Error: value count on row
と出てしまうようになってしまいました。

$sql=<<<EOS
INSERT INTO lecture (
hoge1,hoge2,hoge3,hoge4,
hoge5,hoge6,hoge7,hoge8,
hoge9,hoge10,hoge11,host
) VALUES (
'$hoge1','$hoge2','$hoge3','$hoge4',
'$hoge5','$hoge6','$hoge7','$hoge8',
'$hoge9','$hoge10','$hoge11''$host'
)
EOS;
SQL文は上の通りです。
12番目のhostをなくして11個のデータ挿入だとエラーなしで動作します。

何が原因なんでしょうか?

環境はApachi1.3系、MySQL(バージョン不明)、レンタルサーバ(Xserver)です。
0527nobodyさん2006/06/17(土) 18:18:44ID:???
全角一文字の「が」を「か」、「ぎ」を「き」
のように、濁音を取るように変換するような一発関数はあるでしょうか?
05285102006/06/17(土) 18:20:56ID:ZJRj0raG
>525
レスどうもです。
extractがダメですか。

foreachを使うと言うことは、
$hoge = $_POST[0];
$hoge1 = $_POST[1];
$hoge2 = $_POST[2];.....続く
みたいに、一個ずつPOSTの値を取り出すのと変わらないですよね?
そうすると、結局いっこずつhtmlspecialcharsということになりますよね。
別にそこまでだわらないので、一個づつでもいいんですけど、
>521さんも発想としてはOKと言われていますし、
foreachを使って、安全に値を取り出しつつまとめてタグ除去とかできないものかと...。どうでしょうか?

0529nobodyさん2006/06/17(土) 18:23:11ID:???
だ、誰か>>528を俺にも分かるように説明してくれ…。
05305272006/06/17(土) 18:30:16ID:???
$w = "ががーりんたべたよ";
$w = mb_convert_kana($w, "h");
$w = str_replace('゙', '', $w);
$w = str_replace('゚', '', $w);
$w = mb_convert_kana($w, "H");
echo $w;

とりあえず上記ので騙し騙しやることにしましたが、簡潔な方法があったらおしえてくださ。
0531nobodyさん2006/06/17(土) 18:32:18ID:???
>>527
あっても需要少なそうだしその程度ならfunctionで作れるくない?
ereg_replaceとifだけで作れそうな希ガス。
0532nobodyさん2006/06/17(土) 18:39:52ID:ZJRj0raG
>529
すいません。焦りすぎて謎なこと書いてしまいましたorz
要するに$_POSTの値をextractを使わずに$key = $_POST[key]みたいにしたくて、
結果として取り出した$key達に一括でhtmlspwcialcharsをかける方法です。
わかりずらくてすみません。
0533nobodyさん2006/06/17(土) 18:40:59ID:NaIxFncO
超くだらない質問ですみません。
PHPでURLに変数を受け渡しする記述のことです。
index.php?no=2
というnoという変数のほかにaという変数も渡したい場合どうなりますか?
一応
index.php?no=2,a=1
みたいになるのかなと思っていますが。正しい記述を教えて下さい。
0534nobodyさん2006/06/17(土) 18:49:18ID:???
>>530
それ以外でやるなら

$string = "はげふげほげもげぱげ";
$search = array(
"が", "ぎ", "ぐ", "げ", "ご",
"ざ", "じ", "ず", "ぜ", "ぞ",
"だ", "ぢ", "づ", "で", "ど",
"ば", "び", "ぶ", "べ", "ぼ",
"ぱ", "ぴ", "ぷ", "ぺ", "ぽ",
"ガ", "ギ", "グ", "ゲ", "ゴ",
"ザ", "ジ", "ズ", "ゼ", "ゾ",
"ダ", "ヂ", "ヅ", "デ", "ド",
"バ", "ビ", "ブ", "ベ", "ボ",
"パ", "ピ", "プ", "ペ", "ポ",
);
$replace = array(
"か", "き", "く", "け", "こ",
"さ", "し", "す", "せ", "そ",
"た", "ち", "つ", "て", "と",
"は", "ひ", "ふ", "へ", "ほ",
"は", "ひ", "ふ", "へ", "ほ",
"カ", "キ", "ク", "ケ", "コ",
"サ", "シ", "ス", "セ", "ソ",
"タ", "チ", "ツ", "テ", "ト",
"ハ", "ヒ", "フ", "ヘ", "ホ",
"ハ", "ヒ", "フ", "ヘ", "ホ",
);
print str_replace($search, $replace, $string);

こうかな。
0535nobodyさん2006/06/17(土) 18:50:56ID:???
>>533
index.php?no=2&a=1

厳密には

index.php?no=2&a=1

と書くといいらしいよ。

というかこれはPHPの質問じゃなさす。
05365352006/06/17(土) 18:52:04ID:???
ごめん、>>535の下段は

index.php?no=2&amp;a=1

って書いた。
05375272006/06/17(土) 18:52:50ID:???
>>534
なるほど。引数の1番目と1番目を、同じサイズの配列で対応できるのですね。
一旦半角カナに変換するのはなんとなく嫌なので、
それを採用してみたいと思います。
ありがとうございます。
05385212006/06/17(土) 18:53:10ID:???
>>ID:ZJRj0raG
$_POST = array_map( 'htmlspecialchars' , $_POST );

何故518からの話の流れで532になるのか分からん。
ググレカス
0539nobodyさん2006/06/17(土) 19:01:21ID:???
>>532
未だに何が言いたいのか良く分からんのだが、
htmlspecialchars()はArrayを受け付けないんだから
何をどうしようと処理上は要素を一個ずつ取り出して
Stringとしてかけることになるんじゃないの?

foreach ($_POST as &$value) { htmlspecialchars($value); }

でも>>538でも>>523でも、どれでも結局は同じことだと思うのだが…。
0540nobodyさん2006/06/17(土) 19:02:11ID:NaIxFncO
>>535
ありがとうございました。
そう言われればPHPというよりHTMLの基礎なのかも知れません。w
スレ違いで失礼しました。
0541nobodyさん2006/06/17(土) 19:55:31ID:???
そろそろどなたか>>524にもお願いします><;
0542nobodyさん2006/06/17(土) 20:13:15ID:vT2D8NFi
場違いな質問ですが、
書き込んだときに、青色の数字だす?→526みたいなのって どうやるんですか??
0543nobodyさん2006/06/17(土) 20:15:18ID:???
>>542
三年ROMってろ
0544nobodyさん2006/06/17(土) 20:21:10ID:???
>>542
マニュアル読もうね。
http://info.2ch.net/guide/faq.html#D5
0545nobodyさん2006/06/17(土) 20:32:43ID:???
意味わかんねぇ。
0546nobodyさん2006/06/17(土) 21:43:30ID:???
>>242
0547nobodyさん2006/06/17(土) 22:20:39ID:???
>>515
もう一度読み直せ。
それでも解らないなら小学校か日本語学校からやり直せ。

あと
$_POSTや$_GETをextractすることの危険性
http://www.google.co.jp/search?q=%24_POST+%24_GET+extract+%E5%8D%B1%E9%99%BA&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox&rls=org.mozilla:ja:official
0548nobodyさん2006/06/17(土) 22:36:28ID:???
URLテラナガスw
余分なパラメータは削ろうぜ。
0549nobodyさん2006/06/17(土) 22:46:20ID:???
質問です
ttp://chronicle.jp/subject.php
PHPを使ってるみたいですが、これのやり方を誰か詳しく教えてください
0550nobodyさん2006/06/17(土) 22:51:09ID:???
>>549
それを考えるのがお前の仕事だろ
0551nobodyさん2006/06/17(土) 22:54:04ID:???
酷い言い方だけど、こんなん自分で考えられないなら向いてないよ。
0552nobodyさん2006/06/17(土) 23:00:04ID:???
いくら下らない質問スレとはいえ、数行しか書かないここで
そんなひとつのサービスまるまるを
詳しく説明なんてできないよ

もっと、質問内容をしぼってくれ
0553nobodyさん2006/06/17(土) 23:08:55ID:???
こらこらおまいら、ここは下らない質問に優しく答えるスレですよ。

>>549
subject.phpを作って以下のように記述。

<?php
print <<EOM
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
(中略)
<title>Chronicle</title>
(中略)
</head><body>
13板 最新5スレ<br>2006/06/17 23:00:19<hr color='#006699' size='5' noshade><a name='worry'>お悩み相談板</a><br>
1:<a href=./test/mread.cgi/worry/1150450297/l5>??花言葉?? (24)</a><br>
2:<a href=./test/mread.cgi/worry/1150126847/l5>自分をだめだと思った時、集まる場所�B (80)</a><br>
3:<a href=./test/mread.cgi/worry/1150209009/l5>駆け引きなんかじゃないのに… (19)</a><br>
4:<a href=./test/mread.cgi/worry/1147684184/l5>高校受験についてです。 (15)</a><br>
5:<a href=./test/mread.cgi/worry/1147097646/l5>【リセット】皆でオナ禁汁!3日目【上等】 (45)</a><br>
<hr width='100%' size='1' noshade>
(中略)
<a href="./index.php" target="_self" accesskey="9">�HTOPへ戻る</a><br><hr color="#006699" size="5" noshade>
<div align="center"><img src="./site_img/ft_lg.gif" border="0" width="43" height="7"></div></body></html>
EOM;
?>

もしくは該当ページのソースを全部コピーして貼り付けて保存。
これでバッチリ同じものができあがります。お試しあれ!

…あ、お礼なんていいですよ^^
0554nobodyさん2006/06/17(土) 23:10:03ID:???
>>524はいらない子ですかそうですか(´;ω;`)ブワッ
そろそろ誰か答えてよー
0555nobodyさん2006/06/17(土) 23:17:40ID:???
>>554
悪意があって無視してるんじゃなくて、今ここにいる人では分からないんです。
大人しくエロい人の登場を待って下ちぃ。
0556nobodyさん2006/06/17(土) 23:32:50ID:???
>>554
http://ns1.php.gr.jp/pipermail/php-users/2003-January/012428.html

0557nobodyさん2006/06/17(土) 23:48:36ID:???
ここにもこれ貼っとく?

<わからない五大理由>
1. 読まない ・・・説明書などを読まない。読む気などさらさらない。
2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。
4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。
5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない

脱!教えて君同盟
ttp://myu.daa.jp/osiete/
0558nobodyさん2006/06/18(日) 00:13:26ID:???
>>554
スマン、俺にはやり方はわからないよ。
結局のところPHPを実行するユーザはapacheなんだから通常のやり方では無理だと思う。

あ、書いてて閃いたぞ!
1:bashとかで書かれたファイルを用意する(内容はスイッチユーザ、実行したいPHPファイルの実行)
2:ブラウザから叩かれたPHPファイルが1で書いたシェルファイルをキックする
3:2でキックされたシェルファイルが>>554が実行したいPHPファイルをキックしてウマー

これでどうだ?
0559nobodyさん2006/06/18(日) 00:24:23ID:???
>>524
UNIX系だとして、所有者が他者でもパーミッションを適切に設定すれば書き換えられるわけだが。
0560nobodyさん2006/06/18(日) 00:46:49ID:3xsAOr6z
$array2 = array("p"=>8,"a"=>5,"g"=>7);

asort($array2);

print_r($array2);

Array (
[a] => 5
[g] => 7
[p] => 8
)

と出ますよね。
これを一番最初の変数をechoで
echo $array2[a];

だったら順番が違っても5しか出ませんよね。
順番によって一番上のを出力させたいのですが、どうすればよいですか?
0561nobodyさん2006/06/18(日) 01:04:32ID:???
>>560
こうっすかねえ。

echo current($array2);

http://www.php.net/manual/ja/function.current.php
0562nobodyさん2006/06/18(日) 11:10:00ID:???
テクニックについて質問です。
現在、CSVファイル形式でデータを扱っています。

ファイルからデータを読み取るさい、
while(list($id, $name, $pos_x, $pos_y) = fgetcsv($file, 1000, ",")) {
としています。
しかし、これではlistの項目が増えた場合には随所変数を書き直さないといけないという手間があります。

これを
array("id","name,"pos_x","pos_y");
という配列の要素などを使って動的に扱うことはできないのでしょうか?

現在は、list()を使わずに配列に収め、一つ一つの変数それぞれをget関数を経由して取得するパターンを考えています。
もし良いテクニックなどがあれば教えてください。よろしくお願いします。
0563nobodyさん2006/06/18(日) 11:12:32ID:???
>>562
CSVファイルの1行目をカラム名レコードにする
0564nobodyさん2006/06/18(日) 11:44:38ID:???
>>563

うーん。ちょっと考えてみたのですが、うまい使い方が思いつきませんでした。
もしよければ一行目にカラム名を設定して、それをどう変数名として扱うのか教えてもらえませんでしょうか。
ちなみにレンタルサーバーでDBが使えないため、自分でデーターの管理をファイルで行いたいなと考えています。
0565nobodyさん2006/06/18(日) 12:29:59ID:???
>>564
まずフィールド名を作る
配列にしとく
$fields = array("id","name,"pos_x","pos_y");
または、ファイルの1行目にCSVでフィールド名
$fields = fgetcsv($file, 1000, ",");

while ($tmp = fgetcsv($file, 1000, ",")) {
 $rec = array_combine($fields, $tmp);
な感じでいけるかな
http://jp.php.net/manual/ja/function.array-combine.php
05665622006/06/18(日) 12:31:00ID:???
さらに考えて、

// CSVファイルを開く
$fp = fopen("Sample.csv", "r") or die();
// 一行目を読んでヘッダにする
$header = fgetcsv($fp, 1024);

// 以降の行を読んでテーブルとして表示
while(($line = fgetcsv($fp, 1024)))
{
if(任意の行)
{
foreach ($header as $i => $value)
{
$$value = $line[$i];
}
break;
}
}

で、いけるような気がしてきました。試してみます。
05675622006/06/18(日) 12:33:34ID:???
>>565
ありがとうございます。そちらもさっそく試してみます。
05685622006/06/18(日) 12:36:31ID:???
>>565

array_combine()は便利ですね。こういうのを探してました。これで上手くいくと思います。
ありがとうございました。
0569nobodyさん2006/06/18(日) 16:17:49ID:???
CSVの質問があったので便乗なんですが、
PHPでローカルにあるCSVのデータをSQLiteにINSERT(インポート?)するには
どういう方法がありますでしょうか?
0570nobodyさん2006/06/18(日) 16:25:04ID:pp5MYlMG
phpのイメージ関数について質問です。

元となる画像に、文字を縦書きで乗せたいのですが効率的な方法はあるのでしょうか?

外道ジェネレーターの縦書きバージョンのようなものを作りたいのですが
フリーの縦書きフォントが中々見つからず(そもそも私の発想が違うのかもしれません)、
sazanami等のフォントで一文字一文字区切ってならべても「ー」等の処理に困る始末です。

よろしくお願いします。
0571nobodyさん2006/06/18(日) 17:53:06ID:???
エスパーさん!およびですよ!
0572nobodyさん2006/06/18(日) 18:00:40ID:???
CSVを下の方法で編集したのですが、
ローカルで result.csv を開くと \r\n とそのまま表示され改行されてないです。
どうすれば改行されますでしょうか?

$fp = fopen('test.csv', 'r');
$i = 0;
while ($data = fgetcsv($fp, 10000))
{
$row = array( $data[2], $data[3], $data[4] );
$total[] = join(',',$row);
if (++$i == 10) { break; }
}

$fp_w = fopen('result.csv', 'a');
fputs($fp_w, join('\r\n',$total));
fclose($fp_w);
0573nobodyさん2006/06/18(日) 18:07:41ID:???
'\r\n'を"\r\n"にしてみるとか?
0574nobodyさん2006/06/18(日) 18:07:59ID:???
>>572
'\r\n'を"\r\n"に変えてみて
0575nobodyさん2006/06/18(日) 18:15:02ID:???
xml_set_element_handlerって
xml_set_element_handler ( int parser, string startElementHandler, string endElementHandler )
二番目の引数にstring 入れますよね。
classつくって、そのクラスのメソッドを指定したんですけど、
Warning: xml_parse() [function.xml-parse]: Unable to call handler
になってしまいます。

そのclassを使用するところにファンクションをつくって
そのファンクション名を引数に指定したんですが、駄目でした。
どのように指定するのでしょうか。
05765732006/06/18(日) 18:18:43ID:???
>>574
ふつつか者ですがよろしくお願いいたします…。
0577nobodyさん2006/06/18(日) 18:27:24ID:???
phpのソースを色分けしてくれる関数ってあった気がするんだけど
検索しようにもキーワードが思い浮かばず…。
なんて関数でしたっけ?
0578nobodyさん2006/06/18(日) 18:28:29ID:???
つsource_irowake($src)
0579nobodyさん2006/06/18(日) 18:31:14ID:???
show_source
0580nobodyさん2006/06/18(日) 18:40:14ID:???
>>579
それか!ありがとです。
0581nobodyさん2006/06/18(日) 21:50:32ID:???
style.php ってファイルを作って

function error($detail){
return("
<b><font color=\"#ff0000\">ERROR!!</font> $detail </b><br>
<a href=\"JavaScript:history.go(-1)\">戻る</a>
");
}


と、関数を定義して


index.php ってファイルで

<?php include"style.php"; ?>
<?php print(error(ラジオボタン)); ?>

とすると、エラーが出てしまうのですが
エラー【Parse error: syntax error, unexpected '{' in D:\アドレス\index.php on line 26
】

どうも、error(ラジオボタン)のボという字が問題みたいなのですがどうしたら良いか教えてください

※ 例えば、ラジオ と入れるだけならちゃんと表示されます。

宜しくお願い致します。

0582nobodyさん2006/06/18(日) 21:54:16ID:???
>>581
文字リテラルは"か'でくくれ
0583nobodyさん2006/06/18(日) 21:58:46ID:???
RSSフィードを作るのに FeedCreator.class.php 以外に良いものってありますか?
0584nobodyさん2006/06/18(日) 22:48:41ID:???
htmlに埋め込むアクセス解析を作りたいのですが、
どうすればよいのでしょうか?

htmlにincludeは無理ですよね
0585nobodyさん2006/06/18(日) 22:54:53ID:???
サッカー見ろよ非国民
0586nobodyさん2006/06/18(日) 23:22:11ID:???
>>584
imgタグでアクセス解析をしつつ画像を返すPHPスクリプトに飛ばすとか、
フレーム使うとか。
05875812006/06/18(日) 23:54:08ID:???
>>582
質問がくだらなすぎた・・ごめん
そしてありがとう!
0588nobodyさん2006/06/19(月) 00:08:41ID:???
>>584
鯖の設定次第じゃなかったっけ?
*.htmlでもPHPとしてちゃんと認識してくれるような設定になってるとこも
あったと思う。
0589nobodyさん2006/06/19(月) 00:14:28ID:???
php://outputストリームの明示的なcloseはどうやって行うのでしょうか?
<html>
略
</html>
<?php
fclose(output);
sleep(5); // 重い処理
?>
的なことがしたいのですが。
0590nobodyさん2006/06/19(月) 00:18:43ID:???
>>588
まじで?
ソースみたいお
0591nobodyさん2006/06/19(月) 00:30:50ID:???
>>590
ソースっても...山ほどあるからぐぐれw
少なくてもApacheとIISには拡張子で
振り分ける機能が普通にある。
0592nobodyさん2006/06/19(月) 00:39:34ID:???
>>590
<?php ?>が含まれてない.phpファイルがあってもいいように
単に.htmlをphpパーサに渡すだけじゃん。
ソースとかの問題じゃないよ。
0593nobodyさん2006/06/19(月) 00:48:00ID:???
>>590
拡張子がphpやcgiだとCGIとばれるからアタックを受けやすい
だからセキュリティに厳しいとこはよくやってる

ソース欲しいならApacheの設定ファイル(httpd.conf)でも見て来い
UNIXは拡張子でOSが勝手に実行アプリを判断することなんてないからな
0594nobodyさん2006/06/19(月) 00:53:02ID:???
Yahoo!がそういうことしてるっぽいかなーとかふと思った。
htmlファイルなのにアクセスするたびにソースが変わったりしてたような。
0595nobodyさん2006/06/19(月) 00:56:48ID:???
>>583
> RSSフィードを作るのに FeedCreator.class.php 以外に良いものってありますか?

これスレ違いでしたかね…
みんな自分で書いているのでしょうか
0596nobodyさん2006/06/19(月) 01:02:44ID:???
>>595
>>557
1日2日放置されたくらいで泣かないの。
0597nobodyさん2006/06/19(月) 01:05:06ID:???
デジカメで撮ったファイルって「DSC00124.jpg」見たいな感じで
英数字が混ざったファイル名が多いじゃないですか
これを上手く表示させるために

$common = DSC00
$open = 001
$close = 124

のようにして、DSC00001〜DSC00124のファイルをHTMLで表示しようと思って

for($a=$open ; $a<=$close ; $a++){
print("<img scr=\"{$a}\"><br>")
}

っていうことを考えたんですけど、$a = $open が 001 となっていて、以降1ずつ加算していくと
002ではなく普通に 2 という値が入ってしまいます。
これはどのように回避すればよいでしょうか?
0598nobodyさん2006/06/19(月) 01:38:00ID:???
>>597
Stringでキャストしてみたら?
0599nobodyさん2006/06/19(月) 02:14:33ID:???
>>597
sprintf()でフォーマットを整形すれば良いんだけど、

http://jp2.php.net/manual/ja/function.sprintf.php

どうせやるならreaddir()でファイル名の一覧を取った方がよろしいかと。

http://jp2.php.net/manual/ja/function.readdir.php
0600nobodyさん2006/06/19(月) 04:36:38ID:???
0<>1<>2<>3<>\n
1<>2<>3<>0<>\n
2<>3<>0<>1<>\n
3<>0<>1<>2<>\n

このように<>区切りで情報が書かれているテキストで、
任意の列を基準にソートするには、どうすれば良いのでしょうか。
0601nobodyさん2006/06/19(月) 10:00:33ID:Pg3y549I
>>600
usortを使えばできなくはない
0602nobodyさん2006/06/19(月) 10:09:13ID:???
>>600
データがさほど多くないのならfileで全部読んで
explodeを使って目的の列のデータで配列を作ってその配列をasortかarsortして
そのキーの並び順通りにファイルに書き出すなり使うなりすればいい

多いのならデータベースを使うべき
0603nobodyさん2006/06/19(月) 10:21:16ID:ywXHAQss
変数の初期化って具体的に言うとどういうことですか?
僕の買った本にはPHPは変数を初期化しなくても使えるから気にするなみたいに書いてあるのですが、一説には初期化しないとセキュリティ的にダメとか...。
くだらないですが、宜しくお願いします。
0604nobodyさん2006/06/19(月) 10:31:31ID:???
セキュリティ的に駄目ということはないと思う

ただ、使い捨てのコードならともかく、長く利用するコードなら
その変数が初期化忘れてでたまたまうごいているのか、
意味があって未定義にしているかが、わからないと
数ヵ月後に、もう一度そのソースを見たときに苦労することになる
0605nobodyさん2006/06/19(月) 10:58:17ID:???
php5 smarty apacheを使って認証アレコレを勉強しているんですが、

認証okならセッションにログイン情報を格納して、"logout.php"へのリンクを踏むと
ログアウト処理してトップ画面を表示

ということがしたいのですが、ブラウザのURL入力欄に"〜sample/logout.php"と出てしまいます。
これを"〜sample/"と表示させるにはどうしたらいんでしょうか?

logout.php内で ログアウト処理の後にheader("index.php") 記述しても
ログアウト処理を踏まずindex.phpへ飛んでいるようです

参考になるHPなどあればご指南お願いしますm(_)m
0606nobodyさん2006/06/19(月) 11:03:37ID:ywXHAQss
>604
ありがとうございます。
セキュリティ的には問題ではないのですね。
逆に、未定義にする意味というか、未定義にしておく必要がある状況というのはどんなときですか?
06076002006/06/19(月) 11:20:24ID:???
>>601
ありがとうございます。usort関数についてはよく知らないので、
この後調べてみることにします。

>>602
ありがとうございます。確かにそれだと、うまくいきそうです!



>>601さんと>>602が教えてくださった方法で速度を比べて、
速そうなほうを使ってみたいと思います。ありがとうございました!
0608nobodyさん2006/06/19(月) 11:32:52ID:ywXHAQss
例えば<input type="text" name="username">をサブミットして
extract($_POST)とやるのと、
$username = $_POST['username']とやるのはどこがどう違うのですか?
どちらも$usernameとして使えるようになりますが、前者は御法度ということになっていますよね?

0609nobodyさん2006/06/19(月) 11:36:14ID:???
>>608
>>4
0610nobodyさん2006/06/19(月) 11:45:18ID:???
>>597
文字列"DSC00001"をインクリメントしてみ
■ このスレッドは過去ログ倉庫に格納されています