Dobry wieczór. Mam pewien problem, a to mój pierwszy post na forum więc proszę o wyrozumiałość jeśli będzie bardzo źle napisany .
Jestem w trakcie robienia strony w której będzie zawarte dodawanie postów. Wiem, że musi być to związane z bazami danych oraz PHP. (PHP uczę się od niedawna). Po kilku "goglowaniach" udało mi się napisać połączenie z bazą.
Moje problemy to :
1) Gdy dodaję jakiś komentarz, zostaje on dodany po wciśnięciu przycisku "Dodaj komentarz" (ok :)), ale gdy odświeżam stronę (f5) to wtedy do bazy danych dodaje się ostatni komentarz, chociaż nawet nie klika przycisku "Dodaj komentarz", dlaczego ??? (próbowałem używać unset($tresc) , ale to nic nie dało ).
2) Gdy dodaję komentarz to kolejny komentarz zastępuje mi ostatnio dodany , a chciałbym żeby pojawił się pod powyżej starszego komentarza.
(Kod jest prowizoryczny tylko na potrzeby łatwiejszego zrozumienia przeze mnie jak ten mechanizm działa , w phpMyadmin tabela nazywa się tresci i zawiera: id/ tresc/ date postu)
(serwerem jest localhost (xampp))
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Forum</title>
<meta name="description" content="Forum">
<meta name="keywords" content="forum">
<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
</head>
<body>
<form method = "post">
<textarea name = "komentarz" cols="100" rows="5"></textarea>
<br /><br />
<input type = "submit" value="Dodaj komentarz" />
<form/>
<?php
require_once "connect.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
if($polaczenie->connect_errno!=0)
{
throw new Exception(mysqli_connect_errno());
}
else
{
if (isset($_POST['komentarz']))
{
$tresc = $_POST['komentarz'];
$polaczenie->query("INSERT INTO tresci VALUES (NULL, '$tresc', now() )");
echo "<h2>User, ";
echo date('Y-m-d H:i:s');
echo "</h2>";
echo "<p>$tresc</p>";
$polaczenie->close();
}
}
}
catch(Exception $e)
{
echo'<span style="color: red;">Błąd serwera</span>';
echo 'Info: '.$e;
}
?>
</body>
</html>
a tutaj jest plik który łączy z bazą danych:
$host = "localhost";
$db_user = "root";
$db_password ="";
$db_name = "forum";