Tạo menu lựa chọn trong C/C++

Tạo một Menu có các lựa chọn là 1 bài tập lập trình căn bản, giúp các bạn làm quen với các lệnh xóa màn hình, vòng lặp while, lệnh switch case, lệnh getch. Đây có thể nói là 1 bài tập tổng hợp. Các bạn theo dõi video bên dưới để dễ hình dung hơn.

Tạo menu lựa chọn trong C/C++

Tóm tắt Video

  • Tạo một dự án mới
  • Tạo các chức năng của dự án (bài tập)
  • Tạo các menu chức năng
  • Viết các hàm xử lý menu
  • Gọi hàm main để chạy thử chương trình

Code: Menu.h

#include "Lib.h"

void Menu();		// Ham nay se xuat ra cac danh sach menu
int ChonMenu();		// Ham nay dung de chon 1 menu tuong ung
void XuLyMenu();	// Xu ly menu ung voi menu duoc chon


void Menu() {
	cout << "=================MENU================\n";
	cout << "1. Vua ga - vua cho\n";
	cout << "2. Kiem tra so nguyen to\n";
	cout << "3. Tong cac so nguyen to\n";
	cout << "4. Dao nguoc so\n";
	cout << "5. Tim so sao cho a*b = 2(a+b)\n";
	cout << "6. Tinh giai thua cua mot so\n";
	cout << "7. Tim day Fibonaci\n";
	cout << "8. Hoan vi\n";
	cout << "9. Ve tam giac\n";
	cout << "10. Bai tap cua cac ban";
	cout << "99. Thoat!!!\n";
	cout << "=====================================\n";
}
int ChonMenu()
{
	int n = 0;
	cout << "\n\nMoi chon menu: ";
	cin >> n;
	if (n > 0 || n < 99)
		return n;
	else return ChonMenu();
}
void XuLyMenu() 
{
	int chon = ChonMenu();
	int a = 5; int b = 6;
	switch (chon)
	{
	case 1:		
		cout << "1. Vua ga vua cho.\n";
		VuaGaVuaCho();
		break;
	case 2:
		cout << "2. Kiem tra so nguyen to\n";
		cout << TimSoNT(5);
		break;
	case 3:
		cout << "3. Tong cac so nguyen to\n";
		cout << TinhTongCacSoNT(11);
		break;
	case 4:
		cout << "4. Dao nguoc so\n";
		cout << DaoNguocSo(123);
		break;
	case 5:
		cout << "5. Tim so sao cho a*b = 2(a+b)\n";
		TimSoTichABBang2TongAB(100);
		break;
	case 6:
		cout << "6. Tinh gia thua cua mot so\n";
		cout << TinhGiaiThua(6);
		break;
	case 7:
		cout << "7. Tim day Fibonaci\n";
		for (int i = 0; i < 5; i++)
		{
			cout << Finbonaci(i) << "\t";
		}
		Finbonaci2(7);
		break;
	case 8:
		cout << "7. Hoan vi\n";
		//int a = 5; int b = 6;
		HoanVi(a, b);
		cout << a << "\t" << b;
		break;
	case 9:
		VeHinhTamGiac(4, 5);
		break;
	case 99:
		cout << "Thoat!!!\n";
		exit(1);
		break;
	}
}

Code Source.cpp

#include "Menu.h"
using namespace std;
void main() 
{	
	Menu();
	while (true)
	{	
		XuLyMenu();
	}
	_getch();
}

Hãy sáng tạo theo cách của bạn.

Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây:  Download

Cảm ơn bạn đọc và tôi luôn đánh giá cao phản hồi của bạn.

CRUD using Ajax in ASP.NET MVC

