ど素人から毛を生やす。<延>

MySQL-PHP-HTML の文字列保存・表示備忘録

Web > PHP 2020年4月24日(最終更新:4年前)

2020年4月24日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。
textareaやinputで自由入力できるようにすると、クォーテーションや特定のhtmlタグを入れたときに、処理や表示がバグったり、クロスサイトスクリプティングの被害に遭ったりします。
回避のための処理をいちいち調べるのも面倒なので、備忘的にまとめておくことにします。

PHP←→MySQL

//PHP→MySQL
//文字列をMySQL用にエスケープ
mysqli_real_escape_string($mysqli_connect, $string);
//PHP5以下
mysql_real_escape_string($string);
//text型の場合、バイト超過分は切り捨てずエラーになるので
mb_strcut(mysql_real_escape_string($string, 0, 65535, 'UTF-8');

//MySQL→PHP
//エスケープした文字列を戻す これをやらないと一部のクォーテーションがエスケープされたままになる
stripslashes($string);

PHP→HTML

//タグ等を含んだ文字列をtextarea(input)用にエスケープ
htmlspecialchars($stripslashes_string);
//htmlspecialchars(stripslashes($string));

//textareaで入力した文字列を入力欄外に出力(エスケープ後に改行コードを改行タグに変換)
nl2br(htmlspecialchars($stripslashes_string));
//nl2br(htmlspecialchars(stripslashes($string));
この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)