自分用のWebアプリを作ってみる(4) -Pear:PDO-

昨日、すっかりCakePHPに挫折してしまいましたが、ウダウダ言っていても仕方がないので、少しずつ堀を埋めていくイメージで進めたい。

と、思い、PearPDOを使ってMySQLにPOSTをしてみました。

初期の構想に則って、まずはPOSTしてMySQLにデータが入れば成功。
設定は独習PHPを参照しながら進めました。(このテキストだと使用しているDBはSQLite。)

phpMyAdminでの作業

  1. データベース「memo」を作成。
  2. テーブル「users」の作成・・・ログイン&POST時のユーザー情報の管理
    • id・・・ユニークなid
    • user・・・ユーザー名
    • password・・・パスワード
    • mobile_id・・・携帯電話のユニークID

■投稿用のページの作成・・・user.php
user


<html>
<head><title>ユーザー管理</title></head>
<body>
<form method="POST" action="insert_user.php">
<table>
<tr><th>USER NAME:</th>
<td>
<input type="text" name="user" size="20" maxlength="50" />
</td>
</tr>
<tr><th>PASSWORD:</th>
<td>
<input type="text" name="password" size="20" maxlength="50" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="submit" />
<input type="reset" value="clear" />
</td>
</tr>
</table>
</form></body></html>

■insert_user.php・・・MySQLへのデータPOST
<?php
//データベース接続情報
$dsn = 'mysql:dbname=memo;host=localhost';
$user = '★★★★';
$password = '★★★★';
try{
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$db->exec("INSERT INTO users(user,password) VALUES
(".$db->quote($_POST["user"]).",". $db->quote($_POST["password"]).")");
//リダイレクト
header("Location:http://localhost/memo/user.php");
} catch (PDOException $e) {
print("ERROR:".$e->getMessage());
}
?>

無事にデータが入りました!!
insert_user

これでPOSTはできるようになりました。XSS脆弱性があるような気もするんだけど、とりあえず動いたので(汗
memoツールのcontentsについてもMySQLへのPOSTも可能になります。

次は、ユーザー認証に挑戦しようと思います。

コメントを残す

メールアドレスが公開されることはありません。