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

【PHP】くだらねぇ質問はここに書き込みやがれpart5

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/04/30(土) 00:12:53ID:OJfc9xBu
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
0077nobodyさん2005/05/03(火) 07:55:59ID:???
>>75
読み込めないときは
Failed opening 'DB.php' for inclusion (include_path='.;c:\php\PEAR')
こんなエラーじゃないのかな
0078752005/05/03(火) 08:17:58ID:???
>>77
ありがとうございます。
解決しました。
0079nobodyさん2005/05/03(火) 08:47:12ID:???
PHP+MySQLでショッピングカートを作るときに、みなさんが読んだ
参考になるようなよい書籍を教えてください。
0080nobodyさん2005/05/03(火) 09:06:42ID:???
>>79
ショッピングカートの良書
http://www.amazon.co.jp/exec/obidos/ASIN/4034314303/
0081nobodyさん2005/05/03(火) 10:31:05ID:???
PHPに限った話ではないのですが
データベースに書き込むとき書き込むデータの長さがカラム長を超えてしまうと
エラーになるので書き込み前にチェックしたいんですが、比較するカラム長は
・固定的に定義しておく(defineなどで)
・都度、取得する(mysqlならmysql_field_lenなどで)
のどちらがいいんでしょう?
データベースの定義が変更になった時のことを考えると都度、取得したほうが
いいんでしょうが、なんかとても無駄なことをしているような気がして
みなさんはどうされてます?
0082nobodyさん2005/05/03(火) 12:35:50ID:???
>>81
毎回のチェックは間違いなく無駄
データーはエラーではなくて切り捨てられるはず
0083nobodyさん2005/05/03(火) 13:18:39ID:???
うわぁぁ、すみません、すみません
>>82さんの仰るとおりカラム長を超えたデータを書き込んでもエラーにはならず
切り捨てられました
テストしたときのデータがめちゃくちゃ長いデータだったのでコネクションが
切断されてたみたいです
mysqlのnet_buffer_lengthあたりの制限に引っかかたのかも…
スレ汚しすみませんでした
0084nobodyさん2005/05/03(火) 14:22:02ID:???
ココ↓のパスワード制限を使ってサイトにメンバー専用のページのbbsを設けたのですが、
ttp://php.s3.to/simple/
他のページにもパスワード制限をかけたいと思いました。
この場合それぞれのページにいちいち制限をかけるのは入る人が面倒ですよね。
そこでたとえばメンバー専用のトップページを作って、そのトップページにパスワードを使って入れば、
そこに置かれているbbsなどは自由に入れるようにするにはどうしたらいいでしょうか?
サーバーのコントロールパネルのページとかでこういう方式になっていたりしますので、同じようにしたいのですが…
0085nobodyさん2005/05/03(火) 16:14:42ID:rT+xDv11
テキストフォームを10個ほど作り、値を入力します。
そして送信ボタンを押したときに
すべてのフォームに値が記入されていればAを出力
どこか一つでも値が無ければBを出力
ということをするにはどうしたらよいでしょうか?
0086nobodyさん2005/05/03(火) 16:29:09ID:???
>>85
自分の力でどこまでできたのか書いてみ。
0087852005/05/03(火) 16:48:00ID:???
だいぶ幼稚なプログラムですが

$row = 1;
$column = 1;

for($i = $_GET["det_size"];$i>0;$i--){
for ($j = $_GET["det_size"];$j>0;$j--){
$value = 'col'.$column.'row'.$row.'';
$text .= '<input name="col'.$column.'row'.$row.'" type="text" size="4" maxlength="4" value = "'.$_GET[$value].'"> ';
$row = $row + 1;
}
$text .= '<br>';
$row = 1;
$column = $column + 1;
}

