我想向朋友发送消息,但是它不想进入我的数据库,但是即使我使用$ _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(我需要...的人...
IMPLODE