質問編集履歴

1 質問をやり直した。

shoutikubai

shoutikubai score 11

2016/08/08 17:50  投稿

php初心者です。issetの使い方がよくわかりません。
issetをつかって、名前とコメントを入力したときと、空白のときで、働くプログラムを変更したいのですが、やり方がよくわかりません。
###該当のソースコード
 
```php  
<form action="kadai_2_2_1.php" method="post" >
名前を入力してください。<br/>
<input type="text" name="name" value="" /><br/>
コメント<br/>
<textarea name ="comment"cols="50" rows="5"></textarea><br />
<input type="submit" name="toukou" value="投稿" />
<textarea name ="comment"cols="50"
rows="5"></textarea><br />
<input type="submit" name="toukou" value="投稿"
/>
</form>
<?php
if(isset($_POST["toukou"])){
if(isset($_POST["name"] , $_POST["comment"])){
if((isset($_POST["name"])) and (isset($_POST
["comment"]))){
$number = file_get_contents("counter.txt");
$name = $_POST["name"];
$comment = $_POST["comment"];
$date = date('Y-m-d-G-i');
$file_number = "kadai_7.txt";
$number_array = file( $file_number );
for( $i = 0; $i <= count($number_array );++$i ){
    $number++ ;}
$fp = fopen("kadai_7.txt", "a");
fwrite($fp, "$number'<>'$name'<>'$comment'<>'$date\n");
fwrite($fp,
"$number'<>'$name'<>'$comment'<>'$date\n");
fclose($fp);
}
$file_name = "kadai_7.txt";
 $ret_array = file( $file_name );
 
 for( $i = 0; $i < count($ret_array); ++$i ) {
  $line = explode( '<>', $ret_array[$i]);
  echo ( $ret_array[$i] . "<br />\n" );
 }
?>
 
 
```  
###試したこと
自分なりにコードは書いてみたのですが、空白の場合でも、この状態でプログラムが働いてしまうのですが、どうすてばよいのでしょうか?
名前とコメントが空欄のときにはプログラムが動かないようにしたいです。
ifとissetを使って、
if(isset($_POST["toukou"])){
if((isset($_POST["name"])) and (isset($_POST["comment"])))
として、
名前とコメントに書き込まれた場合のみテキストファイルに書き込まれるようにして表示したいのですが、名前とコメントが空白の場合でも、テキストファイルに空白の結果が書きも込まれて表示されてしまいます。名前とコメントが空白の場合はテキストファイルに書き込まれないようにして、書き込まれた場合の値のみ表示されるようにしたいのですが、どうすればよいのでしょうか?
どうかお願いします。
  • PHP

    37427 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る