gpt4 book ai didi

php - AJAX 表单未将值插入 SQL DB

转载 作者:行者123 更新时间:2023-11-29 07:18:14 25 4
gpt4 key购买 nike

我正在尝试合并此代码,以便我可以在提供用户详细信息后注册用户。所有详细信息都将插入数据库,然后加载新页面,所有这些都使用 AJAX 完成。

帮助保持事物的上下文。所有页面均在index.php 内的#main-content div 中加载。它们都是通过 ajax 成功后在 click.js 部分中看到的相同函数加载的。 Register.php 只是此 div 中加载的页面之一。

目前,表单加载正常,提交后,新页面将根据 ajax 函数加载。然而,没有任何内容被插入到数据库中。

免责声明:出于安全目的,我尚未对此进行设置。在设置防止 SQL 注入(inject)之前,这是一个功能问题。

注册.php

<script src="js/click.js"></script>

<form action="click.js" method="post">

<label for="first_name">First Name:</label>
<input type="text" id="first_name" name="first_name" /><br>

<label for="last_name" >Last Name:</label>
<input type="text" id="last_name" name="last_name" /><br>

<label for="username">Username:</label>
<input type="text" id="username" name="username" /><br>

<label for="password">Password:</label>
<input type="text" id="password" name="password" /><br>

<label for="email">Email:</label>
<input type="email" id="email" name="email" /><br>

<button type="submit" id="reg-submit" name="submit">Submit</button>

</form>

click.js

$(document).ready(function(){

$('#reg-submit').click(function() {
var firstName = $('#first_name').val();
var lastName = $('#last_name').val();
var userName = $('#username').val();
var password = $('#password').val();
var email = $('#email').val();
var dataString = 'name1=' + firstName + '&lastname1=' + lastName + '&user1=' + userName + '&password1=' + password + '&email1=' + email;

if (firstName == "" || lastName == "" || userName == "" || password == "" || email == "") {
alert('missing some information');
} else {
$.ajax({
type: "POST",
url: "usersubmit.php",
data: dataString,
cache: false,
success: function(){
$('#main-content').load('php/next-page.php').hide().fadeIn('slow');
}
});
};
return false;
});
});

数据库连接发生在users_db.php中。

用户提交.php

<?php 

include 'users_db.php';

$first1=$_POST['name1'];
$last1=$_POST['lastname1'];
$username1=$_POST['user1'];
$pass1=$_POST['password1'];
$email01=$_POST['email1'];

$userinfo = $conn->prepare("INSERT INTO registered_users (FirstName, LastName, Username, Password, Email) VALUES ('$first1', '$last1', '$username1'', '$pass1', '$email01')");

$userinfo->execute();


$conn = null;
?>

非常感谢!

如果您发现我在表单之外可能遇到的任何其他问题,只是无法提交,请随时指出。

最佳答案

答案是这不是你准备陈述的方式:)

<?php 

include 'users_db.php';

$first1=$_POST['name1'];
$last1=$_POST['lastname1'];
$username1=$_POST['user1'];
$pass1=$_POST['password1'];
$email01=$_POST['email1'];

$userinfo = $conn->prepare("INSERT INTO registered_users (FirstName, LastName, Username, Password, Email) VALUES (?, ?, ?, ?, ?)");
$userinfo->bind_param("sssss",$first1,$last1,$username1,$pass1,$email01);

$userinfo->execute();

// you shoud close the prep statement object
$userinfo->close();
//this is the way to kill the conn
$conn->close();
?>

这是假设您与数据库的连接正常:)

关于php - AJAX 表单未将值插入 SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com