【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を見よう。
0002nobodyさん
02/06/02 15:33ID:???http://ebi.2ch.net/php/kako/982/982687820.html
■【PHP】質問スレッド Part2
http://pc.2ch.net/php/kako/1003/10032/1003283567.html
■【PHP】質問スレッド Part3
http://pc.2ch.net/test/read.cgi/php/1013919792/l50
■PHP + MySQL
http://pc.2ch.net/test/read.cgi/php/983250751/l50
0003追加
02/06/02 15:47ID:???http://pc.2ch.net/test/read.cgi/php/985315574/l50
■PHP アップグレード報告スレッド
http://pc.2ch.net/test/read.cgi/php/987259309/l50
0004nobodyさん
02/06/02 16:24ID:UOUxnd1Q4.2.0以降はデフォルトでregister_globalsがoffになっています。
POST, GET等で渡される値には
グローバル連想配列
$HTTP_ENV_VARS
$HTTP_GET_VARS
$HTTP_POST_VARS
$HTTP_COOKIE_VARS
$HTTP_SERVER_VARS
でアクセスしてください。
つーか、マニュアルとか読んでください。おながいします。
0005名無しさん
02/06/02 17:27ID:tBlpLEc9header()でcontent-typeを出力すると、mb_output_handlerが無効になります。
ini_set('default_mimetype', 'text/html');
とすることで回避できます。
0006前スレ996
02/06/03 03:12ID:???>更新時間はバラバラなので、ファイル名だけ配列に入れてrsortしようと思うんだけど、
>readdirってちゃんとファイル名順に読み込んでいくの?
自己レス。結局ソートするんだから、ファイル名の読み込み順なんて関係ないね。
恥ずかしー。逝ってくる。
>あと、ディレクトリの中のファイルで一番番号が若いファイル名を取得したいんだけど、
>それも上のように一度配列に読み込まないとだめかな。
こっちは相変わらずわからん。アドバイスプリーズ。
0007halc
02/06/03 08:06ID:???前者のソース一部変えてこんな感じだと思います。
# 0というdirは想定しないとする
while ($file = readdir($dir)) {
if(! isdir($file)) continue;
if(! ereg('^[0-9]+$', $file)) continue;
if( $num_max > $file ) $num_max = $file;
}
print $num_max;
0008halc
02/06/03 08:11ID:???あ、「一番番号が若いファイル名」だった、勘違いめんご。
しかもis_dirの間違いだし…
while ($file = readdir($dir)) {
if(! is_file($file)) continue;
if( strnatcmp($num_max,$file) < 0 ) $num_max = $file;
}
print $num_max;
辞書順比較ってのはこれ使います。perlだとcmpだったかな?
http://www.php.net/manual/ja/function.strnatcmp.php
0009nobodyさん
02/06/03 11:07ID:???sessionを使っていて既にsession_registerしてある $hoge=3 というデータ
があるとしてあとから $hoge の内容を変えることってできるんですか?
いろいろやってるんですがどうもうまくいかないのでなにかヒントでも結構
ですのでご指導ください。
PHP4.1.12です。
0010nobodyさん
02/06/03 11:21ID:21jPjT5l0011名無しさん@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
■ このスレッドは過去ログ倉庫に格納されています