Finalize
This commit is contained in:
BIN
php/assets/default.png
Normal file
BIN
php/assets/default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
$hostname = "localhost:3200";
|
||||
$username = "root";
|
||||
$password = "";
|
||||
$dbname = "chatline";
|
||||
$hostname = "localhost:3200";
|
||||
$username = "root";
|
||||
$password = "";
|
||||
$dbname = "chatline";
|
||||
|
||||
$conn = mysqli_connect($hostname, $username, $password, $dbname);
|
||||
if(!$conn){
|
||||
echo "Database connection error".mysqli_connect_error();
|
||||
}
|
||||
$conn = mysqli_connect($hostname, $username, $password, $dbname);
|
||||
if (!$conn) {
|
||||
echo "Database connection error" . mysqli_connect_error();
|
||||
}
|
||||
?>
|
||||
37
php/get_msg.php
Normal file
37
php/get_msg.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
session_start();
|
||||
if (isset($_SESSION['unique_id'])) {
|
||||
include_once "config.php";
|
||||
$current_user = $_SESSION['unique_id'];
|
||||
$selected_user = mysqli_real_escape_string($conn, $_POST['selected_id']);
|
||||
$output = "";
|
||||
$sql = "SELECT * FROM messages LEFT JOIN users ON users.unique_id = messages.post_msg_id
|
||||
WHERE (post_msg_id = {$current_user} AND get_msg_id = {$selected_user})
|
||||
OR (post_msg_id = {$selected_user} AND get_msg_id = {$current_user}) ORDER BY msg_id";
|
||||
$query = mysqli_query($conn, $sql);
|
||||
if (mysqli_num_rows($query) > 0) {
|
||||
while ($row = mysqli_fetch_assoc($query)) {
|
||||
($row['img']) ? $img = $row['img'] : $img = "default.png";
|
||||
if ($row['post_msg_id'] === $current_user) {
|
||||
$output .= '<div class="chat post">
|
||||
<div class="details">
|
||||
<p>' . $row['msg'] . '</p>
|
||||
</div>
|
||||
</div>';
|
||||
} else {
|
||||
$output .= '<div class="chat get">
|
||||
<img src="php/assets/' . $img . '" alt="">
|
||||
<div class="details">
|
||||
<p>' . $row['msg'] . '</p>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$output .= '<div class="text">Send a message to start conversation :)</div>';
|
||||
}
|
||||
echo $output;
|
||||
} else {
|
||||
header("location: ../start.php");
|
||||
}
|
||||
?>
|
||||
30
php/list.php
Normal file
30
php/list.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
while ($row = mysqli_fetch_assoc($query)) {
|
||||
$sql2 = "SELECT * FROM messages WHERE (get_msg_id = {$row['unique_id']}
|
||||
OR post_msg_id = {$row['unique_id']}) AND (post_msg_id = {$current_user}
|
||||
OR get_msg_id = {$current_user}) ORDER BY msg_id DESC LIMIT 1";
|
||||
$query2 = mysqli_query($conn, $sql2);
|
||||
$row2 = mysqli_fetch_assoc($query2);
|
||||
(mysqli_num_rows($query2) > 0) ? $result = $row2['msg'] : $result = "No message available";
|
||||
(strlen($result) > 20) ? $msg = substr($result, 0, 20) . '...' : $msg = $result;
|
||||
if (isset($row2['post_msg_id'])) {
|
||||
($current_user == $row2['post_msg_id']) ? $you = "You: " : $you = "";
|
||||
} else {
|
||||
$you = "";
|
||||
}
|
||||
($row['status'] == "Offline") ? $offline = "offline" : $offline = "";
|
||||
($current_user == $row['unique_id']) ? $hide_me = "hide" : $hide_me = "";
|
||||
($row['img']) ? $img = $row['img'] : $img = "default.png";
|
||||
|
||||
$output .= '<a href="chat.php?user_id=' . $row['unique_id'] . '">
|
||||
<div class="content">
|
||||
<img src="php/assets/' . $img . '" alt="">
|
||||
<div class="details">
|
||||
<span>' . $row['first_name'] . " " . $row['last_name'] . '</span>
|
||||
<p>' . $you . $msg . '</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="status-dot ' . $offline . '"><i class="fas fa-circle"></i></div>
|
||||
</a>';
|
||||
}
|
||||
?>
|
||||
55
php/login.php
Normal file
55
php/login.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
session_start();
|
||||
include_once "config.php";
|
||||
function escape($conn, $value)
|
||||
{
|
||||
return mysqli_real_escape_string($conn, $value);
|
||||
}
|
||||
function isValidEmail($email)
|
||||
{
|
||||
return filter_var($email, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
function fetchUserByEmail($conn, $email)
|
||||
{
|
||||
$sql = mysqli_query($conn, "SELECT * FROM users WHERE email = '{$email}'");
|
||||
return mysqli_fetch_assoc($sql);
|
||||
}
|
||||
function encryptPassword($password)
|
||||
{
|
||||
return md5($password);
|
||||
}
|
||||
function updateStatus($conn, $user)
|
||||
{
|
||||
return mysqli_query($conn, "UPDATE users SET status = 'Active now' WHERE unique_id = {$user["unique_id"]}");
|
||||
}
|
||||
function loginUser($user)
|
||||
{
|
||||
$_SESSION["unique_id"] = $user["unique_id"];
|
||||
echo "success";
|
||||
}
|
||||
if (!empty($_POST["email"]) && !empty($_POST["password"])) {
|
||||
$email = escape($conn, $_POST["email"]);
|
||||
$password = escape($conn, $_POST["password"]);
|
||||
if (isValidEmail($email)) {
|
||||
$existingUser = fetchUserByEmail($conn, $email);
|
||||
if ($existingUser) {
|
||||
$encrypt_pass = encryptPassword($password);
|
||||
if ($encrypt_pass === $existingUser["password"]) {
|
||||
if (updateStatus($conn, $existingUser)) {
|
||||
loginUser($existingUser);
|
||||
} else {
|
||||
echo "An error occurred while logging in!";
|
||||
}
|
||||
} else {
|
||||
echo "The email or password is incorrect!";
|
||||
}
|
||||
} else {
|
||||
echo "The email address $email does not exist!";
|
||||
}
|
||||
} else {
|
||||
echo "The email address $email is not valid!";
|
||||
}
|
||||
} else {
|
||||
echo "All input fields are required!";
|
||||
}
|
||||
?>
|
||||
18
php/logout.php
Normal file
18
php/logout.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
session_start();
|
||||
if (isset($_SESSION['unique_id'])) {
|
||||
include_once "config.php";
|
||||
$logout_id = mysqli_real_escape_string($conn, $_GET['logout_id']);
|
||||
if (isset($logout_id)) {
|
||||
$sql = mysqli_query($conn, "UPDATE users SET status = 'Offline' WHERE unique_id={$_GET['logout_id']}");
|
||||
if ($sql) {
|
||||
session_unset();
|
||||
session_destroy();
|
||||
header("location: ../start.php");
|
||||
}
|
||||
} else {
|
||||
header("location: ../home.php");
|
||||
}
|
||||
} else {
|
||||
header("location: ../start.php");
|
||||
}
|
||||
@@ -1,34 +1,36 @@
|
||||
<?php
|
||||
session_start();
|
||||
include_once "config.php";
|
||||
function escape($conn, $value) {
|
||||
function escape($conn, $value)
|
||||
{
|
||||
return mysqli_real_escape_string($conn, $value);
|
||||
}
|
||||
function isValidEmail($email) {
|
||||
function isValidEmail($email)
|
||||
{
|
||||
return filter_var($email, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
function moveUploadedFile($tempFileName, $newFileName) {
|
||||
return move_uploaded_file($tempFileName, "images/" . $newFileName);
|
||||
function moveUploadedFile($tempFileName, $newFileName)
|
||||
{
|
||||
return move_uploaded_file($tempFileName, "assets/" . $newFileName);
|
||||
}
|
||||
function generateUniqueUserId() {
|
||||
function generateUniqueUserId()
|
||||
{
|
||||
return rand(time(), 100000000);
|
||||
}
|
||||
function encryptPassword($password) {
|
||||
function encryptPassword($password)
|
||||
{
|
||||
return md5($password);
|
||||
}
|
||||
function fetchUserByEmail($conn, $email) {
|
||||
$email = escape($conn, $email);
|
||||
function fetchUserByEmail($conn, $email)
|
||||
{
|
||||
$sql = mysqli_query($conn, "SELECT * FROM users WHERE email = '{$email}'");
|
||||
return mysqli_fetch_assoc($sql);
|
||||
}
|
||||
function insertUser($conn, $unique_id, $first_name, $last_name, $email, $encrypt_pass, $new_img_name, $status) {
|
||||
return mysqli_query($conn, "INSERT INTO users (unique_id, first_name, last_name, email, password, img, status) VALUES ({$unique_id}, '{$first_name}','{$last_name}', '{$email}', '{$encrypt_pass}', '{$new_img_name}', '{$status}')");
|
||||
function insertUser($conn, $unique_id, $first_name, $last_name, $email, $encrypt_pass, $new_img_name)
|
||||
{
|
||||
return mysqli_query($conn, "INSERT INTO users (unique_id, first_name, last_name, email, password, img, status) VALUES ({$unique_id}, '{$first_name}','{$last_name}', '{$email}', '{$encrypt_pass}', '{$new_img_name}', 'Offline')");
|
||||
}
|
||||
function loginUser($user) {
|
||||
$_SESSION["unique_id"] = $user["unique_id"];
|
||||
echo "success";
|
||||
}
|
||||
if (!empty($_POST["first_name"]) || !empty($_POST["last_name"]) || !empty($_POST["email"]) || !empty($_POST["password"])) {
|
||||
if (!empty($_POST["first_name"]) && !empty($_POST["last_name"]) && !empty($_POST["email"]) && !empty($_POST["password"])) {
|
||||
$first_name = escape($conn, $_POST["first_name"]);
|
||||
$last_name = escape($conn, $_POST["last_name"]);
|
||||
$email = escape($conn, $_POST["email"]);
|
||||
@@ -44,12 +46,11 @@ if (!empty($_POST["first_name"]) || !empty($_POST["last_name"]) || !empty($_POST
|
||||
$temp_file_name = $_FILES["image"]["tmp_name"];
|
||||
$img_ext = pathinfo($img_name, PATHINFO_EXTENSION);
|
||||
$allowedExtensions = ["jpeg", "png", "jpg"];
|
||||
if (in_array($img_ext, $allowedExtensions) && in_array($img_type, ["image/jpeg", "image/jpg", "image/png", ])) {
|
||||
if (in_array($img_ext, $allowedExtensions) && in_array($img_type, ["image/jpeg", "image/jpg", "image/png",])) {
|
||||
$time = time();
|
||||
$new_img_name = $time . $img_name;
|
||||
if (moveUploadedFile($temp_file_name, $new_img_name)) {
|
||||
$unique_id = generateUniqueUserId();
|
||||
$status = "Active now";
|
||||
$encrypt_pass = encryptPassword($password);
|
||||
} else {
|
||||
echo "An error occurred while uploading the image.";
|
||||
@@ -61,15 +62,14 @@ if (!empty($_POST["first_name"]) || !empty($_POST["last_name"]) || !empty($_POST
|
||||
}
|
||||
} else {
|
||||
$unique_id = generateUniqueUserId();
|
||||
$status = "Active now";
|
||||
$encrypt_pass = encryptPassword($password);
|
||||
}
|
||||
if (insertUser($conn, $unique_id, $first_name, $last_name, $email, $encrypt_pass, $new_img_name, $status)) {
|
||||
if (insertUser($conn, $unique_id, $first_name, $last_name, $email, $encrypt_pass, $new_img_name)) {
|
||||
$loggedInUser = fetchUserByEmail($conn, $email);
|
||||
if ($loggedInUser) {
|
||||
loginUser($loggedInUser);
|
||||
} else {
|
||||
if (!$loggedInUser) {
|
||||
echo "An error occurred. Please try again.";
|
||||
} else {
|
||||
echo "success";
|
||||
}
|
||||
} else {
|
||||
echo "An error occurred. Please try again.";
|
||||
|
||||
17
php/search.php
Normal file
17
php/search.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
session_start();
|
||||
include_once "config.php";
|
||||
$current_user = $_SESSION["unique_id"];
|
||||
if (isset($_POST["query"])) {
|
||||
$query = mysqli_real_escape_string($conn, $_POST["query"]);
|
||||
$sql = "SELECT * FROM users WHERE NOT unique_id = {$current_user} AND (first_name LIKE '%{$query}%' OR last_name LIKE '%{$query}%') ";
|
||||
$output = "";
|
||||
$query = mysqli_query($conn, $sql);
|
||||
if (mysqli_num_rows($query) > 0) {
|
||||
include_once "list.php";
|
||||
} else {
|
||||
$output .= "User not found :(";
|
||||
}
|
||||
echo $output;
|
||||
}
|
||||
?>
|
||||
15
php/send_msg.php
Normal file
15
php/send_msg.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
session_start();
|
||||
if (isset($_SESSION['unique_id'])) {
|
||||
include_once "config.php";
|
||||
$current_user = $_SESSION['unique_id'];
|
||||
$selected_user = mysqli_real_escape_string($conn, $_POST['selected_id']);
|
||||
$message = mysqli_real_escape_string($conn, $_POST['message_text']);
|
||||
if (!empty($message)) {
|
||||
$sql = mysqli_query($conn, "INSERT INTO messages (get_msg_id, post_msg_id, msg)
|
||||
VALUES ({$selected_user}, {$current_user}, '{$message}')") or die();
|
||||
}
|
||||
} else {
|
||||
header("location: ../start.php");
|
||||
}
|
||||
?>
|
||||
14
php/users.php
Normal file
14
php/users.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
session_start();
|
||||
include_once "config.php";
|
||||
$current_user = $_SESSION['unique_id'];
|
||||
$sql = "SELECT * FROM users WHERE NOT unique_id = {$current_user} ORDER BY user_id DESC";
|
||||
$query = mysqli_query($conn, $sql);
|
||||
$output = "";
|
||||
if (mysqli_num_rows($query) == 0) {
|
||||
$output .= "No users are available to chat";
|
||||
} elseif (mysqli_num_rows($query) > 0) {
|
||||
include_once "list.php";
|
||||
}
|
||||
echo $output;
|
||||
?>
|
||||
Reference in New Issue
Block a user