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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/12(木) 16:54:47ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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:43dSuuSB
>>791
791さん、ありがとうございます。
htmlspecialcharsで出力すると、< >と、そのまま&lt:>
がブラウザに出力されます。実体参照に戻されて、<>等と出力されるはずが、
そのまま出力されます。
htmlspecialcharsを使用するときは、何か特別な設定がいるんでしょうか?
m(..)m
0793nobodyさん2007/04/24(火) 15:01:19ID:43dSuuSB
もう少し色々調べて、トライ&エラーしてみます。
0794nobodyさん2007/04/24(火) 15:03:46ID:???
レン鯖でインストールしてくれないモジュールとかを使いたいときどうすればいいですか?
0795nobodyさん2007/04/24(火) 15:09:53ID:???
>>788
確認画面でhiddenに埋め込む方にはnl2brをかけなくていい
(表示する方だけにnl2brを行えばいい)
0796nobodyさん2007/04/24(火) 15:22:16ID:43dSuuSB
>>791
Success!!です。成功しました。とても助かりました。
今やっている部分を頭の中にまとめて理解したいと思います。
791さんのおかげで、モヤモヤが今スッキリしていきそうです。
(まだ、完全に理解していないw)パターンで覚えるよりも、仕組みをキッチリ
理解していこうと思います。速レスでとても感謝しています。
ありがとうございました。m(__)m
0797nobodyさん2007/04/24(火) 16:26:10ID:???
>>777
俺が昔作ったやつ
http://nike.s151.xrea.com/qreki.phps
0798nobodyさん2007/04/24(火) 16:27:18ID:???
>>797
うわぁ^^;相当暇だったんだな
07996032007/04/24(火) 16:41:18ID:YIKrD66n
>>677
あれから調べてみましたが、
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虚弱PHP2007/04/24(火) 16:47:27ID:???
>>799
俺も推測でしかないけど、
session_regenerate_id()で問題出ないなら、
余計にsession_regenerate_id(true)の問題じゃなくて、
ブラウザ側の問題だと思うよ。

ブラウザがサーバーから返されたCookieヘッダを解釈・設定する前に
F5押したとかじゃないかなぁと思うんだけど。
0801nobodyさん2007/04/24(火) 16:48:18ID:???
>>797
お前相当暇人だなw
不覚にもこれには笑ったぜw
ttp://nike.s151.xrea.com/okki.php
0802nobodyさん2007/04/24(火) 16:57:34ID:EJNwdirJ
>>794
適当な場所にライブラリパスを通して、そこにファイルコピーすればいい
0803nobodyさん2007/04/24(火) 17:11:14ID:???
>>797
なにやってるのかさっぱり分かんねぇorz
0804nobodyさん2007/04/24(火) 17:11:47ID:???
>>801
なんだよこれw
0805nobodyさん2007/04/24(火) 17:12:19ID:???
>>801
ちょwさっきと比べてデカくなってないかw
08066032007/04/24(火) 17:17:38ID:YIKrD66n
>>800
どうも
>>603 で書いたとおり、HTTP リクエスト、レスポンス上で見る限りは
Cookie, Set-Cookie は切り替わったものを正しくやり取りしてるんですよね

今、独自 DB コンテナの方で session_regenerate_id(true) の相当の機能を
作成中でして、これで連続リロードしてみれば
ブラウザ側動作の影響かどうかある程度はっきりすると思います

ブラウザ側動作の影響なら、連続リロードした人間だけの問題になりそうなので
この件は無視できそうです

>>801
わらた
08077972007/04/24(火) 17:58:01ID:???
作ったのは間違いで参考元のを書き直しただけでした
>>803俺も何やってるのかさっぱりわからん
0808nobodyさん2007/04/24(火) 18:27:05ID:???
おっきワロスwwwwwwwwww
0809nobodyさん2007/04/24(火) 18:33:05ID:???
おっきのソースがないぞ
0810虚弱PHP2007/04/24(火) 18:45:46ID:???
>>806
うむむ。そうかぁ。
save_handlerがmmだと切れるって話があったような気がするんだけど、
今回はfilesみたいだしね。
08116032007/04/24(火) 19:25:37ID:YIKrD66n
>>810
そちらのご推測通りでした
独自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:???
おっきのソースください
0813虚弱PHP2007/04/24(火) 19:55:52ID:???
>>811
ご苦労様。
検証は参考になりました。なるほど。
0814nobodyさん2007/04/24(火) 22:36:23ID:DXOCGV6O
質問させてください

