Jest to aplikacja czatu.
Za krytykę dziękuję - to się przyda.
Plik czat.php
<?php //dołączamy połączenie z bazą danych require_once("BazaDanych.php"); //walidujemy przyjęte treści wiadomości class WalidacjaWiadomosci { protected $wiadomosc; protected function waliduj($wiadomosc) { //tutaj wstawiamy walidacje otrzymanych danych tekstowych $this->wiadomosc = $wiadomosc; return $this->wiadomosc; } } //zapisujemy wiadomość we bazie danych class ZapisywanieWiadomosciWBazieDanych extends WalidacjaWiadomosci { private $db; private $wiadomoscDoZapisania; public function __construct($wiadomosc) { $instance = PolaczenieZBazaDanych::getInstance(); $this->db = $instance->getConnection(); $this->wiadomoscDoZapisania = $this->waliduj($wiadomosc); $this->zapiszWiadomoscWBazieDanych($this->wiadomoscDoZapisania); } private function zapiszWiadomoscWBazieDanych($wiadomoscDoZapisania) { $sql = "INSERT INTO czat (wiadomosci) VALUES ('".$wiadomoscDoZapisania."')"; if ($this->db->query($sql)) return true; else return false; } } //odczytujemy wiadomość z bazy danych class OdczytywanieWiadomosci { private $idWiadomosci; private $db; public function __construct($idWiadomosci) { $instance = PolaczenieZBazaDanych::getInstance(); $this->db = $instance->getConnection(); $this->idWiadomosci = $idWiadomosci; $this->odczytywanieWiadomosci($this->idWiadomosci); } private function odczytywanieWiadomosci($idWiadomosci) { $sql = "SELECT * FROM czat WHERE id > '".$idWiadomosci."'"; $rezultat = $this->db->query($sql); while ($wiersz = mysqli_fetch_assoc($rezultat)) { } } } //zapis wiadomości jeśli odebrano zmienną $_POST['zapiszWiadomosc'] { $ZapisywanieWiadomosciWBazieDanych = new ZapisywanieWiadomosciWBazieDanych($_POST['trescWiadomosci']); } //odebranie wiadomości jeśli odebrano zmienną $_POST['odbierzWiadomosc'] { $OdczytywanieWiadomosci = new OdczytywanieWiadomosci($_POST['idWiadomosci']); } ?>
Plik BazaDanych.php - singleton
<?php //połączenie z bazą danych stosując singleton class PolaczenieZBazaDanych { private $db; private $host = 'localhost'; private $user = 'root'; private $pass = 'haslo'; private $name = 'czat'; private function __construct() { $this->db = new mysqli($this->host,$this->user,$this->pass,$this->name); } { if(!self::$instance) { self::$instance = new PolaczenieZBazaDanych(); } return self::$instance; } public function getConnection() { return $this->db; } }
Plik javascript odebranieWiadomosciZSerwera.js
$(document).ready(function(){
//odbieranie wiadomośći z serwera co określony czas
function odebranieWiadomosciZSerwera()
{
$.ajax({
url: "./../czat/php/czat.php",
method: "POST",
data: {
odbierzWiadomosc: true,
idWiadomosci: $("#wiadomosci p.id").last().attr('id'),
},
}).done(function(odpowiedz){
$("#wiadomosci").append(odpowiedz);
$('#wiadomosci').animate({
scrollTop: $('#wiadomosci')[0].scrollHeight}, "slow");
});
};
setInterval(odebranieWiadomosciZSerwera,1500);
});
Plik javascript wysylanieWiadomosciNaSerwer.js
$(document).ready(function(){
//wysyłanie wiadomości na serwer po kliknięciu buttona
$("#wyslijWiadomosc").click(function(){
$.ajax({
url: "./../czat/php/czat.php",
method: "POST",
data: {
zapiszWiadomosc: true,
trescWiadomosci: $("#trescWiadomosci").val(),
},
}).done(function(odpowiedz){
});
$("#trescWiadomosci").val("");
});
});
Liczę na konstruktywną krytyke
Dziękuję i pozdrawiam