我的消息输入没有进入数据库

我想向朋友发送消息,但它不想进入我的数据库,但即使我使用 $_POST,它也会显示在 url 中。我得到了我的 currentuserID 和我的 recipientID(我需要发送给的人)因为我 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>

<body>

    <div>

        <form action="" methd="post">

        <h1>Je chat nu met <?php echo $recipientID ?></h1>

            <input type="text" name="message">

            <input type="hidden" name="recipientID" id="" value="<?php echo $recipientID?>">

            <input type="hidden" name="senderID" id="" value="<?php echo $currentUser?>">

            <div class="">

                <button type="submit" class="btn" style="width: 90px">Send</button>

            </div>

        </form>

    </div>

</body>

</html>



哆啦的时光机
浏览 96回答 1
1回答

catspeake

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