我想向朋友發送消息,但它不想進入我的數據庫,但即使我使用 $_POST,它也會顯示在 url 中。我得到了我的 currentuserID 和我的 recipientID(我需要發送給的人)因為我 var_dump 了這兩個并且得到了兩個 ID。我的 SQL 查詢應該沒有錯我以為我已經與多個人核實過(但是當我在數據庫中測試時它給出了一個錯誤。但是當我在其中放入另一個有效的查詢時,它給出了同樣的錯誤所以我不'不認為這是一個問題)。所以我不知道這里可能是什么問題..我的消息.php:<?phpsession_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 & buddyID2include_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 recipientIDecho "currentUser: ";var_dump($currentUser);echo ". recipientID: ";var_dump($recipientID);//msg wordt in databank gestoptif(!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>
1 回答

catspeake
TA貢獻1111條經驗 獲得超0個贊
內爆
首先,我認為你誤解了 implode 方法。在你的例子中$recipientID
$recipientID = implode(" ",$_POST); //om het getal terug te krijgen van de recipientID
必須包含類似“10 9 This is my Message”之類的內容,這不是 id。添加一些驗證并將其更改為
$recipientID = $_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 type="hidden" name="recipientID" value="<?php echo $recipientID; ?>" />
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消