K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[1943] magic_quotes_gpc
返信


投稿者:Naohiro19
2016/07/05 08:57:46

Link:
PHPにおいて
「magic_quotes_gpc」は5.4.0以降は、デフォルトでOFFに設定されています。
また、mysql_connectなどの巻数がPHP5.5.0以降は非推奨となり、PHP7.0.0で拡張ライブラリが削除されています。

PHPからMySQLに接続するには PDO(PHP Data Object)を使わなければなりません。
PDOの prepare(プリペア)メソッドを使うと名前付きパラメータ(:nameなど)や疑問符パラメータ(?)を利用できます。

例えば ホスト:localhost ユーザー名:root パスワード:なし データベース名:bbs_phpとしてutf-8で接続する場合はこのように書けばOKです。

PDOクラスはPDOExceptionという例外を投げてくるので try-catchで囲む必要があります。

try {
   $dbh = new PDO('mysql:host=localhost;dbname=bbs_php;charset=utf8','root','');
   $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
   echo $e->getMessage();
   exit;
}
で接続が完了します。
PDOでのデータベースを操作する場合は「ドットインストール」というサイトの「PHPデータベース入門」という動画を視聴してください。

フォームにおいてユーザー入力を$_POST/$_GETで入力を受け取ってはいけないらしいので代わりとなるのが filter_input関数です。
たとえば
<input type="text" name="message">
とフォームを入力する欄があるとします。

受け取る場合は
$message = isset($_POST['message'] ? $_POST['message'] : null;
とするのではなく

$message = (string)filter_input(INPUT_POST, 'message');
とするべきでしょう。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[ より新しい投稿] [ より古い投稿]