我正在尝试创建一个注册页面,如果用户插入所需的详细信息,然后单击注册按钮,它应该在选定的表中插入详细信息并在数据库中创建一个新表格,我的html代码是:
<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="username@domain.com">
</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代码如下所示我重定向表单,当用户成功填写表单时,自动帮助创建新表:
<?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();
}
?>
答案 0 :(得分:0)
@ Fred-ii-非常感谢兄弟相信我,我解决了它并且它的工作完全正常,因为我想要它;下面是工作的PHP -
<?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
{
$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");
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();
}
答案 1 :(得分:0)
如果您正在尝试创建电子商务后端,那么如果您还在学习,则应该从头开始。至少如果您正在考虑存储任何珍贵的数据(电子邮件/密码组合和信用卡)。
就每个用户的表而言,它对数据库的效率不高。不同的想法。
你有:
- 客户(您的用户)
- shipping_addresses(您可以通过customer_id
将这些链接链接到客户)
- 推车(再次,您可以通过customer_id
将这些链接链接到客户)
- 订单(...您可以通过customer_id
)
您只需要插入一个新行,并根据登录用户的id
,将该ID添加到目标表的customer_id
字段。
实施例。保罗创造了一个新秩序。
$sql = "INSERT INTO orders (id, customer_id, order_number, order_status, created_at, updated_at) VALUES ('', '$logged_in_users_id', '$generated_unique_order_number', '$initial_order_status', '$created_at_timestamp', '$updated_at_timestamp');";