$text .='<input type="submit" name="submit" value="Submit"> <input type="reset" value="reset"></form>';
ここまででテキストフォームを作ります。
この前にdet_sizeを入力してもらってdet_size×det_sizeのフォームを作ります。
0088852005/05/03(火) 16:48:48ID:???
続き
$row = 1;
$column = 1;
//$value = 'col'.$column.'row'.$row.'';
$dis_result='<div class="result">Result<br>';
while($column <= $_GET["det_size"]){
$value = 'col'.$column.'row'.$row.'';
$dis_result .= ' '.$_GET[$value].' ';
$row++;
if ($row > $_GET["det_size"]){
$column++;
$row = 1;
$dis_result .='<br>';
}
}
$dis_result .='</div>';
$text .= $dis_result;
フォーム内の値をdivで作ったボックスのなかに表示させます。
フォームが空欄でもResultのボックスが空のまま表示されてしまうので
もしフォームの値が一個でも空白ならエラーを返したいと思っています。
0089852005/05/03(火) 17:22:11ID:???
自己解決しました。スレ汚し失礼しました。
0090nobodyさん2005/05/03(火) 17:44:16ID:/WYzL+U+
Cで言うatoi()はありますか?
"05"などという文字列を5という数値に変換したいのです。
0091852005/05/03(火) 17:46:29ID:???
>>89
人の名前騙ってんじゃねえ!ボケ!
009285(本物)2005/05/03(火) 18:02:48ID:???
>>89>>91
ちょっとあなたたち誰ですか?
0093852005/05/03(火) 18:20:32ID:???
このスレダメポ
0094nobodyさん2005/05/03(火) 18:41:31ID:???
すみません、ホントに申し訳ありませんが、どなたか>>90お願いします。
0095nobodyさん2005/05/03(火) 18:48:00ID:???
>>90
暗黙の型変換が行われるから、わざわざ自前でやる必要はないと思うけど。
あえてやるならintval
$a="05";
$b=$a + 100;
$c=intval($a) + 100;
echo $b;
echo "<BR>";
echo $c;
0096902005/05/03(火) 18:50:07ID:???
>>95
ありがとうございました。助かりました。
0097nobodyさん2005/05/03(火) 20:59:50ID:???
http://cgi38.plala.or.jp/flash100/Accesslog.cgi
こういうヤツの作り方ってどうやるんですかね?
0098nobodyさん2005/05/03(火) 21:29:36ID:???
マルチさんお疲れさん
0099nobodyさん2005/05/03(火) 22:03:24ID:XdSRtjaM
ttp://ZR164007.ppp.dion.ne.jp/
っうはっwwwwwwwうぇwwwおkwwwwwwwwwwww
wwwwwwwwwwwwwwおkwww
っおkっうぇwwwwwwwwwwwwwwwwうはっ
wwwwwwwwwwwうはっっうはっwwwwwwwwww
0100nobodyさん2005/05/04(水) 00:49:38ID:???
>>97
こんなんすぐ作れるぞ!
$_SERVER変数とか使え。
0101nobodyさん2005/05/04(水) 01:43:31ID:4XtCwxJF
ひとつのページに
include(1)
include(2)

とやった場合
(1)で定義した定数は(2)には反映されないの?
01021012005/05/04(水) 01:49:41ID:???
すいませんやってみたらわかりました
0103nobodyさん2005/05/04(水) 01:50:54ID:4XtCwxJF
>>101
騙るなよ
0104軟式PHP2005/05/04(水) 03:25:40ID:???
やれってことじゃないのか?
0105nobodyさん2005/05/04(水) 11:31:05ID:???
PEARのDB.phpを使って、SELECTしたデータをHTMLのテーブルで表示させているのですが
質問させて下さい。

SELECTして取得するフィールドは不特定の場合、
結果からどうやって取得したフィールド名を取得するのでしょうか?

今までは、DB::connectで接続したあと、queryにてSQLを発行し、
fetchRowにてループにて全レコードを出力する時に、
最初の1レコード目の時にフィールド名を出力していましたが、
この方法だと抽出したレコードが0件の場合、何も表示されません。

