プログラミング経験ゼロで、CGI及びPerlを勉強しだした者です。
初歩的な質問で恐縮ですが、おわかりになる方ご教授願えますか。
open (ANSWER, ">>data.txt");
print ANSWER "$jikan,$data?n";
close (ANSWER);
open関数の箇所を上の様に書いたのですが、自動生成されるはずのdata.txtファイルが見当たりません(CGI-Executablesフォルダ内)
ではということで、data.txtファイルを作ってCGI-Executablesフォルダ内に置いてみたのですが、そちらにも書込みされませんでした。
ブラウザではフォーム入力の次に用意した「出力完了」のページに切り替わるのですが、やはり出力はされていないということでしょうか。
どのように修正すれば良いのか困ってます。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
パーミッションが間違っている可能性があります。
試しに、以下のように変更して実行してみてください。
open (ANSWER, ">>data.txt") || die $!."\n";
#これ以降は特に変更ありません。
#ちなみに$!は直前の標準エラー内容が入った特別な変数です。
permision denined的な文字列がありましたら、
ファイルを作成することのできないパーミッションになっております。
Mac上のCGIが動作するフォルダは、デフォルト「/Library/WebServer/CGI-Executables/」となっていますので、CGI-Executablesのパーミッションを変更すれば動くと思います。
#sudoでchmodを実行する必要があります。
#デフォルトの設定ですと、777に変更すると動くと思います。
ただ、セキュリティ面での不安もありますので、
このMacでのWeb公開はしない方がよいと思います。
#あくまでも、ご自分の勉強で使用の範疇でしたら問題ないですが、
#もしするのであれば、Apacheやセキュリティの勉強が必須となってきます。
回答ありがとうございます。
ご指摘の通り、パーミッションが間違っていたようです ^^;
早速教えていただいたように、open (ANSWER, ">>data.txt") || die $!."?n";と変えて実行してみました。
500番のエラーが出ましたがよくわからないので、CGI-Executablesのパーミッションを確認したところ、775になっていたので777に変更しました。以降正常に作動しています。
とりあえずこのマシンはスタンドアローンでいきます。
たしかにサーバーについてもっと勉強しないと無理ですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
バッチファイル 指定行の切り出し
-
バッチファイルで改行の出力
-
コマンドにてテキストファイル...
-
コマンドプロンプトで相対パス...
-
echo "abc" >> test.txt で、先...
-
コマンドプロンプトでFTPでエラー
-
.txtって、縦書きにはならない...
-
コマンドプロンプトで標準エラ...
-
batファイルの結果をテキストに...
-
コマンド実行結果を環境変数に...
-
linuxのjoinコマンドがうまくい...
-
echoの出力の最後のスペースを...
-
R18文学賞は400字詰め換算で(2...
-
NULLの置き換えについて
-
バッチファイルのfor文を使って...
-
bat処理の実行結果ログ出力方法...
-
fcコマンドにて、list.txt に変...
-
FTPのバッチファイルで日付を引...
-
bashで、gotoのようなラベルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echo "abc" >> test.txt で、先...
-
バッチファイル 指定行の切り出し
-
バッチファイルで改行の出力
-
コマンドにてテキストファイル...
-
echoの出力の最後のスペースを...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで相対パス...
-
batファイルの結果をテキストに...
-
コマンドプロンプトで標準エラ...
-
NULLの置き換えについて
-
FTPのバッチファイルで日付を引...
-
bashで、gotoのようなラベルに...
-
リダイレクト >> を複数のファ...
-
.txtって、縦書きにはならない...
-
bat処理の実行結果ログ出力方法...
-
バッチファイルのfor文を使って...
-
バッチファイル 現在のフォルダ...
-
コマンド実行結果を環境変数に...
-
バッチコマンドの「set」で入力...
おすすめ情報