「PHP/ファイル入出力」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
116 行
:※ Linux における、フォルダ(ディレクトリ)の位置の指定方法については、wikibooks『[[UNIX/Linux入門]]』で、cdコマンドなどを例に書いてある。cdコマンド以外でも、フォルダ位置の指定方法は同様である。
 
 
== HTMLフォーム入力との連動 ==
HTMLには、フォーム入力という機能がある。(※ 詳しくは『[[HTML/フォーム]]』)
 
たとえば、ネット企業の会員登録などのページでよくある、ユーザ名の登録画面のようなものを、作ってみよう。
 
原理的には、下記のようなhtmlファイルで <code>form </code> タグ と <code>input</code> タグを使えば、フォーム入力欄のあるhtmlのwebページを作れる。
 
<syntaxhighlight lang="PHP">
<form action="catchTest.php" method="post">
ユーザー名を登録: <input type="text" name="username">
<input type="submit" value="登録">
</form>
</syntaxhighlight>
 
さて、市販のHTMLの入門書にも、HTMLでのフォーム表示画面の作り方は書いてあるが、しかし、せっかくユーザーに入力してもらった内容を、どうやって保存するかは、なかなか、そういった入門書には書いてない。
 
 
実は、入力内容の保存は、PHPなどで行い、<code>file_put_contents</code>などの関数を使う。
 
そもそも html ファイルは、セキュリティー上の理由により、htmlファイルではパソコンに保存書き込みをできない。なので、PHPなどを使ってサーバー側に保存書き込みを行う。
 
 
そおためには、まず、PHPファイルとhtmlファイルとのデータ通信が必要であるが、このための機能がhtmlの form タグにある。
 
<code><form action="catchTest.php" method="post"></code>とあるが、actionプロパティにより、送信先ファイルを指定でき、通信できる。
 
 
また、受信側のファイルは当然、その catchTest.php というファイル名にする必要がある。
 
よって、上記コードを受け取るために catchTest.php というファイル名で下記のコードを作る。
<syntaxhighlight lang="PHP">
<?php
echo $_POST['username'] ,"と入力されました。" ;
echo "入力されたユーザー名を保存しています。" ;
file_put_contents("../saveDataUp.txt", htmlspecialchars($_POST['username']) , FILE_APPEND);
?>
</syntaxhighlight>
 
上記コードのようにhtmlファイル post メソッドで送られた情報は、
 
PHPファイルで <code>$_POST[' ']</code> というのを使うと、受け取ることができる。
 
<code>htmlspecialchars</code>というのは単に、webページからの文字列コピーペーストでよくある、サイズの大きくなったりした文字などを、通常の文字に直す命令である。
 
 
あとは、/var/www フォルダにある、保存ファイルを見に行けばいい。
 
保存ファイルに、さきほどフォームに入力した文字列が、追記で保存されているハズである。file_put_contents 関数の第一引数で指定した名前のファイル(上記コードの例の場合なら saveDataUp.txt というファイル)に、フォーム入力したユーザー名が登録されるハズである。
 
 
<syntaxhighlight lang="PHP">
 
</syntaxhighlight>
 
 
<syntaxhighlight lang="PHP">