取得したdb_resultオブジェクトの内容をprint_rにて除いてみたのですが、
そういった情報は無いようでした。
0106nobodyさんNGNG
2chのCGIのソース キボン...
read.cgi & bbs.cgi よろしく。

【参考】
・厨房により、連続更新が多発!read.cgiが呼ばれる回数はbbs.cgiの百倍!
0107842005/05/04(水) 14:02:33ID:CEPwDzrn
すいません、>>84の質問をお願いします…
0108nobodyさん2005/05/04(水) 15:05:33ID:???
>>105
質問の意図がよくわかんないんだけど
常にフィールド名が欲しかったらtableinfo()を使ってみるとか。
空のレコードセットのときfetchRow()がNULLを返すのは仕様どうり

>>107
http://merlion.cool.ne.jp/cgi/rest8/index.htm
↑みたいなの使って一つのフォルダに認証かけて
そのフォルダ以下にトップページやBBSとか置けばいい
01091052005/05/04(水) 15:16:32ID:???
>>108
ありがとうございます。
解決いたしました。
tableinfo()自体知りませんでした。
01101072005/05/04(水) 15:45:24ID:CEPwDzrn
>>108
ありがとうございます!.htaccess機能ってやつですね。
ちなみに教えて頂いたhttp://merlion.cool.ne.jp/cgi/rest8/index.htmのページでは
perlを使ったプログラミングのようですが、
phpを使った認証のプログラムはどこかにないでしょうか?
0111nobodyさん2005/05/04(水) 21:31:13ID:tDb8HgqQ
みなさんSQLiteって使ってるんすか

ごく小規模のメール配信とかサイトにDB使いたくて。
こんなモノがあるとは知らずPostgreのつもりだったんですが
存在を知って以来気になってます。
どのくらいまで使えるモノなんでしょう?
0112nobodyさん2005/05/04(水) 22:54:28ID:???
>>111
PHP4とMySQL4の組み合わせが最強
0113nobodyさん2005/05/04(水) 23:04:11ID:???
俺は、PostgreSQL使える環境にあるならPostgreSQLを奨めるけどね。
どんな利用方法しても、ライセンスが絡む事は無いし、
MySQLで出来ること以上の事がPostgreSQLは出来る。
確かに速度はMySQLだが、その辺はたいした問題じゃない。
0114nobodyさん2005/05/05(木) 00:41:41ID:???
WindowsやMacintoshならMySQLかSQLiteかAccess
UNIXやLinuxならPgSQLかMySQL
本格的にやるならOracle
0115軟式PHP2005/05/05(木) 02:29:14ID:???
最初はOracleじゃなくてPostgreSQLやMySQLでいいんでないかい。
0116nobodyさん2005/05/05(木) 02:42:19ID:???
その前にPHPではなくJavaを使う罠。
0117nobodyさん2005/05/05(木) 06:57:41ID:j3QMEyoA
<? php
echo"$total";
for($i=1;$i<=100;$i++){$total+=$i;}
? >

$totalをfor〜より前で表示させたいんですけど、
どうすればよいでしょうか?
0118nobodyさん2005/05/05(木) 07:41:24ID:???
もう一度参考書なりマニュアルなりを読み直した方が・・・
0119nobodyさん2005/05/05(木) 07:52:10ID:2TWoJUS+
$words = abcd;
$count = strlen($words);
$num = 0;
while ($num <= $count){
preg_match("/^.{0,$num}?(.).*/", $words , $spel);
echo "$num | $spel[$num] <br>\n";
$num++;
}

