我的 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')";
我是 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')";