長ったらしいテキストファイルの1部分のみ情報を取り込みたいのですが、
そういうのに適した関数等はありますでしょうか。
0815nobodyさん2007/04/24(火) 22:39:13ID:???
fopen
0816nobodyさん2007/04/24(火) 22:55:02ID:???
fopenよりfileやfile_get_contentsのほうがいいんじゃね
0817nobodyさん2007/04/24(火) 23:10:20ID:???
>>816 IDだそうね^^
0818nobodyさん2007/04/24(火) 23:38:17ID:???
youtubeなどのフラッシュをRimoやニコのように動画データだけ抜き出したいのですが、
それらの仕組み、もしくはそのシステムが構築できてあるソースのURLなど知っている人がいましたら教えていただけないでしょうか。
0819nobodyさん2007/04/24(火) 23:38:55ID:???
それどっかのブログで検証してたよ
URLはシラネ
0820nobodyさん2007/04/24(火) 23:51:38ID:???
まず自分で調べたのか?調べたなら成果も書く
youtubeは解析されまくってるから仕様なんかはすぐ出てきそうだけど
0821nobodyさん2007/04/25(水) 01:01:57ID:j8qAcKjI
.htaccessで文字コードをEUCにしたんだが
PHP見るとデフォルトでSJISになる
PHPに記述しないでデフォルトをEUCにできないかな
0822nobodyさん2007/04/25(水) 01:05:05ID:???
>>817
^^?
0823nobodyさん2007/04/25(水) 01:50:29ID:???
>>821
んならばHTMLのMETAタグでどうだ!
0824nobodyさん2007/04/25(水) 01:52:00ID:j8qAcKjI
>>823
本のサンプル全部に記述がだるい…
0825nobodyさん2007/04/25(水) 01:58:40ID:???
そういうのって保存時のエンコード指定してないからじゃない?
タグに記述してもPHPで指定しても文字化けすることもあるしね
EmEditorとかで保存時のエンコードをEUCに設定すればいいと思ふ
未確認
0826nobodyさん2007/04/25(水) 01:59:40ID:???
というかShift-JISで保存してるからだろ
0827nobodyさん2007/04/25(水) 02:01:56ID:j8qAcKjI
EUCで保存してあります…
0828nobodyさん2007/04/25(水) 02:03:16ID:???
じゃあおまえのPHPがSJIS好きだってことで諦めろ、おまえのせいじゃない。
0829nobodyさん2007/04/25(水) 02:03:56ID:???
じゃPHPのmb_string関連
0830nobodyさん2007/04/25(水) 02:10:20ID:j8qAcKjI
EUCで設定してあります…


EUCに嫌われたかな
0831nobodyさん2007/04/25(水) 02:19:38ID:???
mb_stringで指定しても無理だって話じゃないの?
それ前提で話してるのかと思ったけど
0832nobodyさん2007/04/25(水) 02:23:29ID:???
ブラウザのキャッシュが残ってるとかじゃないの?
そういうレベルの質問にしか見えない。
0833nobodyさん2007/04/25(水) 02:26:57ID:???
>>821
.htaccessの設定と
<html>のmetaタグの設定出しなさい。
0834nobodyさん2007/04/25(水) 02:28:29ID:j8qAcKjI
キャッシュでしたさーせん
0835nobodyさん2007/04/25(水) 02:34:58ID:???
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄
0836nobodyさん2007/04/25(水) 02:35:23ID:???
         ┌
         \
           >
          /
     (^^)/  なんてこったい!
    /\ ̄\
   /   \  \
  <      |   |
   \   / ̄ ̄\
    ゝ /       \
     /          >
    /        /
   /        /
