首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果(Isset)$_POST故障

如果(Isset)$_POST故障
EN

Stack Overflow用户
提问于 2015-12-29 22:10:20
回答 3查看 2.6K关注 0票数 1

我真的在和这个做斗争,我试过我能找到的每一个youtube / google页面,似乎没有什么能解决这个问题。

单击submit时,数据库只收集“idContactForm”,而不收集其余的(名称/电子邮件/主题/消息)

我已经尝试了使用if(isset)$_POST行可以找到的所有东西,但是我似乎总是在($name / $email / $subject / $message)上得到“未定义的索引:”错误。

我做错了什么?

代码语言:javascript
复制
 <?php

    include 'config.php';

    if (!isset($_POST['submitted'])) {

        $name = trim(mysqli_escape_string($conn,$_POST['Name']));
        $email = trim(mysqli_escape_string($conn,$_POST['Email']));
        $subject = trim(mysqli_escape_string($conn,$_POST['Subject']));
        $message = trim(mysqli_escape_string($conn,$_POST['Message']));

    } else {
    ## connect mysql server
        $mysqli = new mysqli('localhost', 'root', '******', 'tomepublications');
        # check connection
        if ($mysqli->connect_errno) {
            echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
            exit();
        }


            # insert data into mysql database
            $sql = "INSERT  INTO `contactform` (`idContactForm`, `Name`, `Email`, `Subject`, `Message`) 
                    VALUES (NULL, '{$name}', '{$email}', '{$subject}', '{$message}')";

            if ($mysqli->query($sql)) {
                //echo "New Record has id ".$mysqli->insert_id;
                echo "<p>Registred successfully!</p>";
            } else {
                echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>";
                exit();
            }
        }

    ?>  

HTML

代码语言:javascript
复制
 <form method="post" action="contactf.php">
                                    <div class="form-group">
                                        <input type="text" name="name" id="Name" class="form-control" placeholder="Name" required>
                                    </div>
                                    <div class="form-group">
                                        <input type="email" name="email" id="Email"class="form-control" placeholder="Email" required>
                                    </div>
                                    <div class="form-group">
                                        <input type="text" name="subject" id="Subject"class="form-control" placeholder="Subject" required>
                                    </div>
                                    <div class="form-group">
                                        <textarea name="message" class="form-control" id="Message" rows="15" placeholder="Message" required></textarea>
                                    </div>
                                    <input type="hidden" name="submitted" value="true">
                                    <input type="submit" value="submit" class="btn btn-primary">Send Message</>
                                </form>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-29 22:16:46

您的if是错误的,$name、$email、$subject和$message不在其他范围内。

代码语言:javascript
复制
<?php

include 'config.php';

if (isset($_POST['submitted'])) {

    ## connect mysql server
    $mysqli = new mysqli('localhost', 'root', '******', 'tomepublications');
    # check connection
    if ($mysqli->connect_errno) {
        echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
        exit();
    }

    $name = trim(mysqli_escape_string($conn,$_POST['name']));
    $email = trim(mysqli_escape_string($conn,$_POST['email']));
    $subject = trim(mysqli_escape_string($conn,$_POST['subject']));
    $message = trim(mysqli_escape_string($conn,$_POST['message']));


    # insert data into mysql database
    $sql = "INSERT  INTO `contactform` (`idContactForm`, `Name`, `Email`, `Subject`, `Message`) 
                VALUES (NULL, '{$name}', '{$email}', '{$subject}', '{$message}')";

        if ($mysqli->query($sql)) {
            //echo "New Record has id ".$mysqli->insert_id;
            echo "<p>Registred successfully!</p>";
        } else {
            echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>";
            exit();
        }
    }

?>  
票数 2
EN

Stack Overflow用户

发布于 2015-12-29 22:12:43

这些变量区分大小写。您的表单使用name="name",所有小写,但您正在寻找,$_POST['Name']大写N

票数 3
EN

Stack Overflow用户

发布于 2015-12-29 22:18:06

这些变量($name、$email、$subject、$message)在其他块中构建SQL查询时仍未定义。变量仅在if块中定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34519873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档