Chce na stronie zamieścić prosty shoutbox. Pole na wiadomość i imię a wysłane wiadomości może zapisywać do pliku tekstowego albo do bazy. Mam konto założone na hostinger.
znalazłem prosty skrypty na stronie http://skrypty.klocus.pl/2012/02/piszemy-prostego-shoutboxa.html ale mi nie działa. Kto może mi powiedzieć co ja robię w nim źle?
<?php
mysql_connect ("mysql.hostinger.pl","u129151808_shout","karolina"); //ł±czę z baz± ("serwer bazy","użytkownik","hasło")
mysql_select_db ("u129151808_shout"); //nazwa bazy
mysql_query ("SET NAMES utf8"); //kodowanie znaków (przydatne przy pobieraniu tre¶ci)
<form action="?" method="POST">
Nick: <input type="text" name="login" maxlength="30">
Tre¶ć: <input type="text" name="tresc" maxlength="125">
<button type="submit" name="wyslij">Napisz</button>
</form>
if(isset($_POST['wyslij']) && !empty($_POST['login']) && !empty($_POST['tresc']))
{
//Definicja zmiennych
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
$data = date('Y-m-d H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
//Wykonujemy zapytanie importuj±ce zdefiniowane dane
mysql_query ("INSERT INTO `posty` (`login`, `tresc`, `data`, `ip`) VALUES('$login', '$tresc', '$data', '$ip')");
//No i przenosimy użytkownika z powrotem do shoutboxa
header('Location: '.$_SERVER['REQUEST_URI']);
}
else {
//Pobieramy dane z bazy
$query = mysql_query ("SELECT * FROM `posty` ORDER BY `data` DESC LIMIT 5");
//Pocz±tek struktury tabeli
echo '<table>';
//Pętla do wy¶wietlenia wszystkich wpisów
while($shout=mysql_fetch_array($query)) {
echo '<tr><td>'
.'<b>'.$shout['login'].':</b> ' //wy¶wietlamy nick
.$shout['tresc'] //wy¶wietlamy tre¶ć
.'<br/>'
.$shout['data'] //wy¶wietlamy datę
.'</tr></td>';
}
//Koniec struktury tabeli
echo '</table>';
}
?>
do pliku index.html daje
<?php include('shoutbox.php'); ?>
dodanie znacznika <code class="php"> - furious programming
tera to nawet nie ma przycisków ani pól do wpisania danych. wcześniejszy kod łączył się z bazą bo sprawdzałem i są tam zapisane dane ale nie wyświetlało się nic
jest mały błąd w kodzie. Jak napiszę wiadomość i nacisnę przycisk to zapisuje do bazy i na stronie nie pokazuje żadnej wiadomości dopiero po naciśnięciu przycisku z pustymi polami pokazuje mi wiadomości zapisane w bazie.
<?php
mysql_connect ("mysql.hostinger.pl","u572020258_shout","dawid653"); //łącze z bazą ("serwer bazy","użytkownik","hasło")
mysql_select_db ("u572020258_shout"); //nazwa bazy
mysql_query ("SET NAMES utf8"); //kodowanie znaków (przydatne przy pobieraniu treści)
if(isset($_POST['wyslij']) && !empty($_POST['login']) && !empty($_POST['tresc']))
{
//Definicja zmiennych
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
$data = date('Y-m-d H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
//Wykonujemy zapytanie importujące zdefiniowane dane
mysql_query ("INSERT INTO `posty` (`login`, `tresc`, `data`, `ip`) VALUES('$login', '$tresc', '$data', '$ip')");
//No i przenosimy użytkownika z powrotem do shoutboxa
header('Location: '.$_SERVER['REQUEST_URI']);
}
else {
//Pobieramy dane z bazy
$query = mysql_query ("SELECT * FROM `posty` ORDER BY `data` DESC LIMIT 15");
//Początek struktury tabeli
echo '<table id="shoutbox">';
//Pętla do wyświetlenia wszystkich wpisów
while($shout=mysql_fetch_array($query)) {
echo '<tr class="wpis"><td>'
.'<b>'.$shout['login'].':</b> ' //wyświetlamy nick
.$shout['tresc'] //wyświetlamy treść
.'<br/><span class="data">'
.$shout['data'] //wyświetlamy datę
.'</span></tr></td>';
}
//Koniec struktury tabeli
echo '</table>';
}
//print_r($_SERVER);
?>
<form action="" method="POST" id="shoutbox">
Nick: <input type="text" name="login" maxlength="30" /> <br/>
Treść: <input type="text" name="tresc" maxlength="125" />
<button type="submit" name="wyslij">Napisz</button>
</form>
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.