※ ChatGPTを利用し、要約された質問です(原文:PHPで生成した値をデータベースに送る方法)
PHPで生成した値をデータベースに送る方法
題名の通りです。入力画面上で自動生成させた値(今回はパスワード)を入力したテキストと一緒にデータベースへ送りたいと思ってますが行き詰りました。テキストは無事データベースへ送信されますがパスワードが送信されません。というか送信側の記述方法が分からず何も書いていないので当然ですがさっぱりです(;;)何卒、ご指導お願いします。(なお、プログラムの一部はネット上に公開していた物を使わせていただいております。)
【入力画面側 nyuryoku.php】
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<FORM name="form1" method="post" action="view.php">
<?php
//----------------------//
// パスワードを生成する //
//----------------------//
// パスワードの長さ設定
define(PASSWORD_LEN, 9);
// 乱数表シードを決定
srand((double)microtime() * 12345678);
// パスワード配列を作成
$pwelemstr = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345679";
$pwelem = preg_split("//", $pwelemstr, 0, PREG_SPLIT_NO_EMPTY);
// ランダムパスワードを生成⇒表示。
print makePassword(PASSWORD_LEN) . "\n";
// ランダムパスワードを生成する関数
function
makePassword($length) {
global $pwelem;
$password = "";
for($i=0; $i<$length; $i++ ) {
// パスワード文字列を生成
$password .= $pwelem[array_rand($pwelem, 1)];
}
return $password;
}
?>
<BR><BR>
BACK_PASS<BR>
<INPUT type="text" name="back_pass">
<BR>
FRONT_PASS<BR>
<INPUT type="text" name="front_pass">
<BR><BR>
<INPUT type="submit" value="送 信">
</FORM>
</BODY>
</HTML>
【送信側 view.php】
<HTML>
<HEAD>
<TITLE>view.php</TITLE>
</HEAD>
<BODY>
<?php
require_once("DB.php");
$dbUser = "USER"; // ユーザー名
$dbPass = "PASS"; // パスワード
$dbHost = "LOCALHOST"; // ホスト名
$dbName = "DATABASE"; // データベース名
$dbType = "mysql"; // データベースの種類
$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";
// データベースに接続
$conn = DB::connect($dsn);
// 接続に失敗したらメッセージを表示して終了。
if (DB::isError($conn)){
die($conn->getMessage());
}
// POSTされたデータを受け取り、エスケープ。
$back_pass = addslashes($_POST['back_pass']);
$front_pass = addslashes($_POST['front_pass']);
$sql = <<<EOS
INSERT INTO passkanri
(
back_pass,
front_pass
)
VALUES
(
'$back_pass',
'$front_pass'
)
EOS;
if(preg_match("/Windows/", $_ENV["OS"])){
$sql = mb_convert_encoding( $sql, "SJIS", "EUC-JP");
}
// SQL文を発行
$result = $conn->query($sql);
if (DB::isError($result)) {
die ($result->getMessage());
}
$count = $conn->affectedRows();
print "データを" . $count . "件、挿入しました。";
// データベースから切断します。
$conn->disconnect();
?>
</BODY>
</HTML>
お礼
(;;)すごい!完璧です!!! 2日悩んだことが一発で解決しました。 これからFLASHとの連携でまた悩むと思います。 その時はまたご指導お願いいたしますm(_ _)m この度は本当にありがとうございました。(^^)