プロが教える店舗&オフィスのセキュリティ対策術

プログラミングのPHPの学習中です。
掲示板に関するプログラミングで下記の様なソースコードが記述されていました。
(usersテーブルのusernameとpasswordとセッション変数のusernameとpasswordが等しいという条件の下、情報を抽出するというSQL文です。)
$sql = "select * from users where username = '".$_SESSION["username"]."' and password='".$_SESSION["password"]."'";

上記ソースコードでご質問です。
'".$_SESSION["username"]."'と、'".$_SESSION["password"]."'の箇所で、セッション変数をダブルクォーテーションで囲んでいるのは、変数展開するためと理解しました。また、更にシングルクォーテーションで囲むのは、変数展開したものを文字列として扱う為と理解しました。しかし、セッション変数の両隣にあるピリオドの意味がよく分かりません。文字列と変数を結合する為だと思うのですが、府に落ちません。

どなたかお教え頂ければ幸いです。
何卒宜しくお願い致します。

A 回答 (2件)

セッション変数がダブルクォーテーションで囲われているのではなく


「select * from users where username = '」
「' and password='」
「'」
のそれぞれがダブルクォーテーションに囲まれて文字列として扱われているのです。
    • good
    • 0
この回答へのお礼

回答誠に有難うございます。
「select * from users where username = '」
「' and password='」
「'」のそれぞれが文字列として扱われ、更にセッション変数の箇所が両隣のピリオドで文字列と連結しているということで理解できました。

お礼日時:2011/07/14 01:09

既にご存じじゃぁ、ないですか。


php に限りませんが、ピリオドの意味は、次のようになります。

・文字列演算子として、ピリオドの左右の文字列をつなげる。

仮に

username= pascal
password=newton

とした場合

select * from users where username = 'pascal' and password='newton'

という文字列になるはずです
    • good
    • 0
この回答へのお礼

回答有難うございます。
変数の箇所に具体的に値を代入した例で分かり易かったです。

お礼日時:2011/07/14 01:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!