2018/04/05

PHP URLのgetパラメータ で利用できる文字列と対策

メールで飛んできた内容にurlを張り付けて、DBに書き込むという
少々危険な匂いを漂わせるプログラムを書いたところ、

urlのgetパラメータにコード変換しないと利用できない文字列があった。

具体には以下の一覧を参照

文字 ! " # $ % & ' ( ) * + , - . /
コード %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2D %2E %2F
文字 : ; < = > ? @ [ \ ] ^ _ ` { | } ~
コード %3A %3B %3C %3D %3E %3F %40 %5B %5C %5D %5E %5F %60 %7B %7C %7D %7E

今回は、メールアドレスをgetパラメータで遣り取りしたかったので、
@を%40に変換してあげる必要がある。

$mailadd= "hoge@hoge.com";
$mailadd = str_replace("@", "%40", $mailadd);


$msg .= "http://192.168.0.xxx/insert.php?password=$password&username=$username&mailadd=$mailadd"."\n";

こんな感じで
メールの本文の中にinsert.php で使う変数をgetパラメータで予め投げておきたいときに
役に立ちそう。
地味に%20の半角や%2fのスラッシュあたりが便利。


postgrers シーケンス nextvalの記述と確認と変更

シーケンス(シーケンシャル、連番)作成
create sequence seq_id start with 1;

現在のシーケンス確認 
SELECT last_value from seq_id;

nextvalの値を確認
select nextval('seq_id');

値を修正
SELECT SETVAL('seq_id',999);