Hello! Good day everyone! This tutorial is all about Block Offensive Words on Chat in PHP Today, I’m gonna teach you on creating a Block Offensive Words on Chat in PHP a chatbox in which offensive messages will be automatically block by the system.
So by the user of the PHP Function called str_replace we can make it possible. Now, let’s start our tutorial.
So first, create a PHP function. Name it as function filter_words($statements) {}.
Inside the filter_words function. Put the following codes.
[php]$offensive_words = array("Fuck You", "FUCK YOU", "Fuck you", "fuck you");
$convert_word = array("**** ***", "**** ***", "**** ***", "**** ***");
$new_word = str_replace($offensive_words, $convert_word, $statements);
echo $new_word;[/php]So, the variable $offensive_words are the list of all words formatted in array you want to block if you think that it can offend to the chatters. You can add as many as words you want to add on it.
Next is the $convert_word variable, these are the list of all words formatted in array that you want to replace on the offensive words.
The codes should be goes like this.
[php]function filter_words($statements) {
$offensive_words = array("Fuck You", "FUCK YOU", "Fuck you", "fuck you");
$convert_word = array("**** ***", "**** ***", "**** ***", "**** ***");
$new_word = str_replace($offensive_words, $convert_word, $statements);
echo $new_word;
}[/php]Now, we will create a chatbox with the use of the filter_words function to filter every words on the chat.
Create a database, name it as any name you desire. In my case. I use itsourcecode as the name of the database.
Then create a table name it as chats. Then put the following attributes.
[sql]CREATE TABLE `chats` (
`chat_id` int(11) NOT NULL,
`chat_name` text NOT NULL,
`chat_msg` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;[/sql]Now for the connection. Create a conn.php file then put the following codes.
[php]<?php
$conn = new mysqli('localhost', 'root', '', 'itsourcecode');
if ($conn->connect_error) {
echo $conn->error;
}
?>[/php]Then put the following codes on the index page.
[php]<?php
include 'conn.php';
function filter_words($statements) {
$offensive_words = array("Fuck You", "FUCK YOU", "Fuck you", "fuck you");
$convert_word = array("**** ***", "**** ***", "**** ***", "**** ***");
$new_word = str_replace($offensive_words, $convert_word, $statements);
echo $new_word;
}
?>[/php][html]<html>
<head>
<meta charset="UTF-8">
<title>Block Offensive Words in PHP</title>
<link href="assets/css/bootstrap.css" rel="stylesheet" type="text/css"/>
<style>
body {
padding-top: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="jumbotron">
<form method="post" action="chat-action.php" role="form">
<div class="panel panel-default">
<div class="panel-body">
<div class="row" style="margin-bottom: 10px">
<div class="col-sm-4">
<label>Type your name:</label>
</div>
</div>
<label>Chat:</label>
<input type="text" name="chat" class="form-control" />
<button type="submit" class="btn btn-primary" style="margin-top: 5px;">Submit</button>
</div>
</div>
</form>
<div class="panel panel-default">
<div class="panel-body">
query("SELECT * FROM chats");
while ($chat_data = $chats->fetch_assoc()) { ?>
<img src="assets/images/user-ava.png" width="20px" alt="">
<b></b>
<hr>
num_rows == null) {
echo 'no chats yet';
}
?>
</div>
</div>
</div>
</div>
</body>
</html>[/html]<div class="container">
<div class="jumbotron">
<div class="panel panel-default">
<div class="panel-body">
<div class="row" style="margin-bottom: 10px">
<div class="panel panel-default">
<div class="container">
<div class="jumbotron">
<div class="panel panel-default">
<div class="panel-body">
<div class="row" style="margin-bottom: 10px">
<div class="panel panel-default">
<p>For the chat action. Create a <strong>chat-action.php </strong>file then put the following codes.</p>
</div></div></div></div></div></div></div></div></div></div></div></div>[php]<?php
include 'conn.php';
if (isset($_POST['chat'])) {
$name = $_POST['name'];
$msg = $_POST['chat'];
$chat = $conn->query("INSERT INTO chats (chat_name, chat_msg) VALUES ('$name', '$msg')");
if ($chat) {
header("Location: index.php");
} else {
echo $conn->error;
}
}
?>[/php]Done.
Screenshots:
IF you have questions regarding this tutorial entitled as “Block Offensive Words on Chat in PHP” feel free to ask us by commenting below or visit on our contact page. Thank you.
Frequently Asked Questions
How does this PHP chat or chatbox system work?
User auth via PHP sessions, messages stored in MySQL with sender, recipient, content, timestamp. Frontend polls every 2-5 seconds via AJAX (or uses WebSocket via Ratchet for real-time). Read/unread tracked per message.
What PHP and MySQL versions does this project require?
Most projects in this batch run on PHP 7.4 to PHP 8.2 with MySQL 5.7+ or MariaDB 10+. A few older projects need PHP 5.6 (deprecated, use XAMPP 7.x). To run: install XAMPP / WAMP / Laragon, extract project to htdocs, import the included .sql file via phpMyAdmin, edit the connection file (usually config.php or db_connect.php) with your DB credentials, browse to the project URL in your browser.
How do I set up the database for this PHP project?
Open phpMyAdmin (http://localhost/phpmyadmin/ on XAMPP), create a new empty database with the name specified in the project’s config.php. Click the Import tab, choose the included .sql file, click Go. Then edit config.php (or includes/connection.php) with: ‘localhost’, your MySQL username (usually ‘root’), your MySQL password (usually blank for XAMPP), and the database name.
Can I use this PHP project for a BSIT capstone or thesis?
Yes, but extend it. A bare CRUD app is too narrow for full capstone scope. Add: user roles via session checks, reports/dashboards (Chart.js + AJAX), PDF exports (TCPDF library), email notifications (PHPMailer), real domain extension (analytics, audit log, multi-branch support). Pair with Chapter 1-5 documentation matching your panel’s rubric.
Why am I getting ‘connection error’ or ‘undefined function mysqli_connect’?
Three common PHP issues: (1) Connection error: Apache + MySQL services not running in XAMPP control panel, OR database name in config.php does not match what you created in phpMyAdmin. (2) ‘undefined function mysqli_connect’: MySQL extension not enabled, in php.ini uncomment extension=mysqli (then restart Apache). (3) ‘No such file or directory’: MySQL socket path wrong, use 127.0.0.1 instead of localhost in the connection string.
Where can I find more PHP projects with source code?
Browse the PHP Projects hub for the full library (300+ vanilla PHP systems). For modern PHP MVC alternatives see Laravel Projects (74 systems) or CodeIgniter Projects (32 systems). For BSIT-focused capstone idea lists see 150 Best Capstone Project Ideas.



