mysqlへの転送NG?
register.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Member Registration</title>
</head>
<body>
<form id="registrationForm" action="/register" method="POST" enctype="multipart/form-data">
<label for="nickname">Nickname:</label><br>
<input type="text" id="nickname" name="nickname" maxlength="20"><br>
<label for="gender">Gender:</label><br>
<select id="gender" name="gender">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select><br>
<label for="mail">Email:</label><br>
<input type="email" id="mail" name="mail" maxlength="250"><br>
<label for="prefecture">Prefecture:</label><br>
<input type="text" id="prefecture" name="prefecture" maxlength="20"><br>
<label for="city">City:</label><br>
<input type="text" id="city" name="city" maxlength="255"><br>
<label for="photo">Photo:</label><br>
<input type="file" id="photo" name="photo"><br>
<label for="selfintroduction">SelfIntroduction:</label><br>
<textarea id="selfintroduction" name="selfintroduction"></textarea><br>
<input type="submit" value="Register">
</form>
<script>
const form = document.getElementById('registrationForm');
form.addEventListener('submit', function(event) {
let cancelSubmit = false;
const inputs = form.querySelectorAll('input, select, textarea');
inputs.forEach(function(input) {
if (input.value.trim() === '') {
alert('Please fill in all fields');
cancelSubmit = true;
event.preventDefault();
return false;
}
});
if (!cancelSubmit) {
return true;
}
});
</script>
</body>
</html>
script.js
// httpモジュールとmysqlモジュールをインポート
const http = require('http');
const mysql = require('mysql');
// HTTPサーバーを作成し、リクエストを処理するためのコールバック関数を定義
const server = http.createServer((req, res) => {
// POSTメソッドかつURLが '/register' の場合に処理を実行
if (req.method === 'POST' && req.url === '/register') {
let body = '';
// リクエストデータを受け取る
req.on('data', chunk => {
body += chunk.toString();
});
// リクエストデータの受け取りが完了したら処理を実行
req.on('end', () => {
// 受け取ったデータを処理する
const formData = new URLSearchParams(body);
const nickname = formData.get('nickname');
const gender = formData.get('gender');
const mail = formData.get('mail');
const prefecture = formData.get('prefecture');
const city = formData.get('city');
const photo = formData.get('photo');
const selfIntroduction = formData.get('selfintroduction');
// MySQLデータベースに接続するための設定
const connection = mysql.createConnection({
host: 'localhost',
user: 'root', // MySQLのユーザー名
password: 'rhythm0!KT#$9V', // MySQLのパスワード
database: 'membership_db' // MySQLのデータベース名
});
// MySQLデータベースに接続
connection.connect((err) => {
if (err) {
// MySQLへの接続エラーをコンソールに出力して処理を終了
console.error('Error connecting to MySQL: ' + err.stack);
return;
}
// MySQLに正常に接続された場合、ログに接続したスレッドIDを出力
console.log('Connected to MySQL as id ' + connection.threadId);
// フォームデータをMySQLに挿入するクエリを作成
const sql = `INSERT INTO members (nickname, gender, mail, prefecture, city, photo, selfintroduction, date) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())`;
const values = [nickname, gender, mail, prefecture, city, photo, selfIntroduction];
// クエリを実行して結果を処理
connection.query(sql, values, (err, result) => {
if (err) {
// クエリ実行中にエラーが発生した場合、エラーメッセージをコンソールに出力
console.error('Error inserting data into MySQL: ' + err.stack);
/
お礼
$arrival_d = substr( $arrival, 5, 2); $arrival_m = substr( $arrival, 8, 2); の d と m が逆だったのでちょっとはまりましたが、いただいた内容で すべていけました。ありがとうございます。