上記のようにwhileを使って、$wordの全部を一文字ずつ配列に入れたいのですが、
最初の一文字しか配列に入りません。
実行すると、
0 | abcd
1 | a
2 |
3 |
4 |
となって、途中から配列に入らないのですが、どうしたら良いのでしょうか。
0120nobodyさん2005/05/05(木) 08:32:49ID:???
>>119
while ($num < $count){ // 4文字なので 0〜4でいいはず
 preg_match("/^(.{0,$num})?(.).*/", $words , $spel); // $spelに入るのは括弧付きのサブパターン
 echo "$num | $spel[2] <br>\n"; // $spel[0] : 全体, $spel[1] : 1つ目のサブパターン $spel[2] : 2つ目
}
アルファベットだけなら、whileループの中で echo $words[$num]."<br>"; だけでいい希ガス
01211192005/05/05(木) 08:33:10ID:???
自己解決しました。

文字列を配列として参照することで、一文字ずつ取り出せるのですねーー知りませんでした。
01221202005/05/05(木) 08:33:55ID:???
訂正
× // 4文字なので 0〜4でいいはず
○ // 4文字なので 0〜3でいいはず
01231192005/05/05(木) 08:36:19ID:???
>>120 僅差でw
ありがとうございました!もっと勉強してみます
0124nobodyさん2005/05/05(木) 08:46:13ID:???
$str = "abcdef";
$num = 1;
while ($num <= strlen($str)){
$spel[] = substr($str, 0, $num);
}
0125nobodyさん2005/05/05(木) 08:48:31ID:???
一文字ずつって a,b,c...って取りたかったのか。
マニュアルのpreg_replaceの項に
まったく同じことするサンプルがあるぞ
01261192005/05/05(木) 09:46:57ID:???
>>125わかりました。もう一度チェックしてみます
0127nobodyさん2005/05/05(木) 09:48:00ID:???
Apache2を使ってます。

CPU負荷低減・高速化のためにPHPA(PHP Accelerator)を入れようかと思っています。
が、Apache2では「ただし、スレッド機能は無効」になるとか・・・
ttp://www.asial.co.jp/products/ioncube/accelerator/products.php

実際にApache2で使った場合、どうなんでしょか?
0128nobodyさん2005/05/05(木) 11:37:05ID:???
疑問になったので質問です。
クラス内の変数をさまざまな表現で表示したい時は
「表示させる関数を用意する」と
「表示させるクラスを用意する」、どちらが一般的なのでしょうか。
もし使い分ける、などならメリットとデメリットも教えて頂きたいです。
PHPもオブジェクト指向も初心者なので的外れな質問だったらごめんなさい。
なお環境はPHP4.3.10 AN http WindowsXPです。
*/
//クラス内に表示させる関数を用意する-----------------
$text = new Text;
echo $text->i();
class Text{
var $a="AAA";
function i(){
return "<i>{$this->a}</i><br>";
}
}
exit;
//クラス外に表示させるクラスを用意する-----------------
$text = new Text;
$html = new Html;
echo $html->i();
class Text{
var $a="AAA";
}
class Html{
function i(){
global $text;
return "<i>{$text->a}</i><br>";
}
}
0129nobodyさん2005/05/05(木) 11:42:30ID:???
下のは気持ち悪すぎる
0130nobodyさん2005/05/05(木) 11:52:52ID:???
具体的に何をしたいのか分からないけど、
とりあえず、そのサンプルに上げてるようなことしたいなら、
普通にHTMLのタグくっつけて書いた方が楽じゃないか?
融通も利くし。
0131nobodyさん2005/05/05(木) 13:28:27ID:???
global $text; なのがキモイんだと思われ
0132nobodyさん2005/05/05(木) 14:39:08ID:???
>128
俺ならクラス内にメソッドを追加する。つまり前者。

