SSLモバイル

第9回 セッションとHTTPヘッダーの基礎 (その1)

ソースコードに戻って

  • さて、前回はひたすらセッションの概要説明ばかりになってしまったけれど、今回は再び第7回のソースコードに戻って解説を続けていこうか。
  • はーい。この2つのコードですね。

 

uranai_ask.php: 

<?php  

if (isset($_POST["uranai"])) { 

    
// 全角のものを半角にする 
    
$age mb_convert_kana($_POST["age"], "a""EUC-JP"); 

    
$error_message array(); 
    if (
is_numeric($age) == false) { 
      
$error_message[] = "年齢は数字で教えてください!"
    } elseif (
$age || $age 120) { 
      
$error_message[] = "年齢は1才から120才の範囲で入力してください!"
    } 
     
    if (!
count($error_message)) { 
        
session_start(); 
        
$_SESSION["age"] = $age
        
header("Location: uranai_result.php"); 
        exit
    } 
} else { 
    
$age 25

?> 
<html> 
<body> 

<?php 
// エラーメッセージを出力する 
if (count($error_message)) { 
    foreach (
$error_message as $message) { 
        print(
$message); 
    } 

?> 
<form action="uranai_ask.php" method="post"> 
年齢を教えてください: 
<input type="text" name="age" 
value="<?php print(htmlspecialchars($ageENT_QUOTES)); ?>"> 
<input type="submit" name="uranai" value="占う!"> 
</form> 
</body> 
</html>
uranai_result.php: 

<?php  

session_start
(); 

if (!isset(
$_SESSION["age"])) { 
    
header("Location: uranai_ask.php"); 
    exit


$sorry_message =   
        
"ちょっとあなたの年齢は対象年齢に含まれていません・・・";  
$uranai_message[1] =   
        
"10代のあなたには、PHPをお守り代わりに勉強するのが良いみたい。";  
$uranai_message[2] =   
        
"20代のあなたには、趣味でPHPを使うと良いみたい。";  
$uranai_message[3] =   
        
"30代のあなたには、ビジネススキルとしてPHPを勉強すると良いみたい。";  
$uranai_message[4] =   
        
"40代のあなたには、PHPは新たなフロンティアとなるでしょう。";  

$sedai floor($_SESSION["age"] / 10);  

?> 
<html> 
<body> 

<?php 
if (isset($uranai_message[$sedai])) {  
  print(
$uranai_message[$sedai]);  
} else {  
  print(
$sorry_message);  


?> 
</body> 
</html>
  • 前回の説明を踏まえて、セッションについて理解できたかな?
  • もちろんです。入力画面で年齢を聞いたら、その値を、セッション変数に保存して、結果画面で使うんですよね。
  • その通り。セッション変数はサーバー側に保存されているから、PHPスクリプトから操作しない限り、その内容が書き換えられることはないんだ。これは、$_POSTや、$_GET変数がユーザーの入力次第ではどのような値でも取り得ることと比較して、信頼性が高い変数と言うことができる。高い安全性を必要とするデータを格納する場合には、セッション変数を使用するようにしよう。
  • なるほどー、了解です!

「Saity先生のPHP基礎講座」のトップへ