- ベストアンサー
ディレクトリの作成方法
基本的なことなのかしれませんが、 PHPでディレクトリの作成方法を教えてください。 以前、MKDIRで作成していたようなのですが、 メンテしたらできなくなりました。 前のPHPファイルからsubmitで呼び出していたのを location.hrefでURL呼出に変更したのですが、 mkdir処理自体は変更していません。 また、mkdirでコマンドを検索してもヒットしないのですが コマンド自体なくなったのでしょうか? もしなくなったのであれば、代わりのコマンド(処理方式)はありますか? 複数質問してもうしわけないのですが、宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
だとすると、最初の方が指摘されているように、変数の受け渡しの問題かもしれません。location.hrefということは、javascriptでしょうか。 >targetuslには、実行するPHPファイル名ほか必要な引数をセットしています とお書きですが、こちらだと変数はGETで渡されているのではありませんか? 渡し方は間違っていませんか? 受け取ったプログラムのほうで、正しくディレクトリ名が変数にセットされているかどうか確認してみてください(ファイルに書き出すとか画面に表示するとか)。
その他の回答 (2)
- taba
- ベストアンサー率61% (349/567)
mkdir関数のマニュアルは、参考URLのところです。 仕様変更はありません。 詳細は分からないのですが、ディレクトリを作成しようとしている場所に、作成権限が無いという可能性もありますね。チェックしてみてください。
補足
返事が遅れて申し訳ありません。 作成権限については、問題ないありませんでした。 現状、メンテする前のsubmitで実行しているものを実行すると、ディレクトリは作成されています。 実行する方法を変更するだけで、なにか変わるのでしょうか?
- kusukusu
- ベストアンサー率38% (141/363)
仕様の変更ではありません。 おそらくregister_globalsの問題だとは思いますが、これだけの情報では分かりません。 コードを書いてみたらどうですか?
補足
返事が遅れて申し訳ありませんでした。 コードは以下の様に記述しています。 Apache :1.3.9 solaris :2.6 PHP4 <コード> $i = chdir("../docsvr/masters"); if( is_dir($docid) == false ) { // 存在しなければ、フォルダを作成(mode=777) $i = mkdir($docid,0777); } ※$docidは前処理で相対パス形式でディレクトリ名を作成しています。 記述内容については、特に変更しておらず、 このPHPファイルの実行の形式を変更しただけです。 このコードでも、submitで実行すると正常に処理されます。 mkdirなどのコマンドは、submitとlocation.href = targeturl(targetuslには、実行するPHPファイル名ほか必要な引数をセットしています)とでは、 権限とか違ってくるのでしょうか? PHPについて、まだ初心者なものでうまく伝わっているか、 自信がないのですが、宜しくお願いします。
補足
返信が遅れてもうしわけありませんでした。 他の作業で忙しくなってしまったもので。 せっかく返信して頂いたのに、作業が後送りになって しまいしまた。 もう一度仕切り直すことになりますので、 また何かありましたら、質問させて頂きます。 tabaさん返信ありがとうございました。