後者でやるとしたら
function i($text){
  return "<i>$text</i><br>";
}
とする。こっちの方法も割と良く見かける。
0133nobodyさん2005/05/05(木) 21:09:42ID:???
>>129-132
なるほど・・・。何かをするクラスをひとつにまとめたらわかりやすいかな〜?
とか思ったのですが、
「何かをする->データ」より「データ->何かをする」が普通なんですね。
キモイとか言われましたが・・w どうもありがとうございます。
0134nobodyさん2005/05/05(木) 22:08:25ID:???
>>127
通常のApache2の設定であれば、スレッドじゃなくて
プロセスで動くから無効でも大丈夫。
0135nobodyさん2005/05/06(金) 00:15:35ID:???
HTMLのある部分にデータを書き込む・・・ということを実行するには、どうすればいいでしょうか。
(具体的には、日記スクリプトを作ろうとしています。)
0136nobodyさん2005/05/06(金) 00:16:39ID:???
>>135
htmlを読み込んで、処理を加えて、htmlとして保存する。
0137nobodyさん2005/05/06(金) 14:12:02ID:???
某所でアプロダを運営してるのですが、知恵をお貸し下さい。

DL数を制限するにはどういった仕組みなのでしょうか?
例えば制限数を10にした場合、同時にDLできる人数が10人にしたいのです。

また、1人の人間が異なったファイルをDLできないようにするにはどうすればいいのでしょうか?
0138nobodyさん2005/05/07(土) 00:29:22ID:???
言ってることがよく分からない
0139nobodyさん2005/05/07(土) 02:07:16ID:t8LZi6/K
スレ違っていたらすみません。
現在、PHPでツリー式掲示板を作っていて、そのログの保存形式で悩んでいます。
以前に作った掲示板では、ログの保存形式を

記事No<>親記事No<>タイトル<>内容<>投稿時刻

のようにしていたのですが、あたりまえですがログが増えてくると処理が遅くなってしまいました。
ルート直下の記事(親記事Noが0の記事)のみを抽出するという処理にもかなりの時間がかかってしまいます。
ほかの掲示板を調べてみると、ログを、ツリー構造を保存したファイルと記事の内容を保存したファイルの2つに分けているものもありましたがあまりしっくりとは感じませんでした。
もし、アルゴリズム的に処理のしやすい(速い)ものがあれば、教えていただきたいのですが…。よろしくお願いします。
0140nobodyさん2005/05/07(土) 03:28:59ID:???
>>139
HTMLで表示させるようにしたらどうだろう
毎回ログファイルを読み込む手間がはぶけるし、投稿したときにのみ多少の負荷がかかるくらいだし。
0141nobodyさん2005/05/07(土) 04:22:51ID:???
DB使えや
0142nobodyさん2005/05/07(土) 04:25:03ID:???
> ルート直下の記事(親記事Noが0の記事)のみを抽出するという処理にもかなりの時間がかかってしまいます。
もしかして、ログファイルの内容全てを、一気に読み込んで、
そこから取得→表示ってやってる?
0143nobodyさん2005/05/07(土) 06:17:15ID:XxbRXpor
ユーザーの登録処理の部分を作ってるところなのですが、PHPがおかしな挙動をし始めた。(PHP5.02)
フォームから入力してもらったメールアドレスを、正規表現を使ってチェックするところで変になる。
1.アドレス(〜@〜)だと認識するとオカシクなる
2.アドレスじゃなくて、aaaa だとセーフ
3.アドレスじゃなくても、unko だとオカシクなる
4.同じ文字でも、おかしくなることがある
5.rrr はセーフで、kkk はアウト
7.1234はセーフで、0123だとアウト
6.全く別のテストページでは、アドレスチェックは出来てる

アウトの時は、処理を中断してif構文の中から抜けている感じ。
もしくはページを読み込みなおしてるみたい。
一体なんですかね?
0144nobodyさん2005/05/07(土) 06:21:21ID:???
エスパーきぼんぬですか?
01451432005/05/07(土) 06:43:19ID:???
フォームから入力させる
↓
入力文字がアドレス(xxx@xx)か否かをチェック
・ここで分岐
 A:アドレス / B:アドレスじゃない