Trong quá trình học và làm lập trình, bạn thường nghe nói nhiều đến Ajax, được khuyên dùng Ajax trong nhiều câu trả lời. Vậy ajax là gì? Ứng dụng ajax vào có khó hay không? Trong video dưới đây mình sẽ hướng dẫn các bạn cách thêm, xóa, sửa, lấy dữ liệu bằng Ajax trong ASP.NET MVC (Các bạn hoàn toàn có thể ứng dụng vào cho ngôn ngữ lập trình khác như PHP chằng hạn…)

Video Demo CRUD using Ajax in ASP.NET MVC

Tóm tắt Video
  • Ajax là gì?
  • Tạo Cơ sở dữ liệu bảng Student (lưu thông tin sinh viên)
  • Tạo dự án ASP.NET MVC mới
  • Tạo class xử lý thêm, xóa sửa
  • Tạo form thêm sinh viên
  • Viết code cho Controller
  • Viết code cho file javascript
Bạn hoàn toàn có thể ứng dụng Ajax trong nhiều trường hợp: đăng nhập, đăng ký, tìm kiếm thông tin, giỏ hàng….
Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây:  Download

Cảm ơn bạn đọc và mình luôn đánh giá cao phản hồi của bạn.

Chương trình hẹn giờ tắt máy tính bằng C#

Chương trình hẹn giờ tắt máy tính
Chương trình hẹn giờ tắt máy tính

Khi mới làm quen với chiếc máy vi tính, tôi đã luôn tò mò làm thế nào mình có thể viết một trang web, viết một phần mềm nho nhỏ. Có lẽ đó là lý do tôi chọn theo ngành Công nghệ Thông tin. Tuy vậy, tôi cũng chưa thể viết ngay được một phần mềm cho ra hồn, khi vào ĐH. Cho đến khi học về C#, Windows Form, tôi mới bắt đầu tự viết các phần mềm nho nhỏ, như chương trình hẹn giờ tắt máy tính, chương trình nghe nhạc, chương trình xem ảnh, chương trình thay đổi màn hình desktop (Windows XP)….
Bạn thấy đấy, nó không lớn, và cũng có nhiều người làm rồi, tuy vậy với một người yêu thích lập trình giống như tôi cảm giác tự mình làm ra một phần mềm (made by tự tui) vẫn rất thú vị. Và tôi nghĩ nhiều bạn lúc mới bắt đầu cũng có suy nghĩ giống vậy. Tôi vẫn thích dùng phần mềm do mình viết ra hơn, dù nó không thực sự là hoàn hảo.
Hôm nay, tôi sẽ hướng dẫn các bạn viết một chương trình nho nhỏ, đó là chương trình hẹn giờ tắt máy tính bằng C#. Bạn có thể sử dụng nó mỗi lúc để máy nghe nhạc, hay nghe truyện ma trước khi ngủ, tặng cho bạn bè, hay tặng bạn gái của bạn… Tùy tính sáng tạo của bạn, tôi có vài gợi ý như là: Hẹn giờ tắt máy, hẹn giờ đi chơi với bạn gái, hẹn giờ cứ tới 9h tối là hát bài “Chúc bé ngủ ngon” :D. Nó cũng hữu ích trong trường hợp bạn ngồi quá lâu trước máy vi tính, nó nhắc nhở bạn bằng một bài hát yêu thích, hay hiện lên hình ảnh cô gái sexy nào đó sau mỗi 45 phút. (Ý tưởng cũng không tồi nhỉ?)
Tôi đặt tên cho ứng dụng của mình là AppAutoShutdown. Bạn có thể đặt tên nào mà bạn thích. 🙂

Video Chương trình hẹn giờ tắt máy tính C#

Tóm tắt Video

  • Tạo dự án Windows Form trong VS
  • Thiết kế giao diện màn hình chính
  • Sử dụng control Timer
  • Viết Class ExitWindows
  • Xử lý sự kiện khi hẹn giờ

Hãy sáng tạo theo cách của bạn. Nâng cao một chút như khởi động cùng windowns, thu gọn chương trình vào khay hệ thống, hay hẹn giờ vào thời gian kế tiếp, như 12h chẳng hạn, thay gì 1h30ph.

Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây:  Download hoặc tải về file exe của chương trình. Yêu cầu Net Framework 4.0.  AppAutoShutdown.Exe

