テキストボックスから入力された文字を取得し、ファイルに保存する方法について、以下のように処理を行った結果、ローカル環境では、動くのですが、レンタルサーバー(スマイルサーバー)上で動きません。レンタルサーバー上でも同様に動くようにするには、どうしたらいいか教えてください。宜しくお願いします。
HTMLテキストBOX
<form action="/search.php" method="post">
<INPUTtype="text"size="36"name="kensaku"></FONT><BR>
<INPUT type="submit" value="データの検索">
serch.phpの書き出し部分のソース
$kensaku=$_POST["kensaku"];
$fd = fopen("/users.txt","a");
$str = " $kensaku";
fputs( $fd, $str );
fclose( $fd );
動いた環境のPHPバージョンは5.2.4
レンタルサーバーのPHPバージョンは、わかりません!
No.1ベストアンサー
- 回答日時:
>> レンタルサーバー(スマイルサーバー)上で動きません。
動かないとはどのような状態かを公開しておくと適切な回答が
得られると思います。
例えば
・「データ検索」ボタンをクリックしても画面が出てこない
→ /serch.php のパスが間違っている "/"はドキュメントルートを指します
・ファイルオープンのエラー表示がでる。
または異なる場所にファイルが作成される。
データが書き込まれない
→ /users.txt のパスかパーミッションが間違っている。
上記のファイルはドキュメントルートではなく
サーバーのルートディレクトリ上に有ることになりますが、
ルートにこのファイルを配置できるとは思えません
・文字化けが発生する
→ 文字コード処理に間違いがある。サーバーのデフォルト文字コードと不一致など
などなど、 “動かない”だけではいろいろなことが考えられるので特定は困難かと・・
この回答への補足
MPXさん早速回答いただきましてありがとうございます。またPHP初心者な者で質問の仕方がまとを得ておらず申し訳ありません。いままでの状況を書きますので、宜しくアドバイスお願いいたします。
●フォームのテキストボックスから入力したデーターは、$strの中に
入っています。(上に書いたserch.phpの最後の行の下で echo $str;
で確認したところ、文字列は入力されている)
●PHPは、特にエラーメッセージなどはでません
●users.txtの中に文字列が書き込まれません。(白紙の状態です)
●user.textのパーミッションは644→766にしてみましたが、改善されませんでした。パーミッションはいくつにするのがいいのか教えてください
>サーバーのルートディレクトリ上に有ることになりますが、
>ルートにこのファイルを配置できるとは思えません
●サーバーのルートにおけないのですか?素人でもうしわけありません!ではサーバーのどこに配置するかといったことは、サーバーの会社に聞かないと解決しないのでしょうか?一般的な方法で、改善策がある場合はご教授くださいお願いいたします。
No.2
- 回答日時:
>> ●user.textのパーミッションは644→766にしてみましたが、改善
>> されませんでした。パーミッションはいくつにするのがいいのか
>> 教えてください
>> ●サーバーのルートにおけないのですか?素人でもうしわけあり
>> ません!ではサーバーのどこに配置するかといったことは、サー
>> バーの会社に聞かないと解決しないのでしょうか?
パーミッションはWEBサーバーが誰の権限でPHPを実行しているか、
書き込むファイルおよびそのファイルのフォルダーのオーナーを
誰にしているか不明なので一般論しか言えませんが、
セキュリティーを考えずに甘い設定をするなら以下に変更してみてください
1. "user.txt"をルート以外の任意のフォルダーに配置する。
2.そのフォルダーとuser.txtのパーミッションを777にする
それでも書込みできないなら、他のプログラムにミスが有る可能性があります
もしもそれで動いたら、フォルダーを757 ファイルを666等
徐々に制限かけるように変更してみる。
この回答への補足
users.textを任意のフォルダーの中にいれパーミッションをどちらも777でやってみたのですが、かきこみできませんでした。(任意のフォルダーを作る位置はルートの中にしかできなかったのですが・・・)
ローカルの環境では、同じコードで動いていたんで、WEB上でも動くものと簡単に考えておりましたが、難しいことが判りました。自分のミスをチェックし、レンタルサーバーに問い合わせしてみます。
MPXさん何回も親身になって回答を頂きありがとうございました。結局のところ、ファイルのPATH指定が/users.txtではなく./users.txtであることが判明しました。初歩的なミスで申し訳ありません。修正することで、おかげさまで無事目的を達成することができました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlspecialcharsが機能してい...
-
プロパティファイルの読み込み...
-
【file_exists】ファイルが存在...
-
session_start()でwarningが表...
-
includeができない
-
use と requireの違いは?
-
OpenPNEでエラー
-
JugemKeyやはてな認証APIを使っ...
-
PHPファイルの中身が見られるこ...
-
PHPを使ってのサーバ上ファイル...
-
URLが.PHPってどういう...
-
sqlite_open、SQLite3::open
-
.phpと.incファイルの違いはな...
-
【PHP】FTP関数でのバックアッ...
-
htaccess設定値を、PHPから動的...
-
Xamppでindex.phpだけしか表示...
-
onedrive にexcelファイルをア...
-
mysql utf8、php・euc-jp で出...
-
PHPのif文でその処理を途中で抜...
-
バッチを用いたフォルダの自動移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
.phpファイルが、表示されない
-
URLが.PHPってどういう...
-
サイトのphpソースコードを表示...
-
HTMLに埋め込んだPHPがうまく出...
-
PHP+MySQL SQL文を外部ファイル...
-
use と requireの違いは?
-
さくらレンタルサーバーでPHPが...
-
PHPファイルの中身が見られるこ...
-
プロパティファイルの読み込み...
-
fputs()はfwrite()のエイリアス...
-
コマンドプロンプト エラー
-
PHPを使ってのサーバ上ファイル...
-
phpmailerで送れない添付ファイ...
-
htmlspecialcharsが機能してい...
-
別のドメインのファイルをrequire
-
[PHP+XML]PHPで動的に出力す...
-
CakePHP2のCronでのShellを使う...
-
phpinfoの内容が見れない
おすすめ情報