gpt4 book ai didi

php - 在 cordova 应用程序中使用 ajax 和 html 创建一个 mysql 表

转载 作者:行者123 更新时间:2023-11-30 22:19:04 24 4
gpt4 key购买 nike

我正在使用 cordova 开发一个应用程序,我想创建一个页面,人们可以在其中创建和加入不同的房间(人们可以在其中执行不同的操作)。但是我尝试了不同的教程并在网上冲浪了很多,试图了解如何使用 html 和 ajax 请求创建 mySQL 表到 php 文件,但似乎没有任何效果......你们能帮我了解如何从带有ajax的html页面? (对不起我的英语,我是意大利人!)

这里有一个简单的注册表单似乎不起作用的测试

index.html:

<html>
<head>
<title>Hello World</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>

<form class="" name="form">
username: <input type="text" id="username" type="text"> <br/>
email: <input type="text" id="email" type="text"> <br/>
full name: <input type="text" id="fullname" type="text"> <br/>
password: <input type="password" id="password" type="text"> <br/>

<input type="button" onclick="ajaxFunction()" value="send">

</form>

<div id="ajaxDiv">YOUR RESULT WILL BE SHOWN HERE</div>

</body>

脚本.js

function ajaxFunction(){

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function(){
if (ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById("ajaxDiv");
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}

var username = document.getElementById("username").value;
var email = document.getElementById("email").value;
var fullname = document.getElementById("fullname").value;
var password = document.getElementById("password").value;

var queryString = "?name=" + username;
queryString += "&email=" + email + "&fullname=" + fullname + "&password=" + password;
console.log(queryString);
ajaxRequest.open("GET","fetchdata.php" + queryString, true);
ajaxRequest.send(null);

}

和我的 php 文件:

    <?php

$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "root";
$db = "utopy";

$username = $_GET["username"];
$email = $_GET["email"];
$fullname = $_GET["fullname"];
$password = $_GET["password"];

$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$db);
if(!$conn){
die("Connection Failed: " .mysqli_connect_error());
}

$sql = "INSERT INTO haus (username, password, full_name, email) VALUES (?s,?s,?s,?s)",$username,$email,$fullname,$password);
if(mysqli_query($conn,$sql)){
echo "NEW RECORD CREATED";
} else {
echo "ERROR: " .$sql. "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

?>

最佳答案

您的 PHP 代码完全乱七八糟,您尝试插入查询的方式无法正常工作。

第一个问题是 $dbpass 应该是 $dbpassword,下一个问题是您正在尝试使用甚至不存在的 prepare 函数。

你要做的是使用 mysqli_real_escape_string 转义你从用户那里收到的数据,然后插入它,用下面的代码替换你的整个 php 代码

(cancela il tuo codice e usa quello sotto):

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "root";
$db = "test";

$username = mysqli_real_escape_string($_GET["username"]);
$email = mysqli_real_escape_string($_GET["email"]);
$fullname = mysqli_real_escape_string($_GET["fullname"]);
$password = mysqli_real_escape_string($_GET["password"]);

$conn = mysqli_connect($dbhost,$dbuser,$dbpassword,$db);
if(!$conn){
die("Connection Failed: " .mysqli_connect_error());
}

$sql = "INSERT INTO haus (username, password, full_name, email) VALUES ('$username','$email','$fullname','$password')";
if(mysqli_query($conn,$sql)){
echo "NEW RECORD CREATED";
} else {
echo "ERROR: " .$sql. "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

?>

如果你想跨域请求,那么你必须使用下面的javascript代码

function ajaxFunction(){
var ajaxRequest = new XMLHttpRequest({mozSystem: true});
ajaxRequest.onreadystatechange = function(){
if (ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById("ajaxDiv");
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}

var username = document.getElementById("username").value;
var email = document.getElementById("email").value;
var fullname = document.getElementById("fullname").value;
var password = document.getElementById("password").value;

var queryString = "?name=" + username;
queryString += "&email=" + email + "&fullname=" + fullname + "&password=" + password;
console.log(queryString);
ajaxRequest.open("GET","fetchdata.php" + queryString, true);
ajaxRequest.send(null);

}

关于php - 在 cordova 应用程序中使用 ajax 和 html 创建一个 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253150/

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