【PHP】質問スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/02 15:32ID:f3afNVBG<<参考>>
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレは>>2を見よう。
0011名無しさん@Emacs
02/06/03 12:48ID:3U+9Jvdz0012RASCAL
02/06/03 23:18ID:Ty02FZkQ只今、ファイルのアップロードを試みてるのですが、
Fatal error: Failed opening required 'jcode.phps'
(include_path='.:/usr/local/lib/php')
in /home/design/public_html/doc2/upload.php on line 12
とでてしまいます。
<table border="1" width="350">
<tr>
<th>FILE NAME</th><th>SIZE</th><th>MIME TYPE</th>
</tr>
<?php
require_once("jcode.phps"); //この部分が12行目に当たる部分です。
$num=0;
for($i=0; $i<sizeof($fl); $i++){
if($fl[$i]=="none"){
continue;
}
if(file_exists("./doc/".jcodeconvert($fl_name[$i],0,2))==TRUE && $frb=="true"){
$num++;
}elseif(!is_uploaded_file($fl[$i])){
$num++;
}else{
?>
<tr>
<td align="right"><?php print(jcodeconvert($fl_name[$i],0,2)); ?>
</td>
<td align="right"><?php print($fl_size[$i]); ?>BYTE</td>
<td align="right"><?php print($fl_type[$i]); ?></td>
</tr>
<?php
move_uploaded_file($fl[$i],"./doc/".jcodeconvert($fl_name[$i],0,2));
}
}
if($num>0){
print("<div style='color:red'>".$num."件がアップロードに失敗しました。</div>");
}
?>
どうしたらいいのでしょうか、よろしくお願いします。
0013nobodyさん
02/06/04 00:14ID:???jcode.phpsは入ってるんだよね?念のため。
「何それ?わからない」ということなら、恐らく入ってないです。
検索してください。
0014nobodyさん
02/06/04 00:15ID:nDLL3eGN「要求されたファイル'jcode.phps'を
開くことができません。」
upload.phpと同じディレクトリに
jcode.phpsは有りますか?
そもそもなぜソースを読み込むのですか?
>>10 php.ini
; Name of the session (used as cookie name).
session.name = PHPSESSID
>>9 php.iniのregister_globals はどうなってますか?
>>6
http://www.php.net/manual/ja/function.readdir.php
ファイル名は 特定の順序で返されるわけではありません。
readdirではダメっぽいね。
0016nobodyさん
02/06/04 10:59ID:???なさそうなので、fwrite($fp,sprintf($format,...))とやっているのですが。
0017nobodyさん
02/06/04 14:58ID:???0018nobodyさん
02/06/04 16:30ID:???どこに住んでるのかにもよるけど、
http://www.find-job.net/ 逝って探したら?
0019nobodyさん
02/06/05 00:22ID:u1mPAxGZセキュリティが気になってregister_globalsをoffにしたいのですが、勝手にすることもできないので、
とりあえずスクリプト内の記述で対応することできますか?
できなかったらどうすればいいんでしょう。。。
0020nobodyさん
02/06/05 00:28ID:8T+VUhRr変数の扱いに気をつければいいんじゃないの?
必ず自分で初期化する、みたいな。
たとえば
$hoge = $_GET("hoge");
とか最初にやっちゃうの。
002119
02/06/05 00:35ID:u1mPAxGZありがとうございます。
ってことは例えばファイルを読み込んで、if (~略~) $admin = 'yes';とかする場合には、
必ずelse $admin = '';とか書かなきゃいけないんですね。なんか面倒だし抜けありそうだし。。。
んー、自分のとこだけ実行時はデフォルトでoffとかできればいいのに。
0022nobodyさん
02/06/05 15:21ID:q2nPzAuV各種設定を行い、pages/index.phpの表示まではできました。
ユーザを追加するために、pages/admin/new_user.phpにアクセスし、
login画面(Test for Login)に
Username:kris Passwprd:test
と打ち込んで、loginしようと試みたのですが、
再度login画面(Test for Login)に戻ってしまいます。
(ユーザを追加する画面にはならないです)
どうすれば、ユーザ追加のページにいけるのでしょうか?
0023名無しさん
02/06/05 15:21ID:???002422
02/06/05 15:35ID:q2nPzAuVresありがとうございます。
.htaccessにどの様な内容を書けばいいんでしょうか?
以下のように書いたんですが・・・
002522
02/06/05 15:37ID:q2nPzAuV0028キム
02/06/05 19:03ID:sjTX0T+wでファイルを作成し書き込みを行ないたいのですが
パーミッションが無く書き込みエラーになるようです。
test.txtをあらかじめ作成しchmodコマンドを実行すれば
書き込みは出来るのですが
PHPから作成し書き込みを行ないたい場合、どのようにすればよいのでしょうか?
教えてください。
よろしくお願いします。
002919
02/06/05 21:16ID:JGd9rG/Rすいません、調べてみましたが全く見当もつきません。
ヒントになるページだけでも教えていただけないでしょうか。
0030htaccessについて
02/06/05 21:27ID:???http://www.google.co.jp/search?hl=ja&q=.htaccess&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0031nobodyさん
02/06/05 21:47ID:???マニュアル嫁
http://www.php.net/manual/ja/configuration.php
003219
02/06/05 22:02ID:JGd9rG/Rただうちの共用サーバーはhtaccessじゃ設定できなくしてあるっぽいです。
うーん。。
0033nobodyさん
02/06/05 22:39ID:Bl/EL1d3じゃあ
>>20さんのおっしゃるように、まずは自分で気をつけては?
初期化しない変数を使わなきゃいいだけな気が。
>>28
ディレクトリのパーミッションは707でしょうか?
0035nobodyさん
02/06/06 01:08ID:hbHT1ZtS作ることを目標としてPHPをはじめたところなんですが、
flockに関して質問があります
理屈で言えばすべてのプロセスがflockを使用していれば
排他制御は正しく行われるはずですが、ネット上でのCGI講座などで、
Parlの場合はファイルのロックにはロックファイルを置く方法をよく見かけます。
PHPの場合だとflockを積極的に利用しているように見受けられました。
とするとPHPでのflockの信頼性は、Parlのより高いと勝手に想像してるのですが
実際のところはどうなんでしょうか?
抽象的な質問で申し訳ないですが、私見でも構いませんので
どなたかレスお願いします。
0036nobodyさん
02/06/06 01:28ID:???http://pc.2ch.net/test/read.cgi/php/997199513/l50
0037nobodyさん
02/06/06 01:42ID:???まず、Parlとは何かを小一時間ほど問い詰めたい。
その後、flockとは何かを小一時間ほど調べてみることをおすすめする。
003835
02/06/06 02:53ID:???ざっと目を通しました
色々参考になりました
ありがとうございます
>>37
失礼しました、Peal、綴り間違いです
POSIX準拠のflockが動作しているのなら
PealもPHPも、ロックをすり抜けられる可能性は
同じだということでしょうか。
私、勘違い&見当違いですかね…
とりあえずもっと勉強してから出直します
ありがとうございました
0039nobodyさん
02/06/06 03:57ID:???(´д⊂
0040nobodyさん
02/06/06 06:33ID:???今個別データベース非依存のデータベース操作APIを作っているんですが、
基底クラスもどきを作り、いざ継承という段階で躓いてしまいました。
質問は親クラスのプロパティ(クラス変数)をダイレクトに取得する方法が
ないか?ということです。
ものの本では、var定義されている変数はスコープ内(=すなわちクラス内)
でしか通用しないし、そもそもPHPは関数であり、クラスによる設計はあくま
でもオプション程度のものと書いてあり、実際にparent::やhoge::とか、
試してみましたがだめでした。
それではと思って、親クラスに親クラス自信のプロパティを取得し、連想配列
で戻り値を返すメソッドを作り、それを子クラスで参照する方法もやってみた
のですが、値が(=連想配列の値の部分)NULLで返ってきます。
何か見落としている点とかやはりあるんでしょうか?教えて下さい。
(環境:Win98 + An HTTPd + PHP ver4.1.2)
0041名無しさん
02/06/06 09:23ID:???まあ、作法を守らないプログラムが他にあれば問題だけど。
0042nobodyさん
02/06/06 12:51ID:???0043nobodyさん
02/06/06 13:06ID:???0044名無しさん
02/06/06 14:26ID:???0045nobodyさん
02/06/06 15:34ID:???0047キム
02/06/06 21:48ID:HEq09nZx707でパーミッションの設定をしたら
ファイルを作成する事が出来ました。
しかし、そのファイルにはパーミッションがないので
書き込む事が出来ません。
どしたらよいのでしょうか???
0049nobodyさん
02/06/06 22:46ID:auwDQifb先頭に #!/usr/bin/php4 という行を追加して index.cgi という名前にして実行属性をつけるだけではダメなのでしょうか?
エラー 500 (Internal Server Error) が出てしまいます。
Debian GNU/Linux 3.0 (x86) + Apache です。
もの凄い勢いで質問なんですが
PHPのCGI版をインストールしてありますか・・・。
/usr/bin/php4が存在しないとか言ったら
大笑いですよ・・・。
0051nobodyさん
02/06/06 23:00ID:auwDQifbもうちょっと調べてみます。
流石にインストールしてないなんて事無いですか(苦笑。
んー、じゃあ可能性だけど。
index.cgiの文字コード/改行コードは?
//というか、php4なんて名前で入るのか・・・。
//php4.1.2の時にCGI版入れた時
//バイナリファイルの名前phpだったけど変わったのかな。
0053nobodyさん
02/06/06 23:44ID:zHub/sfnブラウザから参照すると、必ずpgconnect.iniの中身が表示され、一番下に
Fatal error: Class mypgselect: Cannot inherit from undefined class pgselect in /usr/home/takeshi04/public_html/ex4.php on line 11
となり動作しません。
同じような現象起きた人いますか? もしくはどのような対処法がありますでしょうか?
ちなみにex1〜ex3まではうまく動作しました。
0054nobodyさん
02/06/07 00:30ID:???0055nobodyさん
02/06/07 00:36ID:???0056nobodyさん
02/06/07 00:55ID:???0057nobodyさん
02/06/07 01:53ID:kC35ouJdこれはどういうことを意味するのでしょうか?
0058nobodyさん
02/06/07 02:43ID:???キーワードは「isset関数」「三項演算子」「date関数」です。
ガンバレ
0059nobodyさん
02/06/07 03:48ID:???三項演算子と言うのですね。
マニュアル読んでみましたが、
if 文で書き換えると↓のような感じということでしょうか?
if(isset($month)) {
$month = $month;
} else {
$month = date("n",time());
}
006057 = 59
02/06/07 03:49ID:???0061nobodyさん
02/06/07 05:32ID:FyQSs3TI0063nobodyさん
02/06/07 10:48ID:lJP0VltFデータベースに依存しない、使いやすいデータベース利用のための
ライブラリは存在するのでしょうか。
006433
02/06/07 11:02ID:???PEARのDBクラスじゃ駄目なのですか?
0065nobodyさん
02/06/07 11:47ID:RmSLRVAQhttp://pear.php.net/
これ。
後からDB変えた時とか、ほとんどコードの変更いらなくて便利。
ttp://www.avantexchange.com/php/pear_tut.php
後はこことか参考にするといいと思うよ。
0068ジー子
02/06/07 16:02ID:mUQr0G4tという配列の中身を、
一関数で全て出力するという関数って何でしたっけ。
おしえてくだsちい。
http://www.php.net/manual/ja/function.array.php
http://www.php.net/manual/ja/function.print-r.php
このくらい自分で調べようよ・・・。
公式マニュアルの配列の所にそのまま書いてあるんだしさ。
0070ジー子
02/06/07 16:51ID:mUQr0G4tprint_r()じゃねえの?
百済ねえ質問し点者ね絵よ。
0072nobodyさん
02/06/08 03:28ID:u5/r5db40073nobodyさん
02/06/08 05:59ID:???誰でも閲覧できる状態にしても構いませんか?
0076nobodyさん
02/06/08 17:25ID:VO8Wct1Ahttp://php3.de/manual/ja/function.each.php
each って、
$bar[0] == $bar[key] で、 $bar[1] == $bar[value] のよーなのですけど、
同じ値なのだったらkey,valueか、0,1かの
どっちかのペアだけでいいと思うんだけど。
4つある意味はなんで?
0077nobodyさん
02/06/08 22:27ID:???list($key,$value)=each($bar);
で通常の配列として使うこともできるからでは?
0078nobodyさん
02/06/09 00:39ID:QolOb+V5ネットにアップロードされているファイルをfopenの読み込みモードで読み込んで、それをprintで出力しようとしても
Resource id #1と出ます。
これはどういう意味なんでしょうか?
0079nobodyさん
02/06/09 00:58ID:???$fp=foepn("http://****","r");
echo $fp;
とかやってないですか?(汗)
接続IDです。>Resource id #1
008079
02/06/09 00:59ID:???>$fp=foepn("http://****","r");
foepnって…(恥
fopenですスイマセン。
0081nobodyさん
02/06/09 01:14ID:???・・やってます・・・・
どういう書き方をすればいいんでしょうか?
それと、差し支えなければ接続IDというのも教えて頂きたいのですが・・・。
008279
02/06/09 01:31ID:???普通にファイルを開くのと同じようにできますよ。
キーワード:ファイルハンドル fopen fread(fgets)
などなど。
fgetsやfreadの例を見た方がわかりやすいかもです。
http://www.php.net/manual/ja/ref.filesystem.php
008376
02/06/09 01:34ID:A3vcjjB5>list($key,$value)=each($bar);
これって、
$key=key($bar);
$value=current($bar);
next($bar);
と同じことですよね。
となると、listで簡略化できるから、ってことで納得しますです。
ありがとうでしたー。
>>78
レッツphpのチュートリアルにあるやつはどう?
ttp://php.s3.to/tt/tt6.php
0085nobodyさん
02/06/09 07:06ID:???[begin] と [end] に挟まれた部分を
取り出すにはどうすれば良いでしょうか?
-----------------------
あああああ
いいいいいいいいい
[begin]ほげほげ[end]
ううう
ええええええ
おお
-----------------------
だとしたら、「ほげほげ」を取り出したいのです。
分かりにくくてすみません。
0087nobodyさん
02/06/09 13:27ID:A3vcjjB5JavaからC#に変換してくれるみたいなやつ。
0088nobodyさん
02/06/09 14:48ID:???可変変数ってどういう使い方があるんですか?
0090nobodyさん
02/06/10 18:53ID:WsKMKNfu初心者なのでよろしくお願いします
0092nobodyさん
02/06/10 21:45ID:WsKMKNfuひ〜っ。
その方法しかないでしょうか、、、。
できれば、emacsとか使うことはできるので、設定ファイルのいじり方とかを教えていただきたいのですが、、、、。
0093nobodyさん
02/06/10 21:45ID:WsKMKNfu間違えました。
0094戊寅
02/06/10 22:47ID:???php.ini の register_globals = を on に設定してみてokならば、
http://www.php.net/manual/ja/security.registerglobals.php
を参考にスクリプトを修正する。
sendmail_path = が適切に設定されているか否かを確認。
この2つくらいしか思いつかないっす。
前のバージョンはいくつか? 環境は? スクリプトの具体例は?
などを書くと、識者がアドバイスしてくれると思うです。
0095nobodyさん
02/06/11 00:08ID:fQRftcxOを使うと鯖負担大なの?
既出でしたらすみません。
009795
02/06/11 02:02ID:fQRftcxO以前Perlで
print "Location: http://hoge\n\n";exit;
だけのCGI(URL転送のみ)を使ってたら、レンタル鯖屋さんに
高負担かかってますと怒られた事と、
最近PHPで一日7万弱アクセスのページに
header("Location: http://hoge");
これ使ったら、鯖負担がかなり高くなったから…
まぁ、ほかのPHP処理で高くなったのかもしれないけど、
かなり低負担重視で作ったから、あとはコレかな?と…
0098nobodyさん
02/06/11 03:57ID:???URL転送のみってのが嫌がられたんじゃないの?
print "Location: http://hoge\n\n";exit;は文字列を表示して終了するだけだし。
0099nobodyさん
02/06/11 04:10ID:fQRftcxOTOPコマンドで高負荷確認済み
>文字列を表示して終了するだけだし
(゚Д゚)?
0101100
02/06/11 04:22ID:???0102nobodyさん
02/06/11 08:53ID:???RFC2616読んで、出直してこい。
>>90
とりあえず引数をハードコーディングした場合、mail関数は成功するか?
以下のスクリプトで成功するなら、メール送信そのものは動いてる。
その場合はmail関数の引数をチェキしる。
<?php
mail( "hoge@example.com", "Test", "Test" ); //メールアドレスは自分のアドレスに入れ替えれ
?>
0103nobodyさん
02/06/11 09:30ID:yLQsThBfつながんないです。
松下ナントカの圧力でしょうか?
0104nobodyさん
02/06/11 14:32ID:g7ykEoe9返答ありがとうございました。
これからがんばってみます
0105nobodyさん
02/06/12 08:39ID:???0107nobodyさん
02/06/12 12:14ID:???0110nobodyさん
02/06/12 16:40ID:???■ このスレッドは過去ログ倉庫に格納されています