• 締切済み

テキストボックスの値をファイルに保存する方法

テキストボックスから入力された文字を取得し、ファイルに保存する方法について、以下のように処理を行った結果、ローカル環境では、動くのですが、レンタルサーバー(スマイルサーバー)上で動きません。レンタルサーバー上でも同様に動くようにするには、どうしたらいいか教えてください。宜しくお願いします。 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バージョンは、わかりません!

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

>> ●user.textのパーミッションは644→766にしてみましたが、改善 >> されませんでした。パーミッションはいくつにするのがいいのか >> 教えてください >> ●サーバーのルートにおけないのですか?素人でもうしわけあり >> ません!ではサーバーのどこに配置するかといったことは、サー >> バーの会社に聞かないと解決しないのでしょうか? パーミッションはWEBサーバーが誰の権限でPHPを実行しているか、 書き込むファイルおよびそのファイルのフォルダーのオーナーを 誰にしているか不明なので一般論しか言えませんが、 セキュリティーを考えずに甘い設定をするなら以下に変更してみてください 1. "user.txt"をルート以外の任意のフォルダーに配置する。 2.そのフォルダーとuser.txtのパーミッションを777にする それでも書込みできないなら、他のプログラムにミスが有る可能性があります もしもそれで動いたら、フォルダーを757 ファイルを666等 徐々に制限かけるように変更してみる。

tuy1964
質問者

お礼

MPXさん何回も親身になって回答を頂きありがとうございました。結局のところ、ファイルのPATH指定が/users.txtではなく./users.txtであることが判明しました。初歩的なミスで申し訳ありません。修正することで、おかげさまで無事目的を達成することができました。ありがとうございました。

tuy1964
質問者

補足

users.textを任意のフォルダーの中にいれパーミッションをどちらも777でやってみたのですが、かきこみできませんでした。(任意のフォルダーを作る位置はルートの中にしかできなかったのですが・・・) ローカルの環境では、同じコードで動いていたんで、WEB上でも動くものと簡単に考えておりましたが、難しいことが判りました。自分のミスをチェックし、レンタルサーバーに問い合わせしてみます。

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> レンタルサーバー(スマイルサーバー)上で動きません。 動かないとはどのような状態かを公開しておくと適切な回答が 得られると思います。 例えば ・「データ検索」ボタンをクリックしても画面が出てこない  → /serch.php のパスが間違っている "/"はドキュメントルートを指します ・ファイルオープンのエラー表示がでる。  または異なる場所にファイルが作成される。  データが書き込まれない  → /users.txt のパスかパーミッションが間違っている。   上記のファイルはドキュメントルートではなく   サーバーのルートディレクトリ上に有ることになりますが、   ルートにこのファイルを配置できるとは思えません ・文字化けが発生する  → 文字コード処理に間違いがある。サーバーのデフォルト文字コードと不一致など などなど、 “動かない”だけではいろいろなことが考えられるので特定は困難かと・・

tuy1964
質問者

補足

MPXさん早速回答いただきましてありがとうございます。またPHP初心者な者で質問の仕方がまとを得ておらず申し訳ありません。いままでの状況を書きますので、宜しくアドバイスお願いいたします。 ●フォームのテキストボックスから入力したデーターは、$strの中に 入っています。(上に書いたserch.phpの最後の行の下で echo $str; で確認したところ、文字列は入力されている) ●PHPは、特にエラーメッセージなどはでません ●users.txtの中に文字列が書き込まれません。(白紙の状態です) ●user.textのパーミッションは644→766にしてみましたが、改善されませんでした。パーミッションはいくつにするのがいいのか教えてください >サーバーのルートディレクトリ上に有ることになりますが、 >ルートにこのファイルを配置できるとは思えません ●サーバーのルートにおけないのですか?素人でもうしわけありません!ではサーバーのどこに配置するかといったことは、サーバーの会社に聞かないと解決しないのでしょうか?一般的な方法で、改善策がある場合はご教授くださいお願いいたします。

