読者です 読者をやめる 読者になる 読者になる

ハロトレWebデザインの勉強03月14日開講クラス授業補足ブログ

入力された値の変数と型

PHP

  • intval関数(文字列を整数に変換する)- 小数点以下は切り捨て
  • ユーザーが入力したデータは「文字列型」です
  • 「文字列型」のまま四則演算ができないため「整数型」に変換します


《sum.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>変数と型</title>
</head>
<body>
<form action="result.php" method="post">
<p>数字1 <input type="text" name="val1"></p>
<p>数字2 <input type="text" name="val2"></p>
<p><input type="submit" value="結果"></p>
</form>
</body>
</html>


《result.php

<?php
$val1 = intval($_POST[ 'val1' ]);
$val2 = intval($_POST[ 'val2' ]);
$result = $val1 + $val2;
$sum = $val1 . ' + ' . $val2 . ' = ' . $result;
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>変数と型</title>
</head>
<body>
<h1><?php echo $sum; ?></h1>
</body>
</html>

isset()

  • 変数が存在しているかどうかの判別を行います


《inch_input.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>inchをcmに変換</title>
</head>
<body>
<form action="inch_output.php" method="post">
<p>インチの半角数字を入力してください。</p>
<p><input type="text" name="inch_unit"></p>
<p><input type="submit" value="変換"></p>
</form>
</body>
</html>


《inch_output.php

<?php
if ( !isset($_POST[ 'inch_unit' ]) ) {
  // 値が入力されていない場合(フォームを表示)
  header( 'Location:inch_input.php' );
  exit;
} else {
  $inch = $_POST[ 'inch_unit' ];
  $inch = floatval( $inch );  // 文字列から数値へ変換
  $cm   = 2.54 * $inch;  // インチからセンチへの変換
  $result = '結果 ' . $inch . ' inch = ' . $cm . ' cm';
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>inchをcmに変換</title>
</head>
<body>
<h1><?php echo $result; ?></h1>
</body>
</html>

PHPでリダイレクトをする

  • もし変数の値が入っていなかったら
  • header関数とLocation
  • 入力画面に戻す(確認画面からの閲覧ができないようにする)


注意点

  • 前後でechoを書いていないか
  • ファイル頭のphpタグの前に空白・改行が混じってないか
  • header関数を呼んだ後、すぐにexit関数で処理を終了しているか
<?php
if( !isset($_POST[ 'your_name' ]) ){
  header( 'Location: index.php' );
  exit;
}
?>


《check.php

<?php
if( !isset($_POST[ 'your_name' ]) ){
  header( 'Location: index.php' );
  exit;
}
$name = $_POST[ 'your_name' ];
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認ページ</title>
</head>
<body>
<h1>入力内容の確認</h1>
<p>あなたのお名前は、<?php echo $name; ?>ですね。</p>
</body>
</html>