Aだとおかしくなって、Bでも条件によっておかしくなる
Bでおかしい時にも、挙動はAとおなじようになる
わけわからん。でも、エスパーだったら分かるのかな?
0146nobodyさん2005/05/07(土) 06:49:47ID:???
その条件文晒した方が早いんでない?
01471432005/05/07(土) 07:12:54ID:???
if (preg_match("/^[A-Za-z0-9_\.\-]*@[A-Za-z0-9_\.\-]*\.[A-Za-z0-9_\.\-]+$/", $adad)){
echo "入力されたメールアドレス 「" . $adad . "」<br>\n";
} else {
echo "入力されたメールアドレス 「" . $adad . "」<br>\n";
echo "正しいメールアドレスではありません。";
}
問題はここじゃないっぽい・・・もう一度全部見直してみます
でも、aaaだとセーフでabcがアウトってありえないよ。
0148nobodyさん2005/05/07(土) 08:08:54ID:zpgwMbY/
http://YahooBB218124060027.bbtec.net/
おkwwwっうぇっっwwwwwwwおkwwwwwwwww
wwwwwwwwwwww
っうぇwwwwうぇwww
wwwwwwwwwwwwwwwwwwwwwwww
0149nobodyさん2005/05/07(土) 08:25:34ID:kMJPLXnh
http://ZV195024.ppp.dion.ne.jp/
wwwwwwwwwwwwっうぇおkwwwおkwww
wwwwwwwwwwwwwwwwwwっうぇw
うぇwww
おkwww
wwwwwwうぇwwwwwwwww
01501372005/05/07(土) 08:52:25ID:???
>>138
上手く説明できずに申し訳ありません。

あるアプロダですと、ファイルをダウンロードしようとすと、
最大接続数な為にダウンロードできませんといったメッセージが表示されます。
また、別なアプロダですと、そのアプロダにアップされているファイルを
ダウンロード中に他のファイルをダウンロードしようとすると、
他のファイルをダウンロードしてるときにはダメだよと言ったメッセージが表示されます。

この事から、誰がどのファイルをダウンロードしてるかを
リアルタイムで判別してると思うのですが、
この情報の取得方法がわからないのです。
0151nobodyさん2005/05/07(土) 08:57:20ID:mG8uUfDQ
http://YahooBB220013144086.bbtec.net/
おkwwwwwwwwwwwwwwwwwwwwwwっうぇ
っうぇっうぇっうぇwwwwww
うぇwwwwwwwwwwwwwww
っうぇうはっwwwうぇwww
0152nobodyさん2005/05/07(土) 09:07:55ID:CaH8/CoZ
実はPHP・MYSQL可能という事であるサーバーを借りました。で
PHPMyAdmin の アドレス ID パスワード 及び
MySQLの パスワード のみ 送られて来ました。
MySQLは同サーバー(localhost)にインストールされているようなので

$sv = "localhost";
$dbname = "root";
$user = "root";
$pass = "送られてきたパス";

と記入しWEBサーバーに置きましたがSQLに全く接続できません。
PHPは使えるのを確認しました。
サーバー会社の担当者に聞いてもCGIですか???
などと聞かれて話になりません。PHPMyAdmin等に
接続情報は書かれているのでしょうか? 
0153nobodyさん2005/05/07(土) 09:12:59ID:???
>>152
大抵のレン鯖のMySQLは、DB名とかユーザ名は、
その鯖に申し込んだ時のユーザ名と一緒。

>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";

まず、ユーザ名がrootなんて事は絶対に無い。
$dbnameと$userはお前さんのユーザ名に変更してみろ。
0154nobodyさん2005/05/07(土) 09:14:45ID:???
>>150
最大接続数とかはよく見かけるよね。
俗に羊と呼ばれてる所は、ファイル毎に同時接続数カウントしてるみたいだし。
他のファイルDL時にダメって言われるのは俗に1号って呼ばれてるロダかな?

