△▲ WebProg 初心者の質問 Part13 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/09(木) 16:05:29ID:???質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。
2ch 総合ガイド
http://www.2ch.net/guide/
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
関連情報は
>>2-3
0303nobodyさん
2006/03/11(土) 19:59:12ID:???レッツPHPのソースの
echo $err;
exit;
の2行の間に
(1)ファイルロック
(2)ファイルを開く
(3)エラーログを任意の書式で出力
(4)ファイルを閉じる
(5)ロックを外す
のコードを書けばOKです
0304299
2006/03/11(土) 20:15:13ID:???(1)ファイルロック
(2)ファイルを開く
(3)エラーログを任意の書式で出力
(4)ファイルを閉じる
(5)ロックを外す
のソースはどこを参考にすればあるのでしょうか?
すみません
0305nobodyさん
2006/03/11(土) 21:02:14ID:???$dat = "./log.dat";
って書いて、後は>>303の言う場所に以下を書き込む。
$fp = fopen($dat, "a+");
flock($fp, LOCK_EX);
fputs($fp, $_SERVER['REMOTE_ADDR'];
fclose($fp);
テストしてないけど、こんな感じ。
0306301=303
2006/03/11(土) 21:34:07ID:???んだよ。俺には聞いてないんじゃなかったのか?
0307nobodyさん
2006/03/11(土) 21:49:34ID:???0309nobodyさん
2006/03/11(土) 23:38:52ID:???閉じカッコ抜けぐらいは自分で気付いていただきたい。
あと実際には開けなかった際のエラー処理、改行を書き出す等処理が日東洋
0310299
2006/03/11(土) 23:45:49ID:???logの書き出しも成功しました
ところでこの認証はIPが変わるまで持続しますか?
0312nobodyさん
2006/03/12(日) 22:18:34ID:???ttp://www.phpweb.jp/accelyzer/ をダウンロードして設置手順通りに設置
解析したいウェブページの、カウンターを表示したい場所に、次の文字列を記述します。コピペ推奨。
<?include("./accelyzer/store.php");?> ←index.phpに挿入
HTMLファイルの拡張子を「.php」に直します。
movableのテンプレート index.htmを index.phpに変更
さくらの鯖と独自ドメインを取得
http://homoaniki.com/ にアクセスすると
http://homoaniki.sakura.ne.jp/blog/index.phpに転送するように設定
ブログを見るとアクセス解析が反映されていません、何が問題だったのでしょうか教えてください
0313nobodyさん
2006/03/12(日) 23:10:06ID:???予想される原因
(1) そのスクリプトが同一ホスト内からの行き来は無視してる可能性も
(2) (1) が考えられる場合 → / が受け取ったリファラは JavaScript の replace() で /redirect.html へ移動すると、
redirect.html は / で受け取ったリファラを受け取れたと思ったが、ブラウザによって動作は違うかも知れん
(3) てゆか、そのスクリプトはちゃんと動いてるん?
(4) てゆか、あんたの契約したプランでPHP動くんか?
0314nobodyさん
2006/03/12(日) 23:16:38ID:???マルチポストうぜえ
http://pc8.2ch.net/test/read.cgi/php/1104624784/575
0315299
2006/03/12(日) 23:31:51ID:???logファイルでの質問です、IPアドレスですが
100.100.100.100のIPとして
連続認証すると100.100.100.100100.100.100.100
となってしまいます、IPを個々に区切るのにはどうすればよいでしょうか?
0318nobodyさん
2006/03/13(月) 16:41:37ID:???サーバーソフトをインストールしてperlを動かす…以外に、簡単な方法ないですか?
お手軽に動作確認したいんだけどなあ…。
0319nobodyさん
2006/03/13(月) 17:07:12ID:???またはプロンプトでperl hoge.cgi[enter]
0320nobodyさん
2006/03/13(月) 23:31:51ID:VsZ33fK9とあるURLにPOSTするCGIを作っています。
送信元のエンコードはEUCなんですが、
送信先のパラメータはSJIS限定で受け取る仕様になっています。
POSTするCGIは、PHPで動的に、全てHIDDENタイプで作成しています。
あらかじめHIDDENが埋め込まれているページをPHPで作成した後、
ボタンを押すとPOSTという流れになっています。
このような状況なのですが、2バイト文字を送信すると文字化けしてしまいます。
送信元のページのエンコーディングがEUCなので文字化けするのが当然と思い、
送信する2バイト文字の部分だけmb_convert_encodingでSJISに変換して
ページを作成しましたがこれでも失敗しました。
(CGIページのソースは、EUCで開くとPOSTの値の部分だけが文字化けしていて、
SJISで開くとPOSTの値以外の2バイト文字が化けている状況です)
この方法は理屈として間違っているんでしょうか?
0321nobodyさん
2006/03/14(火) 00:24:24ID:???0322nobodyさん
2006/03/14(火) 01:04:08ID:???POSTされた時にSJIS変換すればよいです
0323nobodyさん
2006/03/14(火) 03:21:19ID:+hWFz/5mにスレッド単位でクリックされる度にカウントされる
投票ボタンを取り付けたいのですが。
どなたかどうプログラムすれば良いか教えてください。
投票スクリプトと連動させようかと考えましたが僕のスキルじゃ無理ですた
例で言うとhttp://sp.moech.net/php/imgboard9/moepic.htmlの様な感じです。
0324nobodyさん
2006/03/14(火) 04:12:46ID:???joyful noteに元のファイル名表示させて
0325nobodyさん
2006/03/14(火) 17:57:17ID:SDrkLE3ptomcat(4.1.31)は動作しているのですが、作ったものをブラウザで確認しようとしても
Error repot(404)と表示されます。
コンテキスト記述子はconfディレクトリ下に置いてありますが自信がありません。
どなたか、よろしくおねがいします。
0327nobodyさん
2006/03/14(火) 18:37:00ID:SDrkLE3pソースとは、何を書けばよいでしょうか?
すいません、、、
0328nobodyさん
2006/03/14(火) 18:43:12ID:???0329nobodyさん
2006/03/14(火) 18:59:53ID:???次にjakarta-tomcat-4.1.31/conf/jspBook.xml このようにコンテキスト記述子を置いています。
jspBook.xmlの中身は
<Context path="/jspBook"
docBase="/Users/username/Documents/workspace/jspAndServlet/">
</Context>
eclipse上からtomcatを起動(これはうまくいっているようです)、webブラウザから
localhost:8080/jspBook/view/chap08_jsp/sec01/helloJSPWorld.jspにアクセスすると
HTTP Status 404 - /jspBook/view/chap08_jsp/sec01/helloJSPWorld.jsp
type Status report
message /jspBook/view/chap08_jsp/sec01/helloJSPWorld.jsp
description The requested resource (/jspBook/view/chap08_jsp/sec01/helloJSPWorld.jsp) is not available.
との表示が出ます。
0330nobodyさん
2006/03/14(火) 19:54:19ID:???Tomcat5を扱っているテキストを見ながらTomcat4.1を動かそうとしてうまくいってませんでした。
Tomcat5が動けば問題なかったのでしょうが、なぜかJ2SE 5.0に更新しても認識してくれず…
xmlを追加するのではなくserver.xmlにcontext pathを書き加える事で解決しました。
もっと勉強します。ありがとうございました
0331nobodyさん
2006/03/14(火) 21:03:42ID:???eclipse上での環境設定が1.4のままであることに気がつきました(致命的!)。
1.5.0に設定(選択)し直し、tomcatも5.5を入れ直したところ問題なく動きました。
コンテキストもapache-tomcat-5.5.16/conf/Catalina/localhost/ 下に.xmlを置いて
問題なく動作しました。
初歩的なミスで大変ご迷惑をおかけしました。失礼いたします。
0332nobodyさん
2006/03/14(火) 21:44:41ID:???0333nobodyさん
2006/03/15(水) 02:33:08ID:JC2/F7sS最近掲示板を作っているんですが
1ページとか2ページとかページ移動とかできるようにしたいんですが...
どうすればいいのかわからないんです
-----------
# 1ページ最大数
$pagemax = 5;
# 処理
if ($no > $pagemax) { }
-----------
…処理がわからないんです。。。
わかるかたおしえててください!
0336nobodyさん
2006/03/15(水) 03:36:31ID:JC2/F7sSレスありがとうございます
すいません、みてませんでした
それで
KENTWEBのASKAのをみてみてやってみたんですが
ちゃんと移動するようにはできたんですが...
記事ごとに「次のページ」というボタンが表示されてしまいます。。。
-------
$i = 0;
〜〜〜〜〜〜〜書き込み出力〜〜〜〜〜〜〜〜
$i++;
next if ($i < $page + 1);
next if ($i > $page + $pagemax);
# ページごとに記事表示
print "<form action=\"$main\" method=\"POST\">\n";
$next = $page + $pagemax;
$back = $page - $pagemax;
if ($back >= 0) {
print "<input type=submit name=\"page$back\" value=\"前の$pagemax件\">\n";
}
if ($next < $no) {
print "<input type=submit name=\"page$next\" value=\"次の$pagemax件\">\n";
}
print "</form>\n";
------------------
というようにしてみたんですが…どうすれば解決するでしょうか?
質問してばかりですいません
0338nobodyさん
2006/03/15(水) 04:33:01ID:???0339nobodyさん
2006/03/15(水) 13:17:37ID:1XZxSsJwかいさでWebのグループウェアを作ることになったんですが、
@サイトを訪れるときにユーザーID、パスワード認証
AユーザーID、パスワードOKで表示されたページがログインページで
ユーザーID、パスを要求
という2段構えでいきたいんですが、これについて書いてある
おすすめの書籍またはWebサイトありますか?
なんかいきなしセッションとかなんとか認証とか言われてもわけわかめで
0340333
2006/03/15(水) 14:00:34ID:???0342nobodyさん
2006/03/15(水) 18:05:26ID:???0343nobodyさん
2006/03/15(水) 18:08:04ID:???掲示板等で最新書き込みだけ違う形で表示したいのですが、ifの後に
どういう条件で分岐させたらいいでしょうか?
別に書き込み順をつけるような改造が必要でしょうか?
0345nobodyさん
2006/03/15(水) 18:31:22ID:???何をもって最新とするんだ。
例えばここ3日以内を最新とするなら、書き込まれた日付と今の日付を比較すればいいし、
上位3レスくらいを最新とするなら、
書き込まれた
0348nobodyさん
2006/03/16(木) 00:03:27ID:???>何をもって最新とするんだ。
最新というのは書き込まれたのが(時間)一番新しいもの(一つ)という意味です。
>>346
$dateというのがありましたけど、このdateは下のものから取得しているようですが、何せ基本的なことがわかっていないので、もうちょっと勉強してみます。
ありがとうございました。
0349348
2006/03/16(木) 00:05:16ID:???sub time{
@MONTHS=(31,28,31,30,31,30,31,31,30,31,30,31);
@week=('日','月','火','水','木','金','土');
# 今日の日付(グリニッジ時間を読み込み、日本時間に変換)
($sec,$min,$hour,$mday,$tmon,$tyear,$wday)=(gmtime(time))[0..6];
if ($sec < 10) { $sec = "0$sec"; }
if($tyear > 97){
$tyear+=1900;
}else{
$tyear+=2000;
}
0350nobodyさん
2006/03/16(木) 00:06:10ID:???if(($year % 4 == 0)&&($year % 400 != 0)){
$MONTHS[1]=29;
}
$hour+=9;
if($hour > 23){
$hour-=24;
$mday++;
$wday++;
$wday=0 if($wday > 6);
if($mday > $MONTHS[$tmon]){
$mday=1;
$tmon++;
if($tmon > 11){
$tmon=0;
$tyear++;
}
}
}
$tmon++;
$year=$tyear;
$mon = $tmon;
$wday=$week[$wday];
$date="$year年 $mon月 $mday日($wday) $hour時 $min分 $sec秒";
0351348
2006/03/16(木) 00:26:59ID:???その書き込み自体と直接結びつける方法がぜんぜんわからないですね。
0352nobodyさん
2006/03/16(木) 00:32:41ID:???0353nobodyさん
2006/03/16(木) 01:05:31ID:???最新書き込み一つだけ、ちょっと違うスタイルで表示したいんですけど、
(例えばタイプライター風に打ち出す)。
0354nobodyさん
2006/03/16(木) 01:07:46ID:???datファイルそのものは数値ソートされて並んでいるんですけど、その一番上だけを
違う形で表示した言ってことなんですけど。
0355nobodyさん
2006/03/16(木) 01:10:26ID:???他はforで回して同じ書式で出力。
0356nobodyさん
2006/03/16(木) 01:35:18ID:???ありがとうございます。
ちょっと検索してみましたが、それがいいみたいです。
知識がないのでできるかどうかわかりませんが、やってみます。
またわからない事がありましたら聞きに来ますのでよろしくお願いします。
0357nobodyさん
2006/03/16(木) 09:26:48ID:???いや、もう来るな
0358nobodyさん
2006/03/16(木) 09:31:18ID:???0359nobodyさん
2006/03/16(木) 11:55:18ID:???2000年問題の一端を垣間見た思いだ。
まあもはや問題にはならんが
0360nobodyさん
2006/03/16(木) 12:12:40ID:???0361nobodyさん
2006/03/16(木) 12:49:03ID:???$tyear+=1900;
}else{
$tyear+=2000;
}
これじゃまずいだろ(97がどこから来たのかも謎だ)
しかもgmtimeして手動で閏年補正(しかも間違い)か
(´・ω・`) カワイソス
0363nobodyさん
2006/03/16(木) 19:22:07ID:???Flash Communication Server を探しているのですが新バージョンのFlash Media Server 2しかDLできないようです。
Flash Communication Serverのページは見つかったのですが、もう販売していないように見受けられます。
ttp://www.macromedia.com/jp/support/flashcom/
可能であればFlash Communication Serverを使用したいのですがもう無理なのでしょうか?
0364nobodyさん
2006/03/17(金) 01:17:50ID:ypCQkPkZ(1なら00000001、12なら00000012)
0365nobodyさん
2006/03/17(金) 01:27:26ID:???printf ("%08d", $number);
0366nobodyさん
2006/03/17(金) 01:55:34ID:ypCQkPkZありがとうございました!
0367nobodyさん
2006/03/17(金) 02:12:50ID:ypCQkPkZデータは
ID<>名前<>URL<>今日の投票数<>昨日の投票数
のようになっています。
今日の投票数の多い順に $lines = file("ログファイル");
0368途中できれちゃいました。
2006/03/17(金) 02:14:20ID:ypCQkPkZログファイル分割
↓
投票数多い順にソート
↓
再度結合させて並び替え
↓
分割して表示
とするしかないのでしょうか?
どうも回りくどいような気がするのですが。。。。
0369nobodyさん
2006/03/17(金) 02:39:20ID:???@array = { (split ('<>', $b) )[3] <=> (split ('<>', $a) )[3] } @array;
だけど、PHPはどうだろ?usortしらべてみてちょ。
0370nobodyさん
2006/03/17(金) 02:39:36ID:???0371途中できれちゃいました。
2006/03/17(金) 02:50:10ID:ypCQkPkZ了解しました!
↓ソースは現在こんな感じなんです
$logfile = "blog.dat";
$lines = file($logfile);
echo "<table border='1' bordercolor='#3366ff' cellspacing='0' cellpadding='2'>
<tr align=center><td>順位</td><td>紹介</td><td>本日の投票数</td><td>昨日の投票数</td></tr>";
for($h=0;$h<count($lines);$h++){
$tmplines = file("./tmp/blogtable.html");
list($id,$url,$name,$intro,$d_access,$w_access) = explode("<>",$lines[$h]);
for($i=0;$i<count($lines);$i++){
$tmplines[$i] = str_replace("&num",$count,$tmplines[$i]);
$tmplines[$i] = str_replace("&url",$url,$tmplines[$i]);
$tmplines[$i] = str_replace("&name",$name,$tmplines[$i]);
$tmplines[$i] = str_replace("&intro",$intro,$tmplines[$i]);
$tmplines[$i] = str_replace("&d_access",$d_access,$tmplines[$i]);
$tmplines[$i] = str_replace("&w_access",$w_access,$tmplines[$i]);
echo $tmplines[$i];
}
}
echo "</table>";
0372nobodyさん
2006/03/17(金) 07:36:09ID:???<?php
function hoge($a, $b) {
list (,,,$aa,) = explode("<>", $a);
list (,,,$bb,) = explode("<>", $b);
return ($bb - $aa);
}
$list[] = "aa<>bb<>cc<>5<>6";
$list[] = "dd<>ee<>ff<>3<>8";
$list[] = "gg<>hh<>ii<>10<>1";
echo "<pre>\n";
print_r($list);
echo "\n";
usort($list, "hoge");
print_r($list);
echo "</pre>";
?>
0373nobodyさん
2006/03/17(金) 23:38:39ID:ypCQkPkZありがとうございます。
何行かわからないログファイルをソートしていくときはfor文とかでまわせばいいんでしょうか。。。。
0374nobodyさん
2006/03/17(金) 23:43:47ID:???phpはどうなんでしょ?>php屋さん
0375nobodyさん
2006/03/18(土) 11:58:43ID:GWKJv43r項目数として300項目もの大量のデータを一覧画面に表示させたいと思っております。
(横に300項目です。データの分類はなく、キーにひもづいたべたな300項目です。)
表示件数は抑制するとして、やはり300項目もの大量ですと、横スクロールが多くなり操作性を損なうことになるかと思います。
ページ切り替えなど対策はいくつかあるかと思いますが、
比較的簡単な技術で操作性を損なわないような良い方法はないでしょうか。
ページ切り替えのコンポーネントやクライアント側のスクリプトでウィンドウ分割など
うまくいかないものか模索しております。
#Ajaxとかで何かできないかなと考えております。
ServletのWEBアプリケーションです。
0376nobodyさん
2006/03/18(土) 12:29:57ID:???0377nobodyさん
2006/03/18(土) 17:10:10ID:???0378nobodyさん
2006/03/18(土) 19:32:53ID:PidsL1Fkhoge()でfor文をログファイルの行数分まわして、アクセス数を格納した配列を作って
アクセス数のみを格納した配列を作っても、
usort($list,"hoge");
で関数を参照した時点では、その配列はhoge()のループカウンタでまわしたものであって、
IDやら名前やらという情報はそこから参照することってできませんよね>?
0379nobodyさん
2006/03/19(日) 03:01:51ID:???データに対してどんな閲覧(アクセス)が出来たら快適なんだろう?
とりあえず表は縦長に組替えた上で表示列選択機能つけるとか。
0380nobodyさん
2006/03/19(日) 11:03:38ID:vocIfk6Gそうですね。どう考えても縦の方が画面を有効に使えるし、いいですね。
>display:noneとDHTML活用して表示非表示切り替えたら良いんじゃないの?
これって、よくXMLとかで+を押すと閉じたり、開いたりするやつのことですか?
それいいですね。ちょっと考えて見ます。
0381nobodyさん
2006/03/19(日) 13:16:51ID:???for文の上手な訳が見つかりません。
どういう表現をすれば良いですか?
0382nobodyさん
2006/03/19(日) 13:31:15ID:ADveJ82pAからBまで
0383nobodyさん
2006/03/19(日) 13:36:04ID:???英語の文章で使う時もそうだべ。
0384nobodyさん
2006/03/19(日) 17:08:17ID:???はじめるとしたらどれがおすすめですか?
難しさとか応用が利くとか将来性とかも教えて欲しいです。
0385nobodyさん
2006/03/19(日) 17:13:06ID:???選択肢としては Python・Ruby のどちらか。これっきりにしたいなら PHP とか。
まぁ一番有力なのは Scheme だね。SICP とか読んで勉強するといい。
0386nobodyさん
2006/03/19(日) 17:26:10ID:???PHPはウェブサーバでの運用を主な目的としているので、HTMLとの
親和性がとても良いです。
少ない学習量で実用的なプログラムを組むのにはPHPが最適かと。
0387nobodyさん
2006/03/19(日) 17:58:33ID:???確かにプログラミングの入門という観点で見るとSchemeは良いと思うが、
Schemeインタプリタが入っている鯖なんて殆どないから、
自鯖でやるくらいじゃないと無理があるだろ…
クロスコンパイルしてバイナリ作って放り込む手もあるけどさぁ
;; とScheme勉強中の漏れが言ってみるテスト
0388384
2006/03/19(日) 19:37:13ID:???レスどうもありがとうございます。
紹介していただいたものの中から、
ネット上のドキュメント等を参照してみて
理解しやすそうなものを試してみたいと思います。
少し検索してみたのですが、Schemeというのは他の言語と少し違うみたいですね。
0389nobodyさん
2006/03/20(月) 12:30:17ID:???0390nobodyさん
2006/03/20(月) 20:05:07ID:???MySQLとかDB2とかOracleとかPostgresとかありますが、環境構築が比較的易しいDB環境ってどれでしょうか?
0391nobodyさん
2006/03/20(月) 20:18:28ID:???0392nobodyさん
2006/03/20(月) 21:13:27ID:???0393nobodyさん
2006/03/20(月) 21:35:02ID:???0394nobodyさん
2006/03/20(月) 22:22:23ID:iXZRZ5Y3if ($sss=='11111'||$sss=='22222'||$sss=='33333') {;}
これをもっと簡潔に表記するにはどうしたらよいのでしょうか?
0396394
2006/03/20(月) 22:33:46ID:iXZRZ5Y3うっかりしていました。すみません、Perlです。
0397nobodyさん
2006/03/20(月) 22:40:58ID:???0398nobodyさん
2006/03/20(月) 22:42:42ID:???0399nobodyさん
2006/03/20(月) 22:45:29ID:???sub any(&@) {
my ($c, @arr) = @_;
&$c && return 1 foreach @arr;
0;
}
というのを作って
if (any { $_ == $sss } (11111, 22222, 33333)) {}
とかどうよ。モジュールが使えるならこれがList::MoreUtilsにある。
若しくはPerl6::JunctionかQuantum::Superpositionsを使うと、
もっと面白い書き方が出来る。
if ($sss == any(11111, 22222, 33333)) {}
0401nobodyさん
2006/03/20(月) 22:54:28ID:???■ このスレッドは過去ログ倉庫に格納されています