我想向朋友发送消息,但它不想进入我的数据库,但即使我使用 $_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 关注
- 95 浏览
添加回答
举报
0/150
提交
取消