【PHP】下らねぇ質問はここに書き込みやがれ 44
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/12(木) 16:54:47ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0792nobodyさん
2007/04/24(火) 14:58:28ID:43dSuuSB791さん、ありがとうございます。
htmlspecialcharsで出力すると、< >と、そのまま&lt:>
がブラウザに出力されます。実体参照に戻されて、<>等と出力されるはずが、
そのまま出力されます。
htmlspecialcharsを使用するときは、何か特別な設定がいるんでしょうか?
m(..)m
0793nobodyさん
2007/04/24(火) 15:01:19ID:43dSuuSB0794nobodyさん
2007/04/24(火) 15:03:46ID:???0795nobodyさん
2007/04/24(火) 15:09:53ID:???確認画面でhiddenに埋め込む方にはnl2brをかけなくていい
(表示する方だけにnl2brを行えばいい)
0796nobodyさん
2007/04/24(火) 15:22:16ID:43dSuuSBSuccess!!です。成功しました。とても助かりました。
今やっている部分を頭の中にまとめて理解したいと思います。
791さんのおかげで、モヤモヤが今スッキリしていきそうです。
(まだ、完全に理解していないw)パターンで覚えるよりも、仕組みをキッチリ
理解していこうと思います。速レスでとても感謝しています。
ありがとうございました。m(__)m
0797nobodyさん
2007/04/24(火) 16:26:10ID:???俺が昔作ったやつ
http://nike.s151.xrea.com/qreki.phps
0799603
2007/04/24(火) 16:41:18ID:YIKrD66nあれから調べてみましたが、
session_regenerate_id(true) の処理が問題のようでした
この処理を外したところ、問題は出なくなりました
また、session_regenerate_id() ではセッションが切れるということはありませんでした
今、セッションデータを file ではなく、
データベース上で処理する仕組みを作って検証しています
session_set_save_handler は使用せず、Cookie, GET, POST の値を拾って
独自に PDO クラスでセッション ID や有効期限を保存、更新処理等するものなのですが、
こちらは複雑な処理に関わらず、更新ボタン猛連射でもまったく問題が出ていません
session_regenerate_id(true) は、古いセッションデータファイルを
自動で削除してくれるとはいえ、DB コンテナに比べて
大したオーバーヘッドになるとも思えないし、
セッションファイルが多数存在するのなら別ですが、検証上では 5 ファイル程度です
推測ですが、session_regenerate_id(true) の処理には
連続リロードに耐えられない問題があるのではと思います
アクセスが多いサイトのセッションの仕組みに利用すると問題がでるかもしれません
0800虚弱PHP
2007/04/24(火) 16:47:27ID:???俺も推測でしかないけど、
session_regenerate_id()で問題出ないなら、
余計にsession_regenerate_id(true)の問題じゃなくて、
ブラウザ側の問題だと思うよ。
ブラウザがサーバーから返されたCookieヘッダを解釈・設定する前に
F5押したとかじゃないかなぁと思うんだけど。
0801nobodyさん
2007/04/24(火) 16:48:18ID:???お前相当暇人だなw
不覚にもこれには笑ったぜw
ttp://nike.s151.xrea.com/okki.php
0802nobodyさん
2007/04/24(火) 16:57:34ID:EJNwdirJ適当な場所にライブラリパスを通して、そこにファイルコピーすればいい
0806603
2007/04/24(火) 17:17:38ID:YIKrD66nどうも
>>603 で書いたとおり、HTTP リクエスト、レスポンス上で見る限りは
Cookie, Set-Cookie は切り替わったものを正しくやり取りしてるんですよね
今、独自 DB コンテナの方で session_regenerate_id(true) の相当の機能を
作成中でして、これで連続リロードしてみれば
ブラウザ側動作の影響かどうかある程度はっきりすると思います
ブラウザ側動作の影響なら、連続リロードした人間だけの問題になりそうなので
この件は無視できそうです
>>801
わらた
0808nobodyさん
2007/04/24(火) 18:27:05ID:???0809nobodyさん
2007/04/24(火) 18:33:05ID:???0810虚弱PHP
2007/04/24(火) 18:45:46ID:???うむむ。そうかぁ。
save_handlerがmmだと切れるって話があったような気がするんだけど、
今回はfilesみたいだしね。
0811603
2007/04/24(火) 19:25:37ID:YIKrD66nそちらのご推測通りでした
独自DB コンテナで再現した session_regenerate_id(true) 相当の機能でも同じ症状がでました
再度検証してみたところ、致命的な見落としがありまして
例えば連続で素早く 10 回程更新ボタンを押すと、サーバ側には
本来残らないはずのセッションデータファイルが 5 〜 10 近く残っているが、
HTTP Header キャプチャ(Live HTTP header on Firefox) 上では
3 つ程のやり取りしか残っていない・・
試しに ieHTTPHeader on IE で調べたら、Firefox で行った同じ速度でリロードしても
すべてキャプチャしてくるし、セッション自体も切れないみたい
Opera では Firefox 程ではないけどまれに切れる
ちなみに、GET だけに制限してみたセッション ID のやりとり(この場合はリンクの猛連射)
でも同じ症状がでるので、HTTP レスポンス自体を受け取ってないんでしょうね
どうもありがとうございました
// 正直、JavaScript や CSS 以外でブラウザ別の動作に悩まされるとは思わなかった
0812nobodyさん
2007/04/24(火) 19:37:08ID:???0814nobodyさん
2007/04/24(火) 22:36:23ID:DXOCGV6O長ったらしいテキストファイルの1部分のみ情報を取り込みたいのですが、
そういうのに適した関数等はありますでしょうか。
0815nobodyさん
2007/04/24(火) 22:39:13ID:???0816nobodyさん
2007/04/24(火) 22:55:02ID:???0818nobodyさん
2007/04/24(火) 23:38:17ID:???それらの仕組み、もしくはそのシステムが構築できてあるソースのURLなど知っている人がいましたら教えていただけないでしょうか。
0819nobodyさん
2007/04/24(火) 23:38:55ID:???URLはシラネ
0820nobodyさん
2007/04/24(火) 23:51:38ID:???youtubeは解析されまくってるから仕様なんかはすぐ出てきそうだけど
0821nobodyさん
2007/04/25(水) 01:01:57ID:j8qAcKjIPHP見るとデフォルトでSJISになる
PHPに記述しないでデフォルトをEUCにできないかな
0824nobodyさん
2007/04/25(水) 01:52:00ID:j8qAcKjI本のサンプル全部に記述がだるい…
0825nobodyさん
2007/04/25(水) 01:58:40ID:???タグに記述してもPHPで指定しても文字化けすることもあるしね
EmEditorとかで保存時のエンコードをEUCに設定すればいいと思ふ
未確認
0826nobodyさん
2007/04/25(水) 01:59:40ID:???0827nobodyさん
2007/04/25(水) 02:01:56ID:j8qAcKjI0828nobodyさん
2007/04/25(水) 02:03:16ID:???0829nobodyさん
2007/04/25(水) 02:03:56ID:???0830nobodyさん
2007/04/25(水) 02:10:20ID:j8qAcKjIEUCに嫌われたかな
0831nobodyさん
2007/04/25(水) 02:19:38ID:???それ前提で話してるのかと思ったけど
0832nobodyさん
2007/04/25(水) 02:23:29ID:???そういうレベルの質問にしか見えない。
0834nobodyさん
2007/04/25(水) 02:28:29ID:j8qAcKjI0835nobodyさん
2007/04/25(水) 02:34:58ID:???ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
0836nobodyさん
2007/04/25(水) 02:35:23ID:???\
>
/
(^^)/ なんてこったい!
/\ ̄\
/ \ \
< | |
\ / ̄ ̄\
ゝ / \
/ >
/ /
/ /
0838nobodyさん
2007/04/25(水) 02:56:56ID:???output_bufferingをonなんかにするなって話じゃない?
PHP初めて3年半たつがoutput_bufferingなんて一度もonにしたことねぇ
0839nobodyさん
2007/04/25(水) 03:01:34ID:???0840nobodyさん
2007/04/25(水) 03:04:32ID:???そのときからキャッシュは1MBまでに制限してる。
更新する度にページをダウンロードするようには設定できないのかな。
0841nobodyさん
2007/04/25(水) 03:12:30ID:???0842nobodyさん
2007/04/25(水) 03:14:01ID:???0843nobodyさん
2007/04/25(水) 03:14:46ID:???0844nobodyさん
2007/04/25(水) 03:17:52ID:???0845nobodyさん
2007/04/25(水) 03:49:52ID:???0846nobodyさん
2007/04/25(水) 04:18:44ID:???0847nobodyさん
2007/04/25(水) 08:57:51ID:???0848nobodyさん
2007/04/25(水) 09:36:06ID:Hk5iwc7Fたとえば
index.php?hoge=0001
というページは存在するので、問題なく表示します。しかし
index.php?hoge=0002
や
index.php?hoge=
などのような場合今だと白紙?のページになります。
そこを、404や403を返すようにしたいのですが、どうすれば出来るのでしょうか?
0849nobodyさん
2007/04/25(水) 09:44:28ID:???0850nobodyさん
2007/04/25(水) 11:53:14ID:???if (存在しないページ) {
header( レスポンスコード404を送る );
// 以下自分の好きな404のページ
?>
<html>
404 そんなページはないでやんす
</html>
<?php
exit;
}
?>
0851nobodyさん
2007/04/25(水) 12:54:42ID:j8qAcKjIキャッシュが3GBになってたよ…
0852nobodyさん
2007/04/25(水) 12:54:59ID:1/ImtFz/アクセスする度にDBから読み込まれている状態になっているのですが、
これだとサーバに負荷がかかって、ページの読み込みが遅くなる気がします。
こういう、あまり変動しないデータを読み込んで表示させる場合、
どういう風なソースを書けばいいのでしょうか?
0853nobodyさん
2007/04/25(水) 13:04:12ID:???DB 側を更新したらその HTML 吐き出すとか
ページ丸ごとが難しければ、部分部分を吐いて include とか
0854852
2007/04/25(水) 13:42:18ID:???例えばこういう流れでしょうか?
DBにカテゴリを登録(編集)→静的なHTMLページを作成
→そのHTMLを公開するサイトで読み込み
現在は、カテゴリ一覧の部分は別ファイルにしてincludeするようにしています。
そのファイル内にwhile($row = mysql_fetch_array($res)){ 〜 }
みたいなソースを書いて、カテゴリ一覧を表示していました。
ちょっとHTMLの件は試してみます。ありがとうございました。
0859nobodyさん
2007/04/25(水) 14:50:14ID:???0861nobodyさん
2007/04/25(水) 15:35:07ID:dvPhqtzS0862nobodyさん
2007/04/25(水) 15:54:34ID:???このURLのスクリプトなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なんですか?
0863862
2007/04/25(水) 15:55:24ID:???<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
0864862
2007/04/25(水) 15:56:44ID:???<head>
<title>Sample01</title>
</head>
<body>
sample.php
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
0865nobodyさん
2007/04/25(水) 15:56:58ID:???日本語勉強してから来いカス
0866862
2007/04/25(水) 15:58:15ID:???○ なんでですか
0867nobodyさん
2007/04/25(水) 16:01:36ID:???o...rz
訂正します
――――――――――――――――――――
Sample01.php
<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
0868nobodyさん
2007/04/25(水) 16:02:10ID:???0869nobodyさん
2007/04/25(水) 16:03:30ID:???0870862
2007/04/25(水) 16:21:14ID:???0871870
2007/04/25(水) 16:23:37ID:???このURL内のコーディングなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なぜでしょうか?
以下のような具合
――――――――――――――――
一行掲示板
書き込む内容を入力してください。
----------------------------------------
|入力フォーム| |書込|
----------------------------------------
記事NO.0:
----------------------------------------
記事NO.1:
----------------------------------------
記事NO.2:
----------------------------------------
0872nobodyさん
2007/04/25(水) 16:24:19ID:???0873870
2007/04/25(水) 16:24:47ID:???<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。<hr>
<form name="form" action="./sample01.php" method="POST">
<input name="body" type="text" size="40">
<input type="submit" value="書込"><hr>
</form>
<?php
$data = file("./data.txt");
for($i=0; $i<sizeof($data); $i++){
print "記事NO.${i}:${data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
0874870
2007/04/25(水) 16:25:35ID:???<?php
$body = $_REQUEST["body"];
$body = $body."\n";
?><html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
echo "書き込み完了<br>",
"<a href=\"./form.php\">戻る</a>";
?>
</body>
</html>
0875nobodyさん
2007/04/25(水) 16:26:27ID:???0876870
2007/04/25(水) 16:26:47ID:???<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。
<hr>
<form name="form" action="./sample01.php" method="POST">
<input name=""body" Type="text" size"40">
<input type="submit" value="書込">
<hr>
</form>
<?php
$data = file("./data.txt");
for ($i=0; $i<count($data); $i++) {
print "記事NO.{$i}:{$data[$i]}<br>\n<hr>";
}
?>
</body>
</html>
0877870
2007/04/25(水) 16:27:30ID:???<html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$body = $_REQUEST["body"]."\n";
$fp = fopen("./data.txt","a");
fwrite($fp,$body);
fclose($fp);
?>
書き込み完了<br>
<a href="./data.txt" target="_blank">中身を見る</a><br>
<a href="./form.php">戻る</a>
</bady>
</html>
0878nobodyさん
2007/04/25(水) 16:29:51ID:???スマートとかほざくなよw
段階踏んでから言えカスが
0881nobodyさん
2007/04/25(水) 16:43:37ID:j8qAcKjI代わりになる関数はありませんか?
0882nobodyさん
2007/04/25(水) 16:45:41ID:???0883nobodyさん
2007/04/25(水) 16:47:18ID:j8qAcKjI0884nobodyさん
2007/04/25(水) 16:54:22ID:???え、さくらってそうなんだ。
古い鯖利用だからか?
wing2.jpならいけるよ。
初年2000円で独自ドメイン運用可
翌年以降1500円。
0885nobodyさん
2007/04/25(水) 16:55:40ID:j8qAcKjI0888nobodyさん
2007/04/25(水) 17:26:19ID:???http://pc11.2ch.net/test/read.cgi/hosting/1154825445/
好きに評価したらいい
俺は絶対に遠慮する鯖です
0890nobodyさん
2007/04/25(水) 18:08:21ID:bcYDhRpq■ このスレッドは過去ログ倉庫に格納されています