duande8497 2015-10-24 21:52
浏览 28
已采纳

$ _GET值为空isset if语句

I am creating a messaging system and storing the message on to a database from a form.

<form action = "sendmsg.php" method="POST">
            <input type="text" placeholder="Enter subject" name="subject"><br/><br/>
            <textarea style="height:300px;width:450px;" maxlength="50" placeholder="Enter Message" name="message"></textarea><br/><br/>
            <input type="submit" name="submitmsg" value="Send Message"/>
            <?php
            require("dbcon.php");

            if(isset($_POST['submitmsg'])){
                $to = $_GET['id']; 
                $subject = $_POST['subject'];
                $message = $_POST['message'];
                $sql = "INSERT INTO msg VALUES ('','$to','NOW()','$subject','$message')";
                $send = mysqli_query($con, $sql);
                echo "Done";
                echo $to;
            }

My problem here is once the submit button has been selected, the $_GET['id'] value is empty. The sql query executes but $_GET['id'] is empty. I have tried various ways to get the $_GET['id'] to work like using a double if statement to check $_GET and $_POST but that didn't work anyway.

I am kinda new to php and been doing this on and off basis.

Any suggestions?

  • 写回答

1条回答 默认 最新

  • duang5049 2015-10-24 22:01
    关注

    You are sending in the data via the form but you are not sending in any URI information for the $_GET array to parse. Also I am assuming that the HTML and PHP are on separate pages if not you will have to do PHP_SELF as your action to post back to itself properly.

    You will need to add this to your form action

    ?id=<?php echo $id ?>
    

    Like so:

    <form action = "sendmsg.php?id=<?php echo $id ?>" method="POST">
            <input type="text" placeholder="Enter subject" name="subject"><br/><br/>
            <textarea style="height:300px;width:450px;" maxlength="50" placeholder="Enter Message" name="message"></textarea><br/><br/>
            <input type="submit" name="submitmsg" value="Send Message"/>
            <?php
            require("dbcon.php");
    
            if(isset($_POST['submitmsg'])){
                $to = $_GET['id']; 
                $subject = $_POST['subject'];
                $message = $_POST['message'];
                $sql = "INSERT INTO msg VALUES ('','$to','NOW()','$subject','$message')";
                $send = mysqli_query($con, $sql);
                echo "Done";
                echo $to;
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C