0837nobodyさん2007/04/25(水) 02:36:25ID:???
>>834
うわ・・・原因探ってた時間返せ
0838nobodyさん2007/04/25(水) 02:56:56ID:???
いつも思うんだが、文字化けも一人で解決できない様な奴は
output_bufferingをonなんかにするなって話じゃない?
PHP初めて3年半たつがoutput_bufferingなんて一度もonにしたことねぇ
0839nobodyさん2007/04/25(水) 03:01:34ID:???
テスト環境や自鯖なら好き勝手にphp.iniいじれるけどな。
0840nobodyさん2007/04/25(水) 03:04:32ID:???
キャッシュ残していたのが原因で同じように一日潰したことがあったが、
そのときからキャッシュは1MBまでに制限してる。

更新する度にページをダウンロードするようには設定できないのかな。
0841nobodyさん2007/04/25(水) 03:12:30ID:???
レン鯖でも.htaccessで設定すりゃいいじゃんoutput_bufferingくらい
0842nobodyさん2007/04/25(水) 03:14:01ID:???
全てのレン鯖でhtaccessが使えると思ったら大間違いだぜ。
0843nobodyさん2007/04/25(水) 03:14:46ID:???
環境に左右されないようなプログラムを目指せよ
0844nobodyさん2007/04/25(水) 03:17:52ID:???
なんでいきなりoutput_bufferingの話になってんだ?
0845nobodyさん2007/04/25(水) 03:49:52ID:???
おっきが output_buffering を利用している模様
0846nobodyさん2007/04/25(水) 04:18:44ID:???
なんにしろブラウザのキャッシュにoutput_bufferingは関係ないな。
0847nobodyさん2007/04/25(水) 08:57:51ID:???
レン鯖でいきなり開発とかすんなよ!
0848nobodyさん2007/04/25(水) 09:36:06ID:Hk5iwc7F
GETを使って動的ページを作ろうと思うのですが
たとえば
index.php?hoge=0001
というページは存在するので、問題なく表示します。しかし
index.php?hoge=0002

index.php?hoge=
などのような場合今だと白紙?のページになります。
そこを、404や403を返すようにしたいのですが、どうすれば出来るのでしょうか?
0849nobodyさん2007/04/25(水) 09:44:28ID:???
header()
0850nobodyさん2007/04/25(水) 11:53:14ID:???
>>848
if (存在しないページ) {
header( レスポンスコード404を送る );
// 以下自分の好きな404のページ
?>
<html>
404 そんなページはないでやんす
</html>
<?php
exit;
}
?>
0851nobodyさん2007/04/25(水) 12:54:42ID:j8qAcKjI
>>840
キャッシュが3GBになってたよ…
0852nobodyさん2007/04/25(水) 12:54:59ID:1/ImtFz/
現在はカテゴリ一覧とか広告バナーとか
アクセスする度にDBから読み込まれている状態になっているのですが、
これだとサーバに負荷がかかって、ページの読み込みが遅くなる気がします。

こういう、あまり変動しないデータを読み込んで表示させる場合、
どういう風なソースを書けばいいのでしょうか?
0853nobodyさん2007/04/25(水) 13:04:12ID:???
>>852
DB 側を更新したらその HTML 吐き出すとか
ページ丸ごとが難しければ、部分部分を吐いて include とか
08548522007/04/25(水) 13:42:18ID:???
>>853
例えばこういう流れでしょうか?

DBにカテゴリを登録(編集)→静的なHTMLページを作成
→そのHTMLを公開するサイトで読み込み

現在は、カテゴリ一覧の部分は別ファイルにしてincludeするようにしています。
そのファイル内にwhile($row = mysql_fetch_array($res)){ 〜 } 
みたいなソースを書いて、カテゴリ一覧を表示していました。

ちょっとHTMLの件は試してみます。ありがとうございました。
0855nobodyさん2007/04/25(水) 14:17:54ID:???
>>854
静的なHTMLページを表示すればいいじゃん
てかコードで説明するな。口で説明しろ。
0856nobodyさん2007/04/25(水) 14:21:27ID:???
>>855
??
0857nobodyさん2007/04/25(水) 14:27:36ID:???
>>856
!?!?
0858nobodyさん2007/04/25(水) 14:39:28ID:???
>>855
??
>>856
!!
>>857
?!?!
0859nobodyさん2007/04/25(水) 14:50:14ID:???
die('ぬるぽ');
0860nobodyさん2007/04/25(水) 15:21:00ID:???
>>858
??
0861nobodyさん2007/04/25(水) 15:35:07ID:dvPhqtzS
>>855 ^^ ><
0862nobodyさん2007/04/25(水) 15:54:34ID:???
http://plog.pya.jp/program/php/lesson07/sample01.html
このURLのスクリプトなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なんですか?
08638622007/04/25(水) 15:55:24ID:???
form.php

