Я новичок в программировании на PHP и пытаюсь создать страницу PHP с полем для ввода текста, например, хранить эту информацию и демонстрировать ее. Идея заключается в том, что пользователь собирается написать текст в поле, и при нажатии «Отправить» MySQL сохранит информацию в таблице, а команда «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 ins не пусто, но и проверить, что $ _POST [«mensagem»] существует (! Empty ($ _ POST) && Исеть ($ _ POST [ «Mensagem»])).
И вам нужно экранировать входную строку из кавычек, используя mysql_real_escape_string, потому что если ваш $ _POST [«mensagem»] будет содержать кавычку (‘), ваш sql будет нарушен.
Пример для вашего кода:
$values = mysql_real_escape_string($values);
$strSQL = "INSERT INTO topicos(comentarios) VALUES('$values')";