Py学习  »  DATABASE

会话成员和其他成员ID不会发送到MySQL查询。专用消息系统

DonalC93 • 4 年前 • 741 次点击  

上下文 我是jQuery、PHP和MySQL新手。如果这是一个简单的解决方案,请道歉。

我正在为一个公共论坛构建一个简单的基于我的初始代码的私有消息传递系统(这要简单得多)。在短短的时间内,我已经学完了目前为止所学的内容,我几乎已经完成了困难的部分(检索特定的聊天私人数据)。但我得到一个未定义的变量错误,我似乎无法解决。

注意:未定义的变量:sessionmember-in C: \xampp\htdocs\StEndas\handlers\ajax\u privatemessager.php第28行

注意:未定义的变量:othermember C: \xampp\htdocs\StEndas\handlers\ajax\u privatemessager.php第28行

注意:未定义的变量:sessionmember-in C: \xampp\htdocs\StEndas\handlers\ajax\u privatemessager.php第29行

注意:未定义的变量:othermember C: \xampp\htdocs\StEndas\handlers\ajax\u privatemessager.php第29行

你们俩之间还没有护航队。

模型(pagemail.php)

模型的这个特定部分包含在while循环中,该循环打印除当前会话中的用户之外的每个成员的记录。所有打印的对话窗口都隐藏在一个引导柱状图菜单(切换数据)。

    <div id="member_ID_<?php echo $row['member_ID'];?>" class="tab-pane fade">
                          <header class="clearfix">
                            <h4>Your conversation with <b><?php echo $row['member_name'];?></b>.</h4>
                          </header>
                          <div class="chat">
                            <div class="privatemessager-chathistory scrollfeed">

                            </div> <!-- end forum-chathistory -->
                            <form action="#" method="post">

                              <fieldset>
                                <textarea placeholder="Type message.." id="privatemessager-message" name="privatemessager-message" class="message-box" required></textarea>
                                <input type="text" id="privatemessager-sessionmember" name="privatemessager-sessionmember" value="<?php echo $_SESSION['member_ID'];?>"/>
                                <input type="text" id="privatemessager-othermember" name="privatemessager-othermember" value="<?php echo $row['member_ID'];?>"/>
                                <input type="hidden">
                              </fieldset>

                            </form>
                          </div> <!-- end chat -->
     </div>

jQuery代码(目前也在pagemail.php中)

代码的发送消息部分尚未为此新用途进行修改,请忽略该位。

           <script>

                        $(document).ready(function(){
                          loadChat();
                        });

                        $('#privatemessager-message').keyup(function(e){
                           var privatemessage = $(this).val();
                           // alert(e); // Displays the value of the keyboard button.
                          if(e.which == 13){ // 13 is the keyboard value of the 'Enter' key. "IF (USER HITS ENTER)"
                             $.post('handlers/ajax_privatemessager.php?action=sendPrivateMessage&privatemessager-message='+privatemessage, function(response){
                                 loadChat();
                                 $('#privatemessager-message').val('');
                             });
                          }

                        });

              /* THIS IS THE SECTION NEEDING ATTENTION */

                        function loadChat(){
                          $.post('handlers/ajax_privatemessager.php?action=getPrivatemessage', function(response){
                                $('.privatemessager-chathistory').html(response);
                          });
                        }

                        setInterval(function(){
                            loadChat();
                        }, 1000); // Every 1 second the method 'loadchat' is activated.

          </script>

PHP代码(ajax_privatemessager.PHP)

代码的发送消息部分尚未为此新用途进行修改,请忽略该位。

**<?php
    session_start();
    include "db_Connect.php";


    if(isset($_REQUEST['action'])){
      switch($_REQUEST['action']){

        case "sendPrivateMessage":

        $privatemessage = $_GET["privatemessager-message"];
        $sessionmember = $_GET["privatemessager-sessionmember"];
        $othermember = $_GET["privatemessager-othermember"];

        $privatemessage = addslashes($privatemessage);

           $sql = "INSERT INTO tbl_forum (message, member_ID) VALUES ('$privatemessage', '$new_member_ID' )";
           $result = $mysqli->query($sql) or die(mysqli_error($mysqli));

           echo 1;

        break;


      /* THIS IS THE SECTION NEEDING ATTENTION */

        case "getPrivatemessage":

               $sql = "SELECT privatemessage_message, privatemessage_time_created, privatemessage_sent_by, privatemessage_sent_to
                       FROM  tbl_privatemessages
                       WHERE (privatemessage_sent_by = '$sessionmember' AND privatemessage_sent_to = '$othermember')
                       OR (privatemessage_sent_to = '$sessionmember' AND privatemessage_sent_by = '$othermember')
                       ORDER BY privatemessage_time_created ASC";
               $result = $mysqli->query($sql) or die(mysqli_error($mysqli));

               if ($result->num_rows > 0) {
                 // output data of each row
                 while($row = $result->fetch_assoc()) {
                   ?>
                          <div class="chat-message clearfix">

                                    <div class="chat-message-content clearfix">
                                        <span class="chat-time"><?php echo $row['privatemessage_time_created'];?></span>
                                        <h5><?php echo $row['privatemessage_sent_by'];?></h5>
                                        <p class="chat-message"><?php echo $row['privatemessage_message'];?></p>
                                    </div> <!-- end chat-message-content -->

                          </div> <!-- end chat-message -->
                                <hr>

                   <?php
                 }
               } else {
                 echo "</br></br>";
                 echo "No convo between you two yet.";
               }

        break;
      }
    }

    ?>**

任何建议都会带着感激之情接受。 谢谢你 提前花时间读这篇文章。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51700
 
741 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Nick
Reply   •   1 楼
Nick    5 年前

你的问题是 case "getPrivatemessage" 您试图使用的代码 $sessionmember 等变量,但你没有真正设置它们,因为代码设置它们的值,即。

$privatemessage = $_GET["privatemessager-message"];
$sessionmember = $_GET["privatemessager-sessionmember"];
$othermember = $_GET["privatemessager-othermember"];

只存在于 "sendPrivateMessage" 分支机构 switch 陈述。你要么把代码复制到 "getPrivatemessage" 分支或移动到

if(isset($_REQUEST['action'])){

switch($_REQUEST['action']){