gpt4 book ai didi

javascript - XMLhttprequest 不调用 PHP 脚本

转载 作者:行者123 更新时间:2023-12-02 14:05:11 25 4
gpt4 key购买 nike

我对 Web 开发还很陌生,我正在尝试在我的 SQL 数据库中保存 Base64 编码的图像。 sql 语句工作正常,因为我可以通过 PHP 将用户注册数据放入数据库,但是我在使用 XMLhttprequest 将图像发送到 PHP 以便我可以使用 $_GET 方法接收数据时遇到了麻烦。 JQuery 是被严格禁止的,所以我陷入了困境。图像变量包含数据,我确实检查了它是否已正确保存。这就是我发送 XML 请求的方式:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
alert(this.responseText);
}
}
xhttp.open("POST", "saveimage.php?img="+image, true);
xhttp.send();

图像变量包含数据。这段代码也能运行,因为我在中间放置了警报以确保它能运行。然后进入 saveimage.php 文件:

<?php

session_start();

$email = $_SESSION['email'];
$image = $_GET['img'];
$conn = new PDO("mysql:host=localhost; dbname=camagru", "root", "admin");
$conn->setAttribute(PDO::ERRMODE_EXCEPTION);
$sql = $conn->prepare("INSERT INTO `images` (`image`, `email`) VALUES (:image, :email");
$sql->bindParam(':image', $image);
$sql->bindParam(':email', $email);
$sql->execute();

?>

可悲的是,从这里开始,什么也没有发生。无论如何,我的数据库仍然是空的。我错过了什么吗? PHP 脚本看起来根本没有在运行。

最佳答案

您正在通过 Post 发送请求,但仍在检查 $_GET 请求。

像这样设置参数

var params =  "img"+image;

你的电话是这样的

xhttp.open("POST", "saveimage.php, true);
xhttp.send(param);

以及您的服务器响应脚本

<?php 
session_start();

if($_SERVER['REQUEST_METHOD'] == "POST" && (isset($_FILES['img']['name']))
{

$email = $_SESSION['email'];
$image = $_POST['img'];
$conn = new PDO("mysql:host=localhost; dbname=camagru", "root", "admin");
$conn->setAttribute(PDO::ERRMODE_EXCEPTION);
$sql = $conn->prepare("INSERT INTO `images` (`image`, `email`) VALUES (:image, :email");
$sql->bindParam(':image', $image);
$sql->bindParam(':email', $email);
$sql->execute();


}

?>

您是否正在尝试上传文件或只是传递文件名引发ajax?如果您要上传文件,请记住在将文件记录到数据库之前,您必须检查服务器上是否存在文件。如果您不上传,则不需要 (isset)。

关于javascript - XMLhttprequest 不调用 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102655/

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