【PHP】くだらねぇ質問はここに書き込みやがれpart5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/04/30(土) 00:12:53ID:OJfc9xBuここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
0065nobodyさん
2005/05/02(月) 14:16:07ID:v4+ywBHrブログツール(php)を自前の鯖にインストールするのはいいんですが、
やめたい時ってアンインストールする必要あるんですか?
ただファイルを消すだけでOKですか?
0066nobodyさん
2005/05/02(月) 21:25:22ID:???データベースとか使ってるブログだったらデータベースもきちんと消そう
0067nobodyさん
2005/05/02(月) 23:26:25ID:LLdi1lXWtempディレクトリ
という構成で、index.phpからsessionファイルをtemp内に保存するように設定したいですが、
ローカルではちゃんと動くもののレンサバ上でうまくいきません。
session_save_path("temp");
session_start();
$_SESSION["hoge"] = "foo";
var_dump($_SESSION["hoge"]);
とするとちゃんとfooが出力され、session_startの返り値を見てもtrueとなっているので
セッション機能自体はうまく動いているようなのですが、tempディレクトリ内を確認しても
tempファイルが作成されません。
ini_get()するとsession_save_path()で指定したディレクトリになったいるのに
php.iniで設定されたパス上に保存されているようです。
何が原因と考えられるでしょうか?
0068nobodyさん
2005/05/03(火) 00:05:24ID:???0069nobodyさん
2005/05/03(火) 00:17:01ID:???〜(略)〜
この関数は常に TRUE を返します。
-> 読んでの通り。
セッション変数: $_SESSION
〜(略)〜
これは'スーパーグローバル'又は自動グローバルな変数です。
-> セッションの利用可・不可に関係なくvar_dumpできる。
0070nobodyさん
2005/05/03(火) 00:55:41ID:???$dh=opendir("temp");
while(($file=readdir($dh))!==false) print "$file<br>";
0071nobodyさん
2005/05/03(火) 01:10:50ID:???ヒント:確認できていなかった。
007267
2005/05/03(火) 02:45:34ID:???ありがとうございます。
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
としてみたら、どうやらセッション使えてなかったみたいですorz
sessionの使用がenabledなのになんで駄目なんだろ・・・。
0073nobodyさん
2005/05/03(火) 05:03:52ID:???いるのですがGDを使うソフトがありまして困っています。
GDなるものどこで手にいれてインストールしたらいいのか教えてださい。
0074nobodyさん
2005/05/03(火) 05:32:21ID:???php.iniの
extension=php_gd2.dll
コメントアウトを削除で対応
0075nobodyさん
2005/05/03(火) 06:47:55ID:???include_path = ".;C:\php\pear"
と指定して
include("DB.php");
を実行すると、『ページを表示できません』となります。
C:\php\pear\DB.phpは存在します。
include("C:\php\pear\DB.phpp");
を実行すると、ちゃんと読み込みます。
include_pathにC:\php\pearを指定しているのに
フルパスじゃないと読み込めないのが謎です。
どなたか原因わかりませんか?
環境
WindowsXP
Apache2.0
PHP4と5で確認
よろしくお願いします。
0077nobodyさん
2005/05/03(火) 07:55:59ID:???読み込めないときは
Failed opening 'DB.php' for inclusion (include_path='.;c:\php\PEAR')
こんなエラーじゃないのかな
0079nobodyさん
2005/05/03(火) 08:47:12ID:???参考になるようなよい書籍を教えてください。
0080nobodyさん
2005/05/03(火) 09:06:42ID:???ショッピングカートの良書
http://www.amazon.co.jp/exec/obidos/ASIN/4034314303/
0081nobodyさん
2005/05/03(火) 10:31:05ID:???データベースに書き込むとき書き込むデータの長さがカラム長を超えてしまうと
エラーになるので書き込み前にチェックしたいんですが、比較するカラム長は
・固定的に定義しておく(defineなどで)
・都度、取得する(mysqlならmysql_field_lenなどで)
のどちらがいいんでしょう?
データベースの定義が変更になった時のことを考えると都度、取得したほうが
いいんでしょうが、なんかとても無駄なことをしているような気がして
みなさんはどうされてます?
0083nobodyさん
2005/05/03(火) 13:18:39ID:???>>82さんの仰るとおりカラム長を超えたデータを書き込んでもエラーにはならず
切り捨てられました
テストしたときのデータがめちゃくちゃ長いデータだったのでコネクションが
切断されてたみたいです
mysqlのnet_buffer_lengthあたりの制限に引っかかたのかも…
スレ汚しすみませんでした
0084nobodyさん
2005/05/03(火) 14:22:02ID:???ttp://php.s3.to/simple/
他のページにもパスワード制限をかけたいと思いました。
この場合それぞれのページにいちいち制限をかけるのは入る人が面倒ですよね。
そこでたとえばメンバー専用のトップページを作って、そのトップページにパスワードを使って入れば、
そこに置かれているbbsなどは自由に入れるようにするにはどうしたらいいでしょうか?
サーバーのコントロールパネルのページとかでこういう方式になっていたりしますので、同じようにしたいのですが…
0085nobodyさん
2005/05/03(火) 16:14:42ID:rT+xDv11そして送信ボタンを押したときに
すべてのフォームに値が記入されていればAを出力
どこか一つでも値が無ければBを出力
ということをするにはどうしたらよいでしょうか?
008785
2005/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のフォームを作ります。
008885
2005/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のボックスが空のまま表示されてしまうので
もしフォームの値が一個でも空白ならエラーを返したいと思っています。
008985
2005/05/03(火) 17:22:11ID:???0090nobodyさん
2005/05/03(火) 17:44:16ID:/WYzL+U+"05"などという文字列を5という数値に変換したいのです。
009385
2005/05/03(火) 18:20:32ID:???0095nobodyさん
2005/05/03(火) 18:48:00ID:???暗黙の型変換が行われるから、わざわざ自前でやる必要はないと思うけど。
あえてやるならintval
$a="05";
$b=$a + 100;
$c=intval($a) + 100;
echo $b;
echo "<BR>";
echo $c;
0097nobodyさん
2005/05/03(火) 20:59:50ID:???こういうヤツの作り方ってどうやるんですかね?
0098nobodyさん
2005/05/03(火) 21:29:36ID:???0099nobodyさん
2005/05/03(火) 22:03:24ID:XdSRtjaMっうはっwwwwwwwうぇwwwおkwwwwwwwwwwww
wwwwwwwwwwwwwwおkwww
っおkっうぇwwwwwwwwwwwwwwwwうはっ
wwwwwwwwwwwうはっっうはっwwwwwwwwww
0101nobodyさん
2005/05/04(水) 01:43:31ID:4XtCwxJFinclude(1)
include(2)
とやった場合
(1)で定義した定数は(2)には反映されないの?
0102101
2005/05/04(水) 01:49:41ID:???0103nobodyさん
2005/05/04(水) 01:50:54ID:4XtCwxJF騙るなよ
0104軟式PHP
2005/05/04(水) 03:25:40ID:???0105nobodyさん
2005/05/04(水) 11:31:05ID:???質問させて下さい。
SELECTして取得するフィールドは不特定の場合、
結果からどうやって取得したフィールド名を取得するのでしょうか?
今までは、DB::connectで接続したあと、queryにてSQLを発行し、
fetchRowにてループにて全レコードを出力する時に、
最初の1レコード目の時にフィールド名を出力していましたが、
この方法だと抽出したレコードが0件の場合、何も表示されません。
取得したdb_resultオブジェクトの内容をprint_rにて除いてみたのですが、
そういった情報は無いようでした。
0106nobodyさん
NGNGread.cgi & bbs.cgi よろしく。
【参考】
・厨房により、連続更新が多発!read.cgiが呼ばれる回数はbbs.cgiの百倍!
010784
2005/05/04(水) 14:02:33ID:CEPwDzrn0108nobodyさん
2005/05/04(水) 15:05:33ID:???質問の意図がよくわかんないんだけど
常にフィールド名が欲しかったらtableinfo()を使ってみるとか。
空のレコードセットのときfetchRow()がNULLを返すのは仕様どうり
>>107
http://merlion.cool.ne.jp/cgi/rest8/index.htm
↑みたいなの使って一つのフォルダに認証かけて
そのフォルダ以下にトップページやBBSとか置けばいい
0110107
2005/05/04(水) 15:45:24ID:CEPwDzrnありがとうございます!.htaccess機能ってやつですね。
ちなみに教えて頂いたhttp://merlion.cool.ne.jp/cgi/rest8/index.htmのページでは
perlを使ったプログラミングのようですが、
phpを使った認証のプログラムはどこかにないでしょうか?
0111nobodyさん
2005/05/04(水) 21:31:13ID:tDb8HgqQごく小規模のメール配信とかサイトにDB使いたくて。
こんなモノがあるとは知らずPostgreのつもりだったんですが
存在を知って以来気になってます。
どのくらいまで使えるモノなんでしょう?
0113nobodyさん
2005/05/04(水) 23:04:11ID:???どんな利用方法しても、ライセンスが絡む事は無いし、
MySQLで出来ること以上の事がPostgreSQLは出来る。
確かに速度はMySQLだが、その辺はたいした問題じゃない。
0114nobodyさん
2005/05/05(木) 00:41:41ID:???UNIXやLinuxならPgSQLかMySQL
本格的にやるならOracle
0115軟式PHP
2005/05/05(木) 02:29:14ID:???0116nobodyさん
2005/05/05(木) 02:42:19ID:???0117nobodyさん
2005/05/05(木) 06:57:41ID:j3QMEyoAecho"$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+$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:???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>"; だけでいい希ガス
0121119
2005/05/05(木) 08:33:10ID:???文字列を配列として参照することで、一文字ずつ取り出せるのですねーー知りませんでした。
0122120
2005/05/05(木) 08:33:55ID:???× // 4文字なので 0〜4でいいはず
○ // 4文字なので 0〜3でいいはず
0124nobodyさん
2005/05/05(木) 08:46:13ID:???$num = 1;
while ($num <= strlen($str)){
$spel[] = substr($str, 0, $num);
}
0125nobodyさん
2005/05/05(木) 08:48:31ID:???マニュアルのpreg_replaceの項に
まったく同じことするサンプルがあるぞ
0127nobodyさん
2005/05/05(木) 09:48:00ID:???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:???0132nobodyさん
2005/05/05(木) 14:39:08ID:???俺ならクラス内にメソッドを追加する。つまり前者。
後者でやるとしたら
function i($text){
return "<i>$text</i><br>";
}
とする。こっちの方法も割と良く見かける。
0133nobodyさん
2005/05/05(木) 21:09:42ID:???なるほど・・・。何かをするクラスをひとつにまとめたらわかりやすいかな〜?
とか思ったのですが、
「何かをする->データ」より「データ->何かをする」が普通なんですね。
キモイとか言われましたが・・w どうもありがとうございます。
0135nobodyさん
2005/05/06(金) 00:15:35ID:???(具体的には、日記スクリプトを作ろうとしています。)
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:???HTMLで表示させるようにしたらどうだろう
毎回ログファイルを読み込む手間がはぶけるし、投稿したときにのみ多少の負荷がかかるくらいだし。
0141nobodyさん
2005/05/07(土) 04:22:51ID:???0142nobodyさん
2005/05/07(土) 04:25:03ID:???もしかして、ログファイルの内容全てを、一気に読み込んで、
そこから取得→表示ってやってる?
0143nobodyさん
2005/05/07(土) 06:17:15ID:XxbRXporフォームから入力してもらったメールアドレスを、正規表現を使ってチェックするところで変になる。
1.アドレス(〜@〜)だと認識するとオカシクなる
2.アドレスじゃなくて、aaaa だとセーフ
3.アドレスじゃなくても、unko だとオカシクなる
4.同じ文字でも、おかしくなることがある
5.rrr はセーフで、kkk はアウト
7.1234はセーフで、0123だとアウト
6.全く別のテストページでは、アドレスチェックは出来てる
アウトの時は、処理を中断してif構文の中から抜けている感じ。
もしくはページを読み込みなおしてるみたい。
一体なんですかね?
0144nobodyさん
2005/05/07(土) 06:21:21ID:???0145143
2005/05/07(土) 06:43:19ID:???↓
入力文字がアドレス(xxx@xx)か否かをチェック
・ここで分岐
A:アドレス / B:アドレスじゃない
Aだとおかしくなって、Bでも条件によっておかしくなる
Bでおかしい時にも、挙動はAとおなじようになる
わけわからん。でも、エスパーだったら分かるのかな?
0146nobodyさん
2005/05/07(土) 06:49:47ID:???0147143
2005/05/07(土) 07:12:54ID:???echo "入力されたメールアドレス 「" . $adad . "」<br>\n";
} else {
echo "入力されたメールアドレス 「" . $adad . "」<br>\n";
echo "正しいメールアドレスではありません。";
}
問題はここじゃないっぽい・・・もう一度全部見直してみます
でも、aaaだとセーフでabcがアウトってありえないよ。
0148nobodyさん
2005/05/07(土) 08:08:54ID:zpgwMbY/おkwwwっうぇっっwwwwwwwおkwwwwwwwww
wwwwwwwwwwww
っうぇwwwwうぇwww
wwwwwwwwwwwwwwwwwwwwwwww
0149nobodyさん
2005/05/07(土) 08:25:34ID:kMJPLXnhwwwwwwwwwwwwっうぇおkwwwおkwww
wwwwwwwwwwwwwwwwwwっうぇw
うぇwww
おkwww
wwwwwwうぇwwwwwwwww
0150137
2005/05/07(土) 08:52:25ID:???上手く説明できずに申し訳ありません。
あるアプロダですと、ファイルをダウンロードしようとすと、
最大接続数な為にダウンロードできませんといったメッセージが表示されます。
また、別なアプロダですと、そのアプロダにアップされているファイルを
ダウンロード中に他のファイルをダウンロードしようとすると、
他のファイルをダウンロードしてるときにはダメだよと言ったメッセージが表示されます。
この事から、誰がどのファイルをダウンロードしてるかを
リアルタイムで判別してると思うのですが、
この情報の取得方法がわからないのです。
0151nobodyさん
2005/05/07(土) 08:57:20ID:mG8uUfDQおkwwwwwwwwwwwwwwwwwwwwwwっうぇ
っうぇっうぇっうぇwwwwww
うぇwwwwwwwwwwwwwww
っうぇうはっwwwうぇwww
0152nobodyさん
2005/05/07(土) 09:07:55ID:CaH8/CoZPHPMyAdmin の アドレス ID パスワード 及び
MySQLの パスワード のみ 送られて来ました。
MySQLは同サーバー(localhost)にインストールされているようなので
$sv = "localhost";
$dbname = "root";
$user = "root";
$pass = "送られてきたパス";
と記入しWEBサーバーに置きましたがSQLに全く接続できません。
PHPは使えるのを確認しました。
サーバー会社の担当者に聞いてもCGIですか???
などと聞かれて話になりません。PHPMyAdmin等に
接続情報は書かれているのでしょうか?
0153nobodyさん
2005/05/07(土) 09:12:59ID:???大抵のレン鯖のMySQLは、DB名とかユーザ名は、
その鯖に申し込んだ時のユーザ名と一緒。
>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
まず、ユーザ名がrootなんて事は絶対に無い。
$dbnameと$userはお前さんのユーザ名に変更してみろ。
0154nobodyさん
2005/05/07(土) 09:14:45ID:???最大接続数とかはよく見かけるよね。
俗に羊と呼ばれてる所は、ファイル毎に同時接続数カウントしてるみたいだし。
他のファイルDL時にダメって言われるのは俗に1号って呼ばれてるロダかな?
気になってはいたけど、俺の知識じゃダメだ。
0157nobodyさん
2005/05/07(土) 09:39:10ID:???>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
>と記入しWEBサーバーに置きましたがSQLに全く接続できません。
それだけ書いたって、DBに接続なんかしない、って事は判っているよな?
とりあえず、試したスクリプトをそのまま貼りな。
もちろんdbname、userはもう一回確認してから。
0158nobodyさん
2005/05/07(土) 10:04:36ID:7dsJsB9/wwwwwwwww
www
wwwwww
っうぇっ
wwっwwwwwwっwww
wwwwwwうはっwww
うぇwwwうはっwwwっおkwwwwwwwwwwwwwww
0159nobodyさん
2005/05/07(土) 10:39:09ID:OjAGpk+Eこの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
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っうぇうはっwwwうぇwwwwwwうぇwwwwww
っっうぇおkwwwwwwwwwwっうぇっおkwww
っうぇwwwwwwwwwwwwwwwwwwうはっwww
0164nobodyさん
2005/05/07(土) 11:46:27ID:???PHPでは無理。
Apacheにmod_limitipconnを仕込むとよし。
ただし少しだけ負荷があがる。
0165nobodyさん
2005/05/07(土) 11:47:00ID:+RaGUvoBありがとうざいます !
>>162さんの通りやってみましたら、やりたかった事が出来ました…
ものすごく助かりました&勉強になりました。ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています