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

问题描述 投票:0回答:1

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

所以我不知道这里的问题是什么。

我的message.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 lang="en">
<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>

    <?php foreach($messages as $message): ?>
        <div>                
        <p><?php echo $message["senderID"].": " . $message["content"]; ?></p>
        </div>
    <?php endforeach;?>


</body>
</html>

我的Message.php类:

<?php 
include_once (__DIR__ . "/Db.php");
class Message{
    private $userID;
    private $message;
    private $recipientID;

//getter setter userID
    public function getUserID()
    {
        return $this->userID;
    }

    public function setUserID($userID)
    {
        $this->userID = $userID;

        return $this;
    }

// getter setter recipientID
    public function getRecipientID()
    {
        return $this->recipientID;
    }

    public function setRecipientID($recipientID)
    {
        $this->recipientID = $recipientID;

        return $this;
    }

//getter setter message
    public function getMessage()
    {
        return $this->message;
    }

    public function setMessage($message)
    {
        $this->message = $message;

        return $this;
    }

// om je berichtje in de DB te steken
    public function messageSchrijven(){ 
            $conn = Db::getConnection();

            $statement = $conn->prepare("INSERT INTO msg(senderID,recipientID,content) values(:senderID,:recipientID,:content)");
            $statement->bindValue(":senderID", $this->getUserID()); // huidige user
            $statement->bindValue(":recipientID", $this->getRecipientID()); // de user naarwaar het verstuurd wordt
            $statement->bindValue(":content", $this->getMessage()); // het bericht
            $result = $statement->execute();
            $result = $statement->fetch(PDO::FETCH_ASSOC);
            return $result;
    }

// berichtje afprinten
    public function messagePrint(){ //$senderID,$recipientID
        $conn = Db::getConnection();
        $statement = $conn->prepare("SELECT * from msg where senderID = :senderID AND recipientID = :recipientID"); //where senderID = :senderID AND recipientID = :recipientID
        $statement->bindValue(":senderID", $this->getUserID());
        $statement->bindValue(":recipientID", $this->getRecipientID());
        $result = $statement->execute();
        $result = $statement->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }


}

我从另一个列出了我的“伙伴”的页面获得了我的收件人ID,如果我将其中一个推入,我的用户ID将带到“ message.php”页面。

所以我不知道查询中是否包含该内容,或者在尝试发送时丢失了用户名。但是我试过通过

手动设置userid来测试它
$msg->setUserID("9");
$msg->setRecipientID("10");

但是它不起作用..(顺便说一句,currentUserID = 9,receiverID = 10)。邮件的打印也存在同样的问题。.我没收到。数据库已连接,原因是我可以登录并没有问题。

我想向朋友发送消息,但是它不想进入我的数据库,但是即使我使用$ _POST,它也会显示在url的后面。我得到了当前用户ID和收件人ID(我需要...的人...

php html forms
1个回答
0
投票

IMPLODE

© www.soinside.com 2019 - 2024. All rights reserved.