• 01-04.05.2026 - DOUBLE EXP / SKILL EVENT!

Shoutbox

Status
Zamknięty.

Karpio

Advanced User
Zarejestrowany
Dołączył
Kwiecień 11, 2008
Posty
369
Liczba reakcji
57
Witam, widz?c brak shoutbox'?w do Gesiora postanowi?em takowy napisa?.
Oto screen:
beztytuuffi.jpg

A wi?c zaczynamy:
1. Do layout.php w dogodnym dla nas miejscu dodajemy:
PHP:
<center>
<?php 
if(!$logged)
echo 'Aby pisa? w shoutbox\'ie trzeba by? zalogowanym.';
else
{
echo '<form action="shoutbox.php" method="post" target="shoutbox">Wpisz tre??: <input type="text" maxlength="255" name="tresc" id="shoutbox_tresc" /><br />
Wybierz posta?: <select name="char">';
$account_players = $account_logged->getPlayersList();
$account_players->orderBy('name');
foreach($account_players as $account_player)
{
echo '<option value="'.$account_player->getId().'">'.$account_player->getName().'</option>';
}
echo '</select><br /><input type="submit" name="submit" value="Napisz" /></form>';
}
?>
<iframe src="shoutbox.php" style="width: 500px; height: 150px; background: silver;" name="shoutbox"></iframe></center><br />
Nast?pnie tworzymy plik: shoutbox.php -- koniecznie taka nazwa.
i wklejamy do niego to:
PHP:
<?php
$config = parse_ini_file("config/config.ini");
$lua = parse_ini_file($config['server_path'].'config.lua');
$SQL = @new mysqli($lua["sqlHost"], $lua["sqlUser"], $lua["sqlPass"], $lua["sqlDatabase"]);
if(isset($_GET["add"]))
{
$SQL->query("CREATE TABLE IF NOT EXISTS `z_shoutbox` (
`id` INT( 50 ) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 50 ) NOT NULL ,
`text` TEXT NOT NULL ,
`date` VARCHAR( 30 ) NOT NULL ,
`empty` INT( 10 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;");
echo '<center><h1>Baza danych zaktualizowana.</h1><hr />COPYRIGHT © 2010 by Karpio</center>';
}
else
{
if(empty($_POST["submit"]))
{
$tresc = $SQL->query("SELECT * FROM `z_shoutbox` ORDER BY `id` DESC;");
while($t = $tresc->fetch_assoc())
{
echo '<strong><a href="index.php?subtopic=characters&name='.urlencode($t["name"]).'" target="_blank" style="text-decoration: none;">'.$t["name"].'</a>:</strong> '.$t["text"].'<br />';
}
}
else
{
if(empty($_POST["tresc"]))
echo '<center><font color="red">Nie podano tre?ci wiadomo?ci.</font></center>';
else
{
$lol = $SQL->query("SELECT * FROM players WHERE id=".addSlashes($_POST["char"])." LIMIT 1;")->fetch_assoc();
$SQL->query("INSERT INTO `z_shoutbox` (`id` ,`name` ,`text` ,`date` ,`empty`) VALUES ('NULL', '".addslashes($lol["name"])."', '".$_POST["tresc"]."', '".time()."', 0);");
$tresc = $SQL->query("SELECT * FROM `z_shoutbox` ORDER BY `id` DESC;");
echo '<center><strong>Post dodany.</strong></center>';
while($t = $tresc->fetch_assoc())
{
echo '<strong><a href="index.php?subtopic=characters&name='.urlencode($t["name"]).'" target="_blank" style="text-decoration: none;">'.$t["name"].'</a>:</strong> '.$t["text"].'<br />';
}
}
}
}
$SQL->close();
?>
Nast?pnie wchodzimy na stron?:
http://localhost/shoutbox.php?add <-- chyba ?e posiadacie domen? to zamiast localhost podajcie domen?.
Wej?cie na t? stron? spowoduje dodanie tabeli do bazy danych.
To wszystko :)
Prosz? o komentarze i pozdrawiam​
 