<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>
08648622007/04/25(水) 15:56:44ID:???
<html>
<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:???
意味不明
日本語勉強してから来いカス
08668622007/04/25(水) 15:58:15ID:???
× なんですか
○ なんでですか
0867nobodyさん2007/04/25(水) 16:01:36ID:???
>>864にコピーミスあり
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:???
原因が知りたい
08708622007/04/25(水) 16:21:14ID:???
間違いがあってわかりづらいと思うので、最初から書き直します。
08718702007/04/25(水) 16:23:37ID:???
http://plog.pya.jp/program/php/lesson07/sample01.html

このURL内のコーディングなら動くんだけど、スマートにしようと書き換えてみた。
すると、書き込んでも空の行が増えていくだけ。
なぜでしょうか?

以下のような具合
――――――――――――――――

一行掲示板
書き込む内容を入力してください。
----------------------------------------
|入力フォーム| |書込|
----------------------------------------

記事NO.0:

----------------------------------------
記事NO.1:

----------------------------------------
記事NO.2:

----------------------------------------
0872nobodyさん2007/04/25(水) 16:24:19ID:???
いや、もう書かないで
08738702007/04/25(水) 16:24:47ID:???
まずはサイト例(ちゃんと動く)form.php

<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>
08748702007/04/25(水) 16:25:35ID:???
サイト例 sample.php

<?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:???
死ね
08768702007/04/25(水) 16:26:47ID:???
書き換え版 form.php

<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>
08778702007/04/25(水) 16:27:30ID:???
書き換え版 sample.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>
0878nobodyさん2007/04/25(水) 16:29:51ID:???
そんなのも一人でどうにか出来ない様な奴が
スマートとかほざくなよw
段階踏んでから言えカスが
0879nobodyさん2007/04/25(水) 16:33:01ID:???
>>870酷すぎ
リアルで死ね
0880nobodyさん2007/04/25(水) 16:34:04ID:???
>>878
了解
0881nobodyさん2007/04/25(水) 16:43:37ID:j8qAcKjI
PHP4でsimplexmlが使えないのですが
代わりになる関数はありませんか?
0882nobodyさん2007/04/25(水) 16:45:41ID:???
PHP5を使えばいいんじゃね?
0883nobodyさん2007/04/25(水) 16:47:18ID:j8qAcKjI
さくら鯖が5対応してないんで
0884nobodyさん2007/04/25(水) 16:54:22ID:???
>>883
え、さくらってそうなんだ。
古い鯖利用だからか?

wing2.jpならいけるよ。
初年2000円で独自ドメイン運用可
翌年以降1500円。
0885nobodyさん2007/04/25(水) 16:55:40ID:j8qAcKjI
co.jpてどの鯖でも使えたっけ?
0886nobodyさん2007/04/25(水) 17:04:25ID:???
>>885
DNSサーバー側で飛ばす先のIPアドレス設定さえすれば関係あんめな。
ドメインが取れるか自体は別問題
0887nobodyさん2007/04/25(水) 17:20:37ID:???
>>884
なにこれ安すぎ
信用はできないけど面白いな
0888nobodyさん2007/04/25(水) 17:26:19ID:???
wing2
http://pc11.2ch.net/test/read.cgi/hosting/1154825445/
好きに評価したらいい
俺は絶対に遠慮する鯖です
0889nobodyさん2007/04/25(水) 17:28:40ID:???
>>888
ゲェ・・・ありがとう。
0890nobodyさん2007/04/25(水) 18:08:21ID:bcYDhRpq
PHPでajax使うのはどのライブラリがベストですか?
0891nobodyさん2007/04/25(水) 18:35:42ID:???
>>883
5を独自コンパイルすればいいじゃん。簡単だよ。
どうせcgi版なんだから。
■ このスレッドは過去ログ倉庫に格納されています