PHPを学ぼう!

▼PHPを学ぶチャプターです。

 

 

 

quetion

 

素材メニュー

 ◆Chapter 1

 ◆Chapter 2

 ◆Chapter 3

 ◆Chapter 4

 

制作ヒント

 ◆制作のヒント

 

レッスンメニュー

 ◆Chapter2 練習問題

 ◆Chapter3 DB練習問題

 

サイト運営者がPHPを学んだ
お勧めの書籍です!
これ一冊で基本的なPHPの仕組み、簡単なプログラムの作成、SQLiteを使ったデータベースなどかなり学べる要素が詰まっています!

↓↓↓ ↓↓↓

PHPレッスンブック―PHP5対応

中古価格
¥1から
(2018/7/21 10:07時点)

 

 

サイバーテロの技法について書かれた書籍です!
ハッカーの手法を知ることでご自身のサイトがハッカーに攻撃されたときそれを防ぐ手法を紹介しています。

↓↓↓ ↓↓↓

PHPサイバーテロの技法―攻撃と防御の実際

中古価格
¥525から
(2018/7/21 10:09時点)

 

 

当サイトはロリポップを利用しています。
高機能ながら安価な料金で利用できるのでお勧めです。

↓↓↓ ↓↓↓

 

 

ドメインを取るならここ!
69円~独自ドメインが取れます。

↓↓↓ ↓↓↓

おサルさんでもわかる?ホームページ作り! | htmlタグ辞典+css



◆Tip 4 - 二重投稿の対応(チケットの考え方)

アンケートや投稿、問い合わせ、ショッピングカートなどでユーザーが不意にページを更新したり、ページを戻ったりした場合に二重投稿(処理)される場合があります。
これは、「更新」や「戻ったり」することで再度、そのページが読み込まれ設定していた処理がされることで起こりうる現象なのです。

 

ネットショッピングサイトのカートでよく見かけたりする現象ですが、これもPHPで簡単に対応できます。

 

利用者に「ページの更新をしないでください」、「戻らないでください」とお願いするのもちょっと格好悪いですよね・・・。
その様なプログラムを作成する時には参考にしてください。

 

考え方としては、送信されたデータにチケット、いわゆるタイムスタンプのようなユニークIDを付けてやることで解決できます。
"POST"するタイミングでユニークIDを発行し、プログラム処理用のチケットとするのです。
"SESSION"にも同時に格納することで互いが一致すれば処理をし、そうでなければ処理をしない仕組みにすればページを「更新」、「戻ったり」しても同じ処理をすることを回避できるのです。

 

[チケットのイメージ]
フロー

 

サンプル 1では、チケットを発行しない場合の動作確認ができます。
サンプル 1

 

サンプル 2では、チケットを発行した場合の動作確認ができます。
サンプル 2

 

それぞれのソースの確認は、サンプルで閲覧できます。

 

チケットには、ランダムな数字や記号を使います。
ランダムに育成できるのであれば、"randam"や"time"など何を使ってもよいのでしょうが、多少なりの課題がるようです。
"rand関数"は、数秒の差ではありますが育成するのに時間がかかります。
"time関数"では、育成されるタイムスタンプが可能性としては低いのですが、同時にアクションした人と同じものになる可能性がありセキュリティ上問題を残します。

 

サンプル 2では、チケットの発行を次のとおりとしています。

$_SESSION['ticket'] = md5(uniqid().mt_rand());

 

"uniqid関数"に加えて"mt_rand関数"でランダムなユニークIDを作成し重複のチケット育成を防いでいます。
これを"$_SESSION['ticket']"に代入しています。
SESSIONの使い方は、セッションとクッキーを参照ください。

 

「購入する」ボタンが押されると、育成されたチケットを"$_SESSION['ticket']"の値で送ってあげます。
"form"タグに次の様に、"hidden"を追加します。

//ショートタグ利用の場合
<input type="hidden" name="ticket_chk" value="<?= $_SESSION['ticket']; ?>'" />

 

"POST"された"ticket_chk"と"$_SESSION['ticket']"が一致すれば処理し、そうでなければ処理しないという分岐をしてあげれば、ページ更新などよる二重処理が防げるのです。

if($_SESSION['ticket'] == $_POST['ticket_chk']){
  ...
}else{
  ...
}

 

詳しくは、サンプル 2でソースを確認ください。

 

 


 

 

 

 

 

SSLに対応していません。

 


 

 


 

【関連サイト・リンク】

PHPを学ぼう! htmlタグ辞典+css おサルさんでもわかる? ホームページ作り! パワーポイントでYouTube動画を作る! 準備中 準備中 準備中

▲UP

Copyright (C) Ooedo21.com 2018. All Rights Reserved.

+