Odp: Shoutbox

No bardzo ?adna praca my?l?, ?e twoja porzygoda z PHP na tym nie stanie i zaczniesz robi? co? znacznie lepszego 10/10.

Pozdrawiam.
 
Odp: Shoutbox

?wietna robota, na pewno to wykorzystam, bardzo dobra praca ale szata graficzna troch? uboga no ale mo?na to troszk? zmieni? 9/10 ,?eby? nie straci? zapa?u do pracy! :)
 
Odp: Shoutbox

Bardzo ?adny skrypt i na pewno b?dzie przydatny wszystkim posiadaczom ots?w. Jedyne co by? m?g? zmieni? to lay i czcionke a tak to spoko 9/10.
 
Odp: Shoutbox

?adnie to rozwino?e? ...
Tylko po co tyle zmiennych ja bym to ograniczy? do ~33 linijek
 
Super
Dzieki !
edit: propozycja: Czas kiedy wiadomosc byla wyslana
edit2: Fatal error: Call to a member function fetch_assoc() on a non-object in shoutbox.php on line 22 ;<
To ja robie cos zle ;p?
Koncowka pliku layout.php (chce miec skrypt na dole strony wycentrowany):
Kod:
$layout_name.'/images/general/box-bottom.gif);"></div>
    </div>';
?>
        </div>
      </div>
     </div>
    </div>
  </div>
<center>
<?php 
if(!$logged)
echo 'Aby pisa? w shoutbox\'ie trzeba by? zalogowanym.';
else
{
echo '<form action="shoutbox.php" method="post" 
target="shoutbox">Wpisz tre??: <input type="text" 
maxlength="255" name="tresc" id="shoutbox_tresc" /><br />
Wybierz posta?: <select name="char">';
$account_players = $account_logged->getPlayersList();
$account_players->orderBy('name');
foreach($account_players as $account_player)
{
echo '<option value="'.$account_player->getId().'">'.
$account_player->getName().'</option>';
}
echo '</select><br /><input type="submit" name="submit" 
value="Napisz" /></form>';
}
?>
<iframe src="shoutbox.php" style="width: 500px; height: 
150px; background: silver;" 
name="shoutbox"></iframe></center><br />
</body>
</html>
Moj blad ... nie wykonalem skryptu ktory tworzy tabele :)
DZieki KArpio, skrypt pierwsza klasa.
CZy mozna jakos wprowadzic ogranczenie pomiedzy postami ? Np. 20 sekund ;)
Fajna bylaby rowniez opcja blokowania wysylania tej samej wiadomosci, czyszczenia bazy danyuch co powiedzmy 12 h - moze ktos zapchac smieciami na zlosc ...
Pisze celowo post pod postem - tamten byl obszerny nie bede go usuwal bo mzoe komus sie przyda ...
Pozdro.
edit: jak dodac czas wyslania wiadomosci do shoutboxa ?
Kod:
$SQL->query("INSERT INTO `z_shoutbox` (`id` ,`name` ,`text` ,`date` ,`empty`) VALUES ('NULL', '".addslashes($lol["name"])."', '".$_POST["tresc"]."', '".time()."', 
0);");
...
echo '<strong>[B][COLOR="Blue"]'.$t["date("h:i:s")"].' [/COLOR][/B]<a href="index.php?subtopic=characters&name='.urlencode($t["name"]).'" target="_blank" style="text-decoration: none;">'.$t["name"].'</a>:</strong> '.$t
["text"].'<br />';
Probowalem tak ale nie dziala ... nie wiem jak sie dodaje zlorzone instrukcje :P Dopiero sie ucze tego jezyka :P
syntax error, unexpected T_STRING, expecting ']'

Notka moderatorska:
sklejone
 
Status
Zamknięty.
Back
Do góry