忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

序章(16) formからデータを送る

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

序章(16) formからデータを送る

recordsテーブルは、studentsとtestsテーブルを見に行く仕様
→recordsテーブルから入力することはできない。SQL文が正しくても入らない
 
not null制約
一意制約
参照制約
の3つがある
 
参照できない値を入れることはできない
別表を入れてからでないといれない(順番があるよ)
 
たとえばデータが破損してリストアしないといけないときなども、
リストアする順番を考えないとできない
 
この場合、studentsテーブルかtestsテーブルからリストアしないと
recordsテーブルをリストアすることは制約が働いてできないらしく、盲点になるらしい
 

studentsテーブルにデータを登録する画面を作りましょう 
students_form.phpを作ります
 
formはactionとmethodが必要
処理プログラムのパス(送り先)がactionの中身
 <form action="insert_s.php" method="post">
 

バリデーションのチャンスは2回ある
送る前にチェックして「あかんな。入力不足やな」
サーバー側でチェックして「あかんな。以下略」
①両方でやるのがよろしい(二段階でする)
②どっちかしかできなかったらサーバー側でやる
 
なぜか
PHPのエラーがでてしまうと、攻撃者が「ああこういう構造なんだな」という格好の餌を与えてしまう
サーバー側をオフにすることはできないが、クライアント側のバリデーションはオフにされちゃうかもしれないし 
  
inputにはtypeのほかにname属性とid属性両方つけるとよろしい
  <p><input type="text" name="s_name" id="s_name"></p>
 
カラム名とこのidとnameは全部記述をそろえましょう。
名前はきれいに統一しておくように
 

labelやinputはインライン要素なので、<p>や<div>でくくっておくのが望ましい
 

そういうわけで、
schoolフォルダのなかに、
students_form.php、insert_s.phpと、cssフォルダとjsフォルダをつくり、
各フォルダには各々style.cssとform.jsをおいておく
 
--->students_form.php
 
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>生徒登録</title>
 <link rel="stylesheet" href="css/style.css">
 <script src="../jquery-3.4.1.min.js"></script>
</head>
<body>
 <div id="container">
  <h1>新規生徒の登録</h1>
  <form action="insert_s.php" method="post">
   <p>
    <label for="s_name">生徒氏名</label>
    <input type="text" name="s_name" id="s_name"></p>
   </p>
   <p><button type="submit">送信</button></p>
  </form>
  <p id="msg"></p>
 </div>
 <script src="js/form.js"></script>
</body>
</html>
 
--->insert_s.php
 
<?php
 echo "<meta charset='utf-8'>";
 echo "ok";
?>
 
--->style.css
 
body{
 background: #eff;
}
 
--->form.js
 
$(function(){
 console.log("hoge");
});
 
 

このinsert_s.phpは英語しか書けない。キャラクタセットされてないので。
したかったら、
<?php
//echo "<meta charset='utf-8'>";
echo "ok";
?>
こうは記述しないらしいよ。ふつうに<!DOCTYPE html>から記述するのが一般的らしい
 
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R