- ベストアンサー
PHPのエラーメッセージ
- HTML文書からPHPに送ったファイル名のついたファイルをunlink()関数で削除しようとしている際にエラーメッセージが発生する
- エラーメッセージが示すQAgameOver.phpというファイルをPHPが見つけられない
- エラーメッセージの原因は、PHPが指定されたファイルをhtdocsのルートとして探しているため
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あ~やっぱり…回答を書いてて何となく失敗するんじゃないかと思ってました。PATH問題は初心者がハマりやすい落とし穴なんで。 とりあえず問題点を明らかにするため、以下のコードを書き足して実行させてみてください。 $my_file = $_POST['deleteFileName']; $my_file = $_SERVER['DOCUMENT_ROOT'].'/'.$my_file; var_dump( $my_file ); これでPHPプログラム内部で $my_file にどんなURL(PATH)が格納されているかが分かります。それを確認した上で、実行するPHPコード内でどの様にURL等を加工すれば良いのかの方針が見えて来ます。
その他の回答 (1)
- 4017B
- ベストアンサー率73% (1336/1814)
XAMMP内部でのパスが単純に通ってないだけですね。 - Windows上でのファイルPATH: - "C:\\xampp\\htdocs\\hoge\\abc.jpg" - XAMPP上でのファイルPATH: - "http://localhost/hoge/abc.jpg" ~みたいになるので。 とりあえず、 $FileName = $_SERVER['DOCUMENT_ROOT'].'/'.$FileName; ~と修正して試してみてください。それでダメだったら、 $FileName = __DIR__ .'/'. $FileName; ~とかも試してみてください。 P.S. XAMMPはWindowsやMacなどのUNIX系以外のOS上に仮想Linux(UNIX)環境を構築してエミュレートする総合ソフト環境です。従ってXAMMP内ではXAMMPが支配するLinuxのルールに従って全てを処理して行く必要があります。XAMMP、もといLinux環境でのファイルのPATHは httpdocs の設定に依存しますので、これらを用途に応じた適切で正しい設定を記述し編集出来る知識と能力が必須となります。Windowsの基本的なルールやセオリーが全く通用しなくなるので、ある程度の慣れと注意が必要です。
お礼
早速にご回答いただき、有難うございます。 4017Bさんにはこれに関連する前の質問にも回答いただき、本当にお世話になっています。 アドバイス頂いた方法を二つとも試してみましたが、いずれもうまくいきませんでした。 PATHの記述など、XAMPPの使い方もよくわかってなかったみたいなので、自分でもよく勉強をして、解決の糸口を探したいと思います。
お礼
何度もお世話いただき、有難うございます。 アドバイス頂いた3行を挿入したところ、ファイルは削除されました。 var_dump()関数の結果も思った通りのファイルパスになっています。 しかし不思議なことに、「そんなファイルは存在しない」旨のメッセージ がまだ出てきます。後はこれを消す方法がわかればよいのですが、何かアイデアはございますか?お手数をかけて申し訳ありませんが、ご存知でしたらよろしくお願いいたします。
補足
お礼コメント欄でお願いした、「そんなファイルは存在しない」メッセージの消し方については、それを無視して次のページに行くようにしましたので、お忘れください。 色々有難うございました。