我的 PHP 页面没有保存数据

My PHP page is not saving data

我是 PHP 编程的新手,我正在尝试创建一个 PHP 页面,其中有一个框来编写文本,例如,存储此信息并展示它。想法是用户将在框中写入文本,当单击 "Send" 时,MySQL 会将信息存储在 table 中,命令 "atualizaPagina()" 将显示添加的信息。

<!DOCTYPE html>
<?php

    require_once("enviar.php");

    if(!empty($_POST)){
        gravaTopico($_POST["mensagem"]);
    }
?>
<html>
    <head>
        <title>Teste em php</title>
    </head>
    <body>
        <?php

            atualizaPagina();
        ?>
        <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
            <textarea rows="10" cols="50" name="mensagem"></textarea>
            <input type="submit" value="Enviar" />
        </form>
    </body>
</html>

enviar.php 文件在这里

<?php

    function gravaTopico($values){

        mysql_connect("localhost", "root", "Alabra%$") or die(mysql_error());

        mysql_select_db("ifscjr") or die(mysql_error());

        $strSQL = "INSERT INTO topicos(comentarios) VALUES($values)";

        mysql_query($strSQL) or die (mysql_error());

        mysql_close();
    }

    function atualizaPagina(){

        mysql_connect("localhost", "root", "Alabra%$") or die(mysql_error());

        mysql_select_db("ifscjr") or die(mysql_error());

        $strSQL = "SELECT * FROM topicos";

        $rs = mysql_query($strSQL);

        while($row = mysql_fetch_array($rs)){
            echo $row['comentarios'] . "<br />";
        }

        mysql_close();
    }

?>

尝试改变这个:

$strSQL = "INSERT INTO topicos(comentarios) VALUES ('$values')";

MuthaFury 是对的。 但是,您不仅需要检查 $_POST 是否为空,还需要检查 $_POST["mensagem"] 是否存在 (!empty($_POST) && isset($_POST["mensagem"] )). 并且您需要使用 mysql_real_escape_string 从引号中转义输入字符串,因为如果您的 $_POST["mensagem"] 包含引号 ('),您的 sql 将被破坏。 您的代码示例:

$values = mysql_real_escape_string($values);
$strSQL = "INSERT INTO topicos(comentarios) VALUES('$values')";