Thông báo đẩy PHP MySQL

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Hôm nay, Chúng tôi muốn chia sẻ với các bạn cảnh báo thông báo trong php mysql. Trong bài đăng này, chúng tôi sẽ hiển thị cho bạn thông báo đẩy bằng cách sử dụng php và mysql, hãy nghe cảnh báo thông báo php khi bản ghi mới được chèn, chúng tôi sẽ cung cấp cho bạn bản demo và ví dụ để thực hiện. Trong bài đăng này, chúng ta sẽ tìm hiểu về Hệ thống thông báo đẩy với PHP & MySQL Demo [Đã cập nhật – 2021] với một ví dụ

thông báo trong bản demo php

nội dung

Tôi sẽ trình bày hướng dẫn này từng bước với ví dụ trực tiếp để tạo thông báo với thông tin đẩy bởi quản trị viên và bình thường có thể đăng nhập để xem thông báo đẩy

Vì vậy, hãy triển khai Hệ thống đăng ký đẩy với PHP và MySQL. Các tập tin chính là

  • đăng nhập. php
  • mục lục. php
  • quản lý. php
  • đăng ký. js
  • đăng ký. php
  • Khách thăm quan. php. Lớp để giữ phương pháp khách truy cập
  • Đăng ký. php. Lớp giữ các phương thức đăng ký

Bước 1. Tạo bảng cơ sở dữ liệu MySQL

Trước tiên, chúng tôi sẽ tạo bảng cơ sở dữ liệu MySQL subscribe_visitor thành quản trị viên và khách truy cập bình thường để kiểm tra hệ thống đăng ký đẩy