Cảm ơn bạn đọc và tôi luôn đánh giá cao phản hồi của bạn.

Tấn công SQL Injection trong ASP.NET

Với mỗi lập trình viên chúng ta, tạo ra một sản phẩm website chính là đứa con tinh thần, bởi vì bạn đã bỏ ra rất nhiều công sức, ý tưởng sáng tạo để xây dựng nên. Nếu chúng ta làm cho khách hàng, thì nó còn là uy tín, thương hiệu cá nhân của bạn. Để có một sản phẩm như vậy đòi hỏi chúng ta phải làm rất nhiều việc, từ thiết kế giao diện, xây dựng cơ sở dữ liệu, viết code…

Tấn công SQL Injection trong ASP.NET
Tấn công SQL Injection trong ASP.NET

Và còn một điều cực kỳ quan trọng đó chính là vấn đề bảo mật website. Trong thời đại thông tin ngày nay, bảo mật luôn là yếu tố hàng đầu, nhất là những công ty lớn như Facebook, Micrcosoft, các công ty tài chính, ngân hàng. Bạn nghe nói về bảo mật, an toàn thông tin hàng ngày, hàng giờ. Chúng ta, những lập trình viên thì càng nên có ý thức xây dựng sản phẩm bảo mật ngay từ đầu, tức là từ trong code của chúng ta. Nếu bạn nào giữ suy nghĩ rằng, website của mình nhỏ, cần gì bảo mật… thì bài viết này sẽ không phù hợp với bạn. Bài viết này phù hợp với những bạn mới bước chân vào thế giới lập trình web. Còn nếu bạn pro rồi, thì không sao cả, bạn có thể đưa ra những đóng góp ý kiến giúp mình hoàn thiện hơn

Nói về bảo mật thì có rất nhiều lý thuyết mà hẳn bạn đã nghe qua, các hình thức tấn công như:

  1. Tấn công trên tham số truyền
  2. Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Site Scripting)
  3. Tràn bộ đệm (Buffer OverFlow)
  4. Tấn công SQL (SQL Injection)
  5. Mã hoá URL
  6. Tấn công bằng mã độc
  7. Directory Transversal attack?
  8. Local attack
  9. Tấn công phiên làm việc
  10. Đánh cắp phiên làm việc (Session Hijacking)
  11. Để lộ thông tin
  12. Upload dữ liệu bất hợp lệ
  13. Tấn công từ chối dịch vụ (DDos)
  14. Kỹ thuật tấn công Cross Site Request Forgery (CSRF hay XSRF)

(Bạn nào chuyên sâu, còn hình thức tấn công nào nữa, xin góp ý mình bổ sung thêm)
Nhưng ở đây mình chỉ xin bàn về SQL Injection, là lỗ hổng bảo mật do sự chủ quan, hay thiếu kinh nghiệm của coder chúng ta. Và chỉ chính chúng ta mới khắc phục được, chứ không phải nhờ firewall hay server tốt.
Thật vậy, một sản phẩm dù đẹp như thế nào, bạn quảng cáo nó tốt đến đâu, chạy nhanh ra sao, nhưng nếu bảo mật kém thì hẳn là thiếu sót lớn. Hacker có thể khai thác được cơ sở dữ liệu của bạn, nếu cơ sở dữ liệu của bạn chứa thông tin khách hàng của bạn (Ngân hàng chẳng hạn…) thì bạn đã gián tiếp gây nguy hại cho an toàn thông tin của khách hàng. Tệ hại hơn nó làm gián đoạn hoạt động trên website của bạn, mất uy tín với khách hàng, và nhiều thứ khác nữa…

Vậy SQL Injection là gì? Nó có thể gây hại như thế nào đối với trang web của bạn?
SQL injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp. SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác, delete, insert, update,… trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase…
Các khai thác phổ biển của SQL Injection:
– Đăng nhập không mật khẩu
– Truy vấn lấy thông tin
– Cập nhật thông tin
– Xóa thông tin
– Xóa bảng
– Tấn công sử dụng stored-procedures
– …
Video Demo Tấn công SQL Injection trong ASP.NET

Tóm tắt Video

  • Tạo Cơ sở dữ liệu bảng Member (Lưu thông tin thành viên)
  • Tạo dự án ASP.NET mới
  • Tạo trang Đăng nhập, trang quản lý Member
  • Viết code đăng nhập, code tìm kiếm thành viên
  • Demo tấn công SQL Injection
  • Đăng nhập không mật khẩu
  • Truy vấn lấy thông tin bảng Member
  • Thêm, Xóa, Sửa trên bảng Member
  • Xóa bảng Member…
  • Cách phòng tránh.
Trong thực tế thì hoàn toàn không đơn giản như vậy, nhưng không vì thế mà chúng ta chủ quan, lơ là vấn đề bảo mật.
Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây:  Download

Cảm ơn bạn đọc và mình luôn đánh giá cao phản hồi của bạn.

ASP.NET MVC4 Sending Email

ASP.NET MVC 4 SendMail
ASP.NET MVC 4 Send Mail
[ASP.NET MVC4 Sending Email] Trong quá trình lập trình web, luôn có trường hợp chúng ta cần gửi email cho ai đó, người dùng của chúng ta, ví dụ khi đăng ký thành viên, cần gửi email kích hoạt. Khi quên mật khẩu, gửi email yêu cầu lấy lại.  Khi khách hàng mua hàng online, cần gửi email xác nhận, hay có phản hồi từ người dùng, và nhiều trường hợp khác nữa…

Trong phạm vi hướng dẫn này, tôi trình bày các bạn cách gửi email từ gmail trong MVC 4, bạn có thể áp dụng cho MVC 3, MVC 5 hay ASP.NET webform. Kịch bản của chúng ta đó là form liên hệ, phản hồi trên website. Khi một khách hàng viếng thăm và để lại lời nhắn, nó sẽ gửi email về hòm thư của chúng ta thiết lập trước (hoặc gửi thư cảm ơn khách hàng phản hồi – tùy chọn)

Để tìm hiểu thêm về MVC 4, MVC 5 bạn có thể tải về 2 cuốn ebook tại đây. Sách nay nên đọc.

Tóm tắt video:

  • Tạo một dự án mới (New Project)
  • Tạo ContactModel class
  • Tạo EmailService class
  • Tạo SendMail Controller
  • Tạo Form gửi liên hệ
  • Demo kết quả.
  • Áp dụng được cho MVC 3, 4 , 5, ASP.NET webform

Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây: Download

Cảm ơn bạn đọc và phản hồi của bạn luôn được đánh giá cao.

——–

UpdateTrong nhiều trường hợp, các bạn không thể gửi email được. Xin vui lòng đừng bỏ cuộc, hãy đi tìm nguyên nhân & cách khắc phục vấn đề. Đầu tiên sau khi download mã nguồn về, các bạn hay thay đổi thành email của các bạn. Email trong demo của mình đã đổi password, nên chắc chắn không thể gửi được.

Các bạn dùng email của mình. Lưu ý, hiện nay Google đã thay đổi chính sách bảo mật. Các bạn không thể dùng password mà các bạn đăng nhập hàng ngày để gửi email. Thay vào đó google cho phép chúng ta tạo ra một loại password mới, đó là App Passwords. Đầu tiên các bạn truy cập vào đây để tạo 2 lớp bảo mật cho Gmail. Sau đó truy cập vào đây để tạo mới một app password. Các bạn sẽ dùng password này để gửi email. Password này không dùng thay thế password hiện tại. Nên bạn không thể dùng để đăng nhập Gmail.

Chúc các bạn thành công.