関連するQ&A

  • チェックボックスの検索システムじゃなく、テキストけ

    テキスト検索システムを開発したいです。 チェックボックスの場合 name="kensaku[]"とhtml側でPOSTし、PHP側で$kensaku=$_POST['kensaku']とし、SELECT文で呼び出しますが、テキストタイプの場合、どのようにするのでしょうか??

    • ベストアンサー
    • PHP
  • jspのテキストボックスの値保持について

    jspにおける、値の保持についての質問です。 以下のjsp内テキストボックスに値を入れ、その値を元に検索する、というものです。 jspです <form name = "form_serchList" method ="post" action ="BookSrv" > 書籍名検索 <br> 書籍名をどうぞ<input type = "text" name = "serchWord"> <input type = "hidden" name = "serch" value = "serch"> <input type="submit" value="検索"> </form> servletです // 一覧/検索画面の検索を押した際の処理 }else if("serch".equals(serch)){ // 検索したい言葉を取得 String serchWord = request.getParameter("serchWord"); // セレクト処理を呼ぶ List<BookBean>list_ = bd.selectOrSerch(con_,serchWord); // ジャンル一覧をリクエストスコープに格納 request.setAttribute("BOOK_LIST",list_); address = LIST; その際、例えば「ア」を入れて検索した場合検索は可能ですが、テキストボックス内の「ア」は消えてしまいます。これを、「ア」を消さずに保持しておく、というやり方について、どなたか教えて頂けないでしょうか?よろしくお願い致します。

    • ベストアンサー
    • Java
  • テキストボックスについて

    [開発環境] Windows2000 VB6.0 ※Dirで取得したFile名のチェックシステム。 [クライアント環境] WindowsNT4.0Server(VBランタイム無し) Windows2000Server(VBランタイム無し) [質問] IniFileに下記のような禁止文字を設定しております。 【BAT_TXT=あいうえおかきくけこさしすせそたちつてと】 Fromの設定画面にテキストボックスを配置して、追加・ 削除を容易にしてるのですが、このまま禁止文字が増え るとLordイベント時にテキストボックスから溢れてしま います。 「改行」を入れないで、テキストボックス内に流し込み・ その他の方法で、全ての文字を表示させる事は、可能で しょうか? 良いアイディアをお願い致します。

  • テキストボックスの値を取得したい

    PHP、JavaScriptのプログラムに関して質問します。 下記のように変数$nameに"名前"と初期値が入っていて、Web画面上で下記テキストボックスに "ありさ"と書き替えて、修正ボタンを押しても、$_POST["name"]が"名前"のままで変更されていません。"ありさ"をPHPで取得したいのですが、何がおかしいのでしょうか? function send(){ document.fm.action = "aaa.php"; document.fm.operate.value = "modify"; document.fm.submit(); } <form name="fm"> <input type="text" name="name" value="<?=$name?>"> <input id="btn" type="button" name="modify" value="修正" onClick="send()"> </form>

    • 締切済み
    • PHP
  • テキストボックスにカーソルを固定

    いつもお世話になっています。VB.NETで開発をしているのですが、行き詰まっています。知識をお借りできれば幸いです。(説明が分かり辛く申し訳ありません。) (1) テキストボックスにバーコードを入力し、読込む。 (2) ポストバックがかかった後もそのテキストボックスにカーソルを固定させておくことで、バーコードの連続入力を行いたい。現状は、ポストバック後カーソルがなくなる(クリックし再設定が必要)。 (3) WebFormにテキストボックスを直接作成しているのではなく、ユーザーコントロールのテキストボックスにカーソルを戻したい。 (4) 以下、試みました。aspxのhtmlです。ユーザーコントロールのテキストボックスのInputNameはucA.BarCodeとします。 <HTML>  <HEAD>    ・・・    <script language="javascript">      function SetForcus() {                   ucA.BarCode.focus();                  }    </script>   </HEAD>   <body onload="javascript:SetForcus()" onmousedown="ClickCheck()">   <form id="Form1" method="post" runat="server"> ・・・     <asp:Panel id="pnl" runat="server">  <uc1:A id="ucA" runat="server"></uc1:A>      </asp:Panel>                ・・・   </form>  </body> </HTML>

  • テキストボックスの表示

    よろしくお願いします。 早速ですが、テキストボックスにおいて、入力した値を POSTしても残すようにしていたのですが、突然できなくなりました。 何が原因と思われますか? php.iniの内容とか関係してきますでしょうか?? formのactionはPHP_SELFにして、 <input type=text name=hoge value=$hoge> にして -------------------------------------------------- $hoge=$_REQUEST["hoge"]; 以下処理を走らせてます。 今までは問題なかったのですが・・・・ よろしくお願いします

    • ベストアンサー
    • PHP
  • frame間の値の受け渡し方法

    環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 --------------------------- frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 --- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php"> メニュー用のPHPに --------------------------- aa.php(左のメニュー画面) 「number」というテキストボックスに入力して、 「検索」をクリックすると、 右の画面にデータが表示されます。 <FORM name="Form1" METHOD=post target="migi"> number<INPUT TYPE=TEXT NAME=number SIZE=5> <a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a> --------------------------- ee.php(左のデータ画面) テキストボックス「number」の値を受け取るために echo $_POST['number']; 「number」の値が表示されません。 どのようにすれば受け取れますか?

    • ベストアンサー
    • PHP
  • テキストフィールドの値に変更があったら

    テキストフィールド(start_date)では、 $("#start_date").datepicker({dateFormat:'yy-mm-dd'}); として日付入力をします。 その日付フィールドに変更があったら、ajaxaで処理をしたいのです。 そこで、jsに $(document).ready(function() { $(".start_date").change(function(){ var d=$(this).val(); var dataString = 'start_date'+ d; $.ajax({ type: "POST", url: "ajax_org.php", data: dataString, cache: false, success: function(html){ $(".org_id").html(html); } }); }); }); と記述し、変更があったらajax_org.phpを読んで、セレクトボックスの内容を変更させようと しているのですが、このajax_org.phpにテキストボックスの内容がPOSTされないのです。 セレクトボックスに変更があった場合には、valの値が、上記の記述でPOSTで読めるのですが、 なにがいけないのでしょうか? ご教授お願いします!!

    • 締切済み
    • PHP
  • 別のファイルへ値を受け渡す方法

    【index.php】というファイルで、画像のURLとテキストデータを【img.php】へ値を受け渡すプログラムを記述しています。 【index.php】では <form action="index.php" method="POST">  <textarea name="intxt" rows="10" cols="30"></textarea>  <input type="radio" name="image" value="4.jpg"> </form> <?php   $imgfile=$_POST['image'];   $text=$_POST['intxt'];   print "<img border='0' src='img.php?imgfile=$imgfile&text=$text'>"; ?> と記述し、 【img.php】ファイルで値を受け取るために、   $text=$_GET['text'];   $imgfile=$_GET['imgfile']; と記述しました。 しかし、値が受け渡されていません。  $text=$_POST['text'];  $imgfile=$_POST['imgfile']; でも試してみましたが、結果は同じく値が受け渡されていませんでした。 何か足りないのでしょうか? 開発環境は、PHP5.2.5、Apache2.2、WindowsXPです。 知恵をお貸しください。 お願いします。

    • ベストアンサー
    • PHP
  • 「テキストボックス→Enterキー」でページが切り替わらない

    下記のようなフォームを作成しています。 (1)テキストボックスに値を入力する (2)「送信ボタン」またはEnterキーを押す (3)postにテキストボックスで入力した値が代入され、actionで設定したPHPファイルを読み込む (2)のEnterキーを入力したときになにもアクションが起こりません。 考えられる原因や対応方法をお願いします。

    • ベストアンサー
    • PHP