CREATE TABLE `subscription_visitor` [
  `id` int[11] NOT NULL,
  `visitorname` varchar[100] NOT NULL,
  `password` varchar[100] NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `subscription_visitor`
  ADD PRIMARY KEY [`id`];
  
ALTER TABLE `subscription_visitor`
  MODIFY `id` int[11] NOT NULL AUTO_INCREMENT;
I will insert few visitor records for testing purpose.

INSERT INTO `subscription_visitor` [`id`, `visitorname`, `password`] VALUES
[1, 'infinityknow', '12345'],
[2, 'admin', '12345'];

Tôi sẽ Tạo các đăng ký bảng cơ sở dữ liệu MySQL để lưu trữ thông tin đăng ký

CREATE TABLE `subscriptions` [
  `id` int[11] NOT NULL,
  `title` varchar[250] NOT NULL,
  `message` text NOT NULL,
  `ntime` datetime DEFAULT NULL,
  `repeat` int[11] DEFAULT 1,
  `nloop` int[11] NOT NULL DEFAULT 1,
  `publish_date` timestamp NOT NULL DEFAULT current_timestamp[] ON UPDATE current_timestamp[],
  `visitorname` varchar[255] NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `subscriptions`
  ADD PRIMARY KEY [`id`];
  
ALTER TABLE `subscriptions`
  MODIFY `id` int[11] NOT NULL AUTO_INCREMENT;

Bước 2. Thiết kế mẫu đăng nhập của khách truy cập

Tôi sẽ Thực hiện đăng nhập. tập tin php và mẫu đăng nhập thiết kế

Visitor Login:

Visitorname:
Password:
Login

Tôi sẽ xử lý chức năng đăng nhập của khách truy cập bằng cách gọi phương thức login[] từ Khách truy cập. lớp php. Tôi sẽ lưu trữ tên khách truy cập vào phiên để sử dụng trong khi triển khai chức năng đăng ký đẩy

session_start[];
$message = '';
if [!empty[$_POST['visitorname']] && !empty[$_POST['password']]] {
	
	include_once 'config/Database.php';
	include_once 'class/Visitor.php';

	$database = new Database[];
	$db = $database->getConnection[];
	$visitor = new Visitor[$db];

	$visitor->visitorname = $_POST['visitorname'];
    $visitor->password = $_POST['password'];	
	
	if[$visitor->login[]] {
		$_SESSION['visitorname'] = $visitor->visitorname;
		header["Location:index.php"];
	} else {
		$message = "Invalid visitorname or password!";
	}
}

Tôi sẽ triển khai đăng nhập phương thức trong lớp Khách truy cập. php

function login []{		
	$sqlQQ = $this->conn->prepare["
		SELECT id as visitorid, visitorname, password 
		FROM ".$this->visitorTable." 
		WHERE visitorname = ? AND password = ? "];
	$sqlQQ->bind_param["ss", $this->visitorname, $this->password];	
	$sqlQQ->execute[];
	$result = $sqlQQ->get_result[];		
	return $result;			
}

Bước 3. Hiển thị tài khoản khách truy cập

Tôi sẽ Lập chỉ mục. php để hiển thị thông tin khách truy cập đã đăng nhập. Tôi cũng sẽ hiển thị phần quản lý đăng ký cho khách truy cập Quản trị viên

Example: Build Push Notification System with PHP & MySQL

Visitor Account

Manage Subscription | Logged in : | Logout Login >

You're welcome! You can manage

Bước 4. Quản lý đăng ký và danh sách

Tôi sẽ quản lý tập tin. php và quản lý chức năng của Quản trị viên để Tạo đăng ký mới với thông tin và chỉ định cho khách truy cập để hiển thị đăng ký đẩy. Tôi sẽ gọi phương thức saveSubscription[] từ lớp Subscription. php. Tôi cũng sẽ liệt kê các đăng ký đã tạo trên trang này

Cũng đọc phần này 👉   Angular 6 - Ví dụ & hướng dẫn đăng ký và đăng nhập người dùng

Add New Subscription:

Add Message

Subscriptions List:

No Next Schedule Title Message Remains Visitor
I will implement method saveSubscription[] in class Subscription.php. function saveSubscription[]{ $insertQuery = " INSERT INTO ".$this->subscriptionTable."[ `title`, `message`, `ntime`, `repeat`, `nloop`, `visitorname`] VALUES[?,?,?,?,?,?]"; $sqlQQ = $this->conn->prepare[$insertQuery]; $sqlQQ->bind_param["sssiis",$this->title, $this->message, $this->ntime, $this->repeat, $this->nloop, $this->visitorname]; if[$sqlQQ->execute[]]{ return true; } return false; }

Bước 5. Xử lý đăng ký đẩy

Tôi sẽ đăng ký tệp JavaScript. js và triển khai chức năng getSubscription[] để nhận thông tin đăng ký bằng cách tạo yêu cầu Ajax để đăng ký. tập tin php. Chức năng này cũng sẽ xử lý chức năng đăng ký đẩy bằng cách kiểm tra quyền và hiển thị nó

function getSubscription[] {	
	if [!Subscription] {
		$['body'].append['*Browser does not support Web Subscription'];
		return;
	}
	if [Subscription.permission !== "granted"] {		
		Subscription.requestPermission[];
	} else {		
		$.ajax[{
			url : "subscription.php",
			type: "POST",
			success: function[response, textStatus, jqXHR] {
				var response = jQuery.parseJSON[response];
				if[response.result == true] {
					var subscriptionDetails = response.subscr;
					for [var i = subscriptionDetails.length - 1; i >= 0; i--] {
						var subscriptionUrl = subscriptionDetails[i]['url'];
						var subscriptionObj = new Subscription[subscriptionDetails[i]['title'], {
							icon: subscriptionDetails[i]['icon'],
							body: subscriptionDetails[i]['message'],
						}];
						subscriptionObj. title = function [] {
							window.open[subscriptionUrl]; 
							subscriptionObj.close[];     
						};
						setTimeout[function[]{
							subscriptionObj.close[];
						}, 5000];
					};
				} else {
				}
			},
			error: function[jqXHR, textStatus, errorThrown]	{}
		}]; 
	}
}

Bước 6. Nhận chi tiết đăng ký đẩy

Tôi sẽ đăng ký. php và lấy thông tin đăng ký của khách truy cập đã đăng nhập bằng cách gọi phương thức getSubscriptionByVisitor[] để hiển thị đăng ký. Thông tin đăng ký đã được cập nhật sau khi hiển thị đăng ký bằng cách gọi phương thức updateSubscription[] từ lớp Đăng ký. php. Thông tin đăng ký được trả về dưới dạng dữ liệu JSON

Chủ Đề