気になってはいたけど、俺の知識じゃダメだ。
0155nobodyさん2005/05/07(土) 09:25:21ID:???
>>152
何に書いて置いたんだ?cgiですか?と言う意味で聞かれたんじゃない?
0156nobodyさん2005/05/07(土) 09:35:38ID:???
>>152
phpMyAdminには繋いでみたのかい?
全ての情報(pass以外)はそこで確認できるはず。
0157nobodyさん2005/05/07(土) 09:39:10ID:???
>>152
>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
>と記入しWEBサーバーに置きましたがSQLに全く接続できません。

それだけ書いたって、DBに接続なんかしない、って事は判っているよな?

とりあえず、試したスクリプトをそのまま貼りな。
もちろんdbname、userはもう一回確認してから。
0158nobodyさん2005/05/07(土) 10:04:36ID:7dsJsB9/
http://YahooBB219029188008.bbtec.net/
wwwwwwwww
www
wwwwww
っうぇっ
wwっwwwwwwっwww
wwwwwwうはっwww
うぇwwwうはっwwwっおkwwwwwwwwwwwwwww
0159nobodyさん2005/05/07(土) 10:39:09ID:OjAGpk+E
いろいろありがとうございます。152です。
このphpは他のサーバーではsqlに接続できました。
それの
>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
の部分を書き換えて試しています。
153さんの言われる
>大抵のレン鯖のMySQLは、DB名とかユーザ名は、
>その鯖に申し込んだ時のユーザ名と一緒。
も試しました。
0160nobodyさん2005/05/07(土) 10:47:18ID:+RaGUvoB
先輩方、よければ教えてください。
本とか読んで調べまくってるんですが完全に止まりんぐです。

普通の掲示板のように、
フォームで内容を入力 → 区切り文字「<>」で各変数をログに格納
という感じでやっています。

ログの中身は
記事番号<>投稿者名<>タイトル<>内容
という形式です。記事番号は自動で付いてます。
ここまで出来ました。

この順次溜まっていくログをですね、例えばbbs.php?mode=記事番号 のように打つと
1つの記事だけ単体で表示されるようにしたいのです。
(この形式じゃなくても、単体で1件表示できるようになればOK)

もしよければ、ヒントだけでもおながいします… orz
0161nobodyさん2005/05/07(土) 11:13:54ID:???
>>160
ヒント:fgets
0162nobodyさん2005/05/07(土) 11:18:37ID:???
送られてきた記事番号と、ログの記事番号を比べて、同じであれば
それを表示。
それ以外の方法をお望み?
それともサンプルとか?
いまいち何が知りたいのかわかんない

if($_GET['mode']){
 $fh=fopen($log, 'r');
 while(!feof($fh)){
  $line=explode('<>', fgets($fh));
  if($line[0]==$_GET['mode']){
   print_r($line);
   break;}}
 fclose($fh);
}
0163nobodyさん2005/05/07(土) 11:37:46ID:9P63H0Em
http://ZE206204.ppp.dion.ne.jp/

っうぇうはっwwwうぇwwwwwwうぇwwwwww
っっうぇおkwwwwwwwwwwっうぇっおkwww
っうぇwwwwwwwwwwwwwwwwwwうはっwww
0164nobodyさん2005/05/07(土) 11:46:27ID:???
>>137
PHPでは無理。
Apacheにmod_limitipconnを仕込むとよし。
ただし少しだけ負荷があがる。
0165nobodyさん2005/05/07(土) 11:47:00ID:+RaGUvoB
>>161様 >>162様
ありがとうざいます !

>>162さんの通りやってみましたら、やりたかった事が出来ました…
ものすごく助かりました&勉強になりました。ありがとうございます。
0166nobodyさん2005/05/07(土) 11:50:39ID:L09Tc4GF
http://p6222ed.kyotac00.ap.so-net.ne.jp/
wwwっうぇうはっwwwwwwwwwっwwwwww

wwwwうぇwwwwうはっwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwっうぇwww
0167nobodyさん2005/05/07(土) 11:56:00ID:???
>>150
それを読んでさらに追加。
うpされたファイルのアドレスが単純にファイルのアドレスじゃなくて、
「xxxxx.php?file=zzzz.jpg」みたいにPHPスクリプトを呼び出してないか?
だとすれば、そのスクリプト内でipアドレスとかを一時ファイルに保存して、
集計している可能性がある。
01681372005/05/07(土) 12:40:54ID:???
>>164
調べてみます。

