繁体   English   中英

表单未将数据插入mysql数据库

[英]Form is not inserting data into mysql database

这是submit.php文件中的代码。 我没有遇到任何错误,我认为数据应该发送到数据库,但是我不知道用户单击提交后的去向。 我认为问题出在第二个php if else语句中,因为它在我添加检查用户是否登录之前起作用。

    <?php
session_start();
include_once 'dbconnect.php';

 // variables for input data
 $Comment = $_POST['Comment'];
 $ip=$_SERVER['REMOTE_ADDR'];
 // variables for input data

 // sql query for inserting data into database
 $sql_query = "INSERT INTO sentences(Comment, ipaddress) VALUES('$Comment','$ip')";
 // sql query for inserting data into database
 ?>
<html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The Internet Writes a Book</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
</head>
<body>
<center>

<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="index.php">The Internet Writes A Novel</a>
        </div>
        <div class="collapse navbar-collapse" id="navbar1">
            <ul class="nav navbar-nav navbar-right">
                <?php if (isset($_SESSION['usr_id'])) { ?>
                <li><p class="navbar-text">Signed in as <?php echo $_SESSION['usr_name']; ?></p></li>
                <li><a href="logout.php">Log Out</a></li>
                <?php } else { ?>
                <li><a href="login.php">Login</a></li>
                <li><a href="register.php">Sign Up</a></li>
                <?php } ?>
            </ul>
        </div>
    </div>
</nav>




<?php if (isset($_SESSION['usr_id'])) { ?>
    <div id="body">
    <div id="content">
        <form method="post">
            <table align="center">
                <tr>
                    <td><input type="paragraph_text" cols="50" rows="10" name="Comment" placeholder="Sentence" required /></td>
                </tr>
                <tr>
                    <td><button type="submit" name="btn-save"><strong>Add to the Novel</strong></button></td>
                </tr>
            </table>
        </form>
    </div>
</div>
<?php } else { ?>
    <a href="http://theinternetwritesanovel.tk/login.php">You must be logged in to submit a sentence!</a>
<?php } ?>
<br>
<a href="http://theinternetwritesanovel.tk/">Click here to view the novel!</a>
</div>
</center>
</body>
</html> 

您实际上尚未提交SQL查询。 您需要使用数据库连接器对象,然后使用mysqli_query($dbc,$sqlStatement) ,其中$ dbc是您的数据库连接器。

另外,您应该首先检查请求类型为POST(即用户已提交表单,而不仅仅是进入页面,这将是GET请求)。 因此,首先检查if($_SERVER['REQUEST_METHOD'] == 'POST');

另外,您确实应该使用mysqli_real_escape_string之类的东西来清理输入。 但是,即使这还远远不够,您应该考虑使用使用mysqli或PDO的预处理语句。

有关使用mysqli_query函数的更多信息, 请访问http://www.w3schools.com/php/func_mysqli_query.asp

有关预准备语句的更多信息,请访问http://php.net/manual/en/mysqli.prepare.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM