我想創建一個註冊頁面,如果用戶插入所需的細節,然後點擊註冊按鈕,它應該在選定的表格中插入細節,並在數據庫中創建一個新表格我的HTML代碼:如何使用PHP表格創建mysql表格
<form method="POST" action="signuplink.php" class="form-inline justify-content-center">
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">first_name</label>
<input type="text" name="first_name" class="form-control" placeholder="First Name">
</div>
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">last_name</label>
<input type="text" name="last_name" class="form-control" placeholder="Last Name">
</div>
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">phonenumber</label>
<input type="text" name="phonenumber" class="form-control" placeholder="Contact Number">
</div>
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">username</label>
<input type="text" name="username" class="form-control" placeholder="Username">
</div>
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">email </label>
<input type="text" name="email" class="form-control" placeholder="[email protected]">
</div>
<div class="col-md-6 justify-content-center form-group">
<label class="sr-only">password </label>
<input type="password" name="password" class="form-control" placeholder="select password">
</div>
<button type="submit" name="submit" class="btn btn-success ">Signup</button>
</form>
PHP代碼是如下,其中i重定向形式好心幫自動創建新表時,用戶填寫了成功的形式:
<?php
if (isset($_POST['submit'])) {
include 'connection.php';
$x = mysqli_real_escape_string ($connect, $_POST['email']);
$firstname= mysqli_real_escape_string ($connect, $_POST['first_name']);
$lastname= mysqli_real_escape_string ($connect, $_POST['last_name']);
$username= mysqli_real_escape_string ($connect, $_POST['username']);
$phonenumber= mysqli_real_escape_string ($connect, $_POST['phonenumber']);
$y= mysqli_real_escape_string ($connect, $_POST['password']);
//Error handlers
//Check for empty fields
if (empty($x) || empty($firstname) || empty($lastname) || empty($username) || empty($phonenumber) || empty($y))
{
header("Location: signup.php?signup=empty");
exit();
}
else
{
//Check if input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $firstname) || !preg_match("/^[a-zA-Z]*$/", $lastname))
{
header("Location: signup.php?signup=invalid");
exit();
}
else
{
//Check if email is valid
if (!filter_var($x, FILTER_VALIDATE_EMAIL))
{
header("Location: signup.php?signup=email");
exit();
}
else
{
$_SESSION['first_name']=$firstname;
$sql = "SELECT * FROM users WHERE username='$username' or email='$x'";
$result = mysqli_query($connect,$sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
header("Location: signup.php?signup=usertaken");
exit();
} else {
//Hashing the password
$hashedPwd = password_hash($y, PASSWORD_DEFAULT);
//Insert the user into the database
}
$sql = "INSERT INTO users (ID, username, phonenumber, email,first_name, last_name, password) VALUES ('','$username', '$phonenumber','$x','$firstname','$lastname','$hashedPwd');";
mysqli_query($connect, $sql);
header("Location: signup.php?signup=successfully_logged_in");
exit();
}
if($connect->query($sql)===TRUE)
{
$sql = "CREATE TABLE $username (
ID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)";
if ($connect->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $connect->error;
}
}
}
}
}
else {
header("Location: signup.php");
exit();
}
?>
'CREATE TABLE $ username'你確定要這樣做嗎?這真的不是一個好主意。 –
您是否爲每個用戶創建一個表格?請不要。將所有用戶放在一個表中。讓我們這樣考慮一下:當你可以創建1000行1000行的表時,爲什麼要創建1000行的表? – fedeTibaldo
再次檢查您的邏輯。儘管你的代碼一次一步,你會明白爲什麼它失敗。我想*你*想想它並自己修復它,你會從中吸取教訓。 –