>>167
そういった呼び出し方法をしてるアプロダもありました。
ただ、IPアドレスを一時的に保存してというのは考えついたのですが、
大容量のZIPなどをDLしたとき、途中でキャンセルすれば、
別のファイルがDLできました。
DL時にIPアドレスの情報を取得できますが、
キャンセル時にその情報は取得できないと思いますので、
リアルタイムに接続状況を把握しているのだと判断しました。
0169nobodyさん2005/05/07(土) 13:08:51ID:WaKZc4H9
<?php

mb_internal_encoding("EUC-JP");
mb_regex_encoding( "EUC-JP" );

$buf = '今日は良い天気ですね';
$replace_buf = mb_ereg_replace("^[ァ-ヶー\s]*$","@","$buf");

echo $replace_buf;

?>


漢字以外の部分(平仮名、カタカナ)を"@"に置き換えしたいと思いますが
上記ソースを実行したら「今日は良い天気ですね」とそのまま表示されてしまいました。
どのようにすれば漢字以外の部分を置き換えできますでしょうか?

ソースはEUCで書いてます。
環境は下記の通りです。

PHP Version 4.3.10
configure(一部抜粋しました)
--enable-mbstring
--enable-mbregex
--enable-mbstr-enc-trans
0170nobodyさん2005/05/07(土) 13:30:39ID:???
>>168
昔似たようなものを実装するときに面倒だったのでダウンロードだけポートを変えて
netstatの結果を使った事ある。もっと便利な方法ありそうだけど。

>>169
$replace_buf = mb_ereg_replace("[ぁ-んァ-ヶ]","@","$buf");
これに差し替えてみてはどうか?
0171nobodyさん2005/05/07(土) 13:36:36ID:???
実行されているページのURLを取得するにはどうすればよろしいでしょう?
(パラメータは不要)
SERVER_PROTOCOL、SERVER_NAME、PATH_INFO、SCRIPT_NAMEを
組み合わせるしかないでしょうか?
0172nobodyさん2005/05/07(土) 14:02:01ID:???
>>171
$_SERVER["SCRIPT_URI"]
パラメータが必要ないのであれば
?以降を削除するというのはいかがか。
0173nobodyさん2005/05/07(土) 14:09:58ID:???
>>172 ありがとうございます。
さっそく試してみましたが、SCRIPT_URIそのものが存在しないみたいです。
(var_dump($_SERVER)で確認しました)
PHPのバージョンorWEBサーバーによるんでしょうか。
PHP5.0.3、IIS5.1です。
0174nobodyさん2005/05/07(土) 14:20:36ID:???
>>173
WEBサーバの出力結果が$_SERVERに入るだけだから
IISだと駄目みたいだね。
0175nobodyさん2005/05/07(土) 15:33:27ID:gZ8Bg1tt
function Http($mess){
return eregi_replace("(https?|ftp|news)(://[[:alnum:]\S\+\$\?\.%,!#~*/:@&=_-]+)","<a href=\"./a.php?PHPSESSID=".$sid."&url=\\1\\2\" target=\"_blank\">\\1\\2</a>",$mess);
}

echo $sid; ←問題なく変数が展開されます

$text = "http://www.yahoo.co.jp";
$text2 = Http($text);

echo $text2; ←これだと./a.php?PHPSESSID=&url=http://www.yahoo.co.jpのように$sidが展開されません。
どのようにすれば望んでいる結果が得られますでしょうか?よろしくおねがいします。
01761692005/05/07(土) 15:52:54ID:???
>>170
$replace_buf = mb_ereg_replace("[ぁ-んァ-ヶ]","@","$buf");

でうまくできました。
アドバイスありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています