猿问

我的消息输入未进入数据库

我想向朋友发送消息,但它不想进入我的数据库,但即使我使用 $_POST,它也会显示在 url 中。我得到了我的当前用户 ID 和收件人 ID(我需要发送给的人),因为我 var_dump 这两个并得到了两个 ID。我的 SQL 查询不应该是错误的,我认为我已经与多个人进行了检查(但是当我在数据库中测试时它给出了一个错误。但是当我在其中放入另一个有效的查询时,它给出了相同的错误,所以我不这样做我不认为这是一个问题)。


所以我不知道这里可能有什么问题..


我的消息.php:


<?php

session_start();

if (empty($_SESSION['user_id'])) {

    header('Location: login.php');

}

//Hier mag enkel het gesprek te zien zijn tussen 2 users die met elkaar bevriend zijn

//tabel buddies >buddyID1 & buddyID2


include_once(__DIR__."/inc/header.inc.php");

include_once(__DIR__."/classes/Message.php");

include_once(__DIR__."/classes/User.php");


$userArray = $_SESSION['user_id'];

$userID = implode(" ", $userArray);

$currentUser = $userID;


//var_dump($_POST);


$recipientID = implode(" ",$_POST);//om het getal terug te krijgen van de recipientID

echo "currentUser: ";

var_dump($currentUser);

echo ".  recipientID: ";

var_dump($recipientID);




//msg wordt in databank gestopt

if(!empty($_POST['message'])){

    $msg = new Message();

    $msg->setUserID($currentUser);

    $msg->setRecipientID($recipientID);

    $msg->setMessage(htmlspecialchars($_POST['message']));

    $msg->messageSchrijven();

}


//msg wordt afgedrukt/gereturned

$msg2 = new Message();

$messages = $msg2->messagePrint();



?><!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

我从列出了我的“好友”的另一个页面获取我的收件人 ID,如果我推送其中一个,我会得到他/她的用户 ID 到“message.php”页面。

所以我不知道这是否与我的查询有关,或者当我尝试发送它时我丢失了我的用户ID。但我尝试通过手动设置用户 ID 来测试它

$msg->setUserID("9");
$msg->setRecipientID("10");

但它不起作用..(当前UserID = 9,recipientID = 10 目前顺便说一句)。打印消息也有同样的问题..我不明白。数据库已连接,因为我可以毫无问题地登录和注册。


慕的地10843
浏览 89回答 0
0回答

Cats萌萌

内爆首先,我认为您误解了内爆方法。在你的例子中$recipientID$recipientID = implode(" ",$_POST); //om het getal terug te krijgen van de recipientID必须包含类似“10 9 这是我的消息”的内容,而且没有 id。添加一些验证并将其更改为$recipientID = $_POST['recipientID'];您可以在 php.net 上找到一些有关 implode 的信息PDO执行如果您使用 PDO,execute 方法将返回一个布尔值(在php.net PDPexecute上搜索)。所以如果不使用返回值,就这样使用$statement->execute();另外删除$result = $statement->fetchAll(PDO::FETCH_ASSOC);插入方法中的行。错误PDO之后execute()你可以使用print_r($statement->errorInfo());获取查询的错误。数据库我们看不到您的数据库架构,是否您违反了表的唯一键或字段类型?超文本标记语言从我的观点来看,我总是会在变量名和 php 声明之间写空格,如下所示<input type="hidden" name="recipientID" value="<?php echo $recipientID; ?>" />
随时随地看视频慕课网APP

相关分类

Html5
我要回答