Làm cách nào để biết email đã được đăng ký bằng php?

Than ôi, nó hoàn toàn sai. Kết quả của truy vấn không liên quan gì đến số lượng hàng được tìm thấy. Một kết quả trống vẫn là một kết quả hợp pháp, nó không thể là false chỉ vì truy vấn không tìm thấy gì

Trên thực tế, mã để kiểm tra xem một số giá trị có tồn tại trong cơ sở dữ liệu hay không sẽ chỉ là một quy trình thông thường cho các truy vấn được chọn

Và tất nhiên, một tuyên bố chuẩn bị là bắt buộc. KHÔNG bao giờ đặt một biến dữ liệu trực tiếp vào truy vấn. Thay vào đó, hãy luôn sử dụng trình giữ chỗ

Làm cách nào để kiểm tra xem một giá trị có tồn tại không?

Để kiểm tra xem một giá trị cụ thể có tồn tại trong cơ sở dữ liệu hay không, bạn chỉ cần chạy một truy vấn CHỌN thông thường, tìm nạp một hàng và xem có thứ gì đã được tìm nạp hay không

Cho trước $pdo chứa một phiên bản PDO hợp lệ, mã sẽ là

$email = "[email protected]";
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if ($user) {
    // email found
} else {
    // or not

Ở đây chúng tôi đang chọn một hàng phù hợp với tiêu chí của chúng tôi, sau đó tìm nạp nó và sau đó kiểm tra xem có thứ gì đã được chọn hay chưa

ghi chú

Cũng hợp lý khi chỉ chọn một giá trị hằng số duy nhất để giảm một chút chi phí, nếu chúng ta sẽ không sử dụng bất kỳ dữ liệu đã chọn nào. Vì mục đích đó, đơn giản thay thế * bằng 1. Có một hàm hoặc một phương thức của lớp cho mục đích này cũng sẽ hữu ích

function emailExists($pdo, $email) {
    $stmt = $pdo->prepare("SELECT 1 FROM users WHERE email=?");
    $stmt->execute([$email]);
    return $stmt->fetchColumn();
)

if (emailExists($pdo, $email)) {
    // found
}

ở đây chúng tôi đang sử dụng một phương thức tiện dụng của PDO là fetchColumn trả về một giá trị đã chọn hoặc nếu không thì là false. Cho trước 1 sẽ được coi là

$email = "[email protected]";
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if ($user) {
    // email found
} else {
    // or not
0 bởi câu lệnh
$email = "[email protected]";
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if ($user) {
    // email found
} else {
    // or not
1, chúng ta có thể trả về trực tiếp kết quả của phương thức này. Tuy nhiên, trong trường hợp bạn thích nhập nghiêm ngặt, giá trị trả về có thể được chuyển thành boolean

    return (bool)$stmt->fetchColumn();

Ngoài ra, như có thể thấy ở trên, một giải pháp phổ biến với số lượng hàng được trả về là không cần thiết. Gọi $stmt->numRows() chỉ là thừa, chưa kể nó có thể không khả dụng do một số trình điều khiển hoặc cài đặt

Trong bài viết này, tôi sẽ thảo luận về cách gửi email từ localhost và tạo đăng ký với xác minh email bằng php.  

Tôi sẽ làm điều đó trong hàng php, không phải trong oop. Ngoài ra, tôi sẽ sử dụng mã bootstrap để làm cho nó nhanh hơn.  

Những thứ bổ sung chúng ta sẽ cần.  

  1. thư viện phpMailer
  2. bẫy thư. thông tin đăng nhập tài khoản io để gửi email

Đầu tiên, hãy tạo một cơ sở dữ liệu và một bảng. Tên cơ sở dữ liệu là `verification`  và tên bảng là `users`

Các cột mà tôi sẽ tạo để xác thực là,

Id, email, mật khẩu, mã, is_verified

Đây là mã để tạo bảng

TẠO BẢNG `xác minh`. `verification` ( `id` INT(11)  NULL AUTO_INCREMENT , `name` VARCHAR(50)  NULL , `email` VARCHAR(60)  NULL , `code` VARCHAR(10)  NULL , `is_verified` TINYINT(3)  NULL  '

Bây giờ hãy chuyển sang phần mã hóa.  

Trước tiên, tôi đang tạo một thư mục có tên là xác minh bên trong thư mục máy chủ cục bộ của mình. Nó có thể là www/htdocs dựa trên ứng dụng máy chủ của bạn (wamp/xampp/ampps, v.v.)

Bây giờ bên trong thư mục `xác minh` này, tôi đang tạo các tệp đó.  

  1. Sự đăng ký. php
  2. Xác minh. php
  3. Db. php
  4. gửi email. php

Hãy bắt đầu với db. php. Trong tệp này, chúng tôi sẽ kết nối với cơ sở dữ liệu.  

Đây là mã cho db. php

$servername = "máy chủ cục bộ";

$username = "gốc";

$password = "mysql";

$conn = mysqli_connect($servername, $username, $password);

nếu như (. $conn) {

die("Kết nối thất bại. ". mysqli_connect_error());

}

?>

Vì vậy, cơ sở dữ liệu của chúng tôi được kết nối ngay bây giờ

Hãy tải xuống PHPmailer và định cấu hình nó để gửi email. Để tải xuống, hãy truy cập vào liên kết này. PHPMailer/PHPMailer. Thư viện gửi email cổ điển cho PHP (github. com)

Sau khi tải xuống, đổi tên nó thành PHPMailer và di chuyển thư mục này vào trong thư mục dự án của chúng tôi. Tên thư mục dự án của chúng tôi là `xác minh`. Vì vậy, đặt phpMailer này bên trong thư mục này

Vì vậy, thư mục dự án của chúng tôi trông như thế này

Làm cách nào để biết email đã được đăng ký bằng php?

Bây giờ thư viện bưu phẩm của chúng tôi cũng được tích hợp. Hãy cấu hình mã bưu phẩm

Trước khi cấu hình, hãy lấy mailtrap. chứng chỉ io. Để có được điều này, hãy đăng nhập vào mailtrap của bạn. io và lấy thông tin xác thực như được đề cập trong ảnh chụp màn hình bên dưới.  

Làm cách nào để biết email đã được đăng ký bằng php?

Bây giờ hãy mở gửiEmail. php và dán đoạn mã dưới đây.  

sử dụng PHPMailer\PHPMailer\PHPMailer;

sử dụng PHPMailer\PHPMailer\Ngoại lệ;

lớp gửiEmail

{

chức năng gửi($code)

{

yêu cầu 'PHPMailer/src/Ngoại lệ. php';

yêu cầu 'PHPMailer/src/PHPMailer. php';

yêu cầu 'PHPMailer/src/SMTP. php';

// tạo đối tượng của lớp PHPMailer với tham số boolean thiết lập/bỏ đặt ngoại lệ

$mail = PHPMailer mới(true);

thử {

$mail->isSMTP();

$mail->Máy chủ = 'smtp. bẫy thư. io';

$mail->SMTPAuth = true;

$mail->Tên người dùng = '';

$mail->Mật khẩu = '';

$mail->SMTPSecure = 'tls';

$mail->Port = 587;

$mail->isHTML(true);

$mail->setFrom('[email được bảo vệ]', "Người gửi");

$mail->addAddress('[email được bảo vệ]', "Người nhận");

tiêu đề $. = 'Loại nội dung. văn bản/html; . "\r\n";

$mail->Subject = 'Email xác minh';

$mail->Body    = 'Vui lòng nhấp vào nút này để xác minh tài khoản của bạn. Xác minh' ;

$mail->gửi();

echo 'Tin nhắn đã được gửi';

} catch (Ngoại lệ $e) { // xử lý lỗi

echo 'Không gửi được tin nhắn. Lỗi người gửi thư. ', $mail->ErrorInfo;

}

}

}

$sendMl = sendEmail mới();

?>

Trong đoạn mã trên, chúng tôi sẽ cần cập nhật bẫy thư của mình. tên người dùng và mật khẩu io. Vì vậy, bằng cách sử dụng ảnh chụp màn hình ở trên, hãy thêm mailtrap của bạn. chứng chỉ io

Đó là hai dòng mà chúng ta cần cập nhật với tài khoản mailtrap của chính mình.  

$mail->Tên người dùng = ‘’;

$mail->Mật khẩu = ‘’;

Vậy là chức năng gửi email của chúng ta đã sẵn sàng

Bây giờ chúng tôi sẽ làm việc trên đăng ký. php. Tôi sẽ không thực hiện bất kỳ xác thực email hoặc mật khẩu nào ở đây.  

Sao chép các mã dưới đây và dán vào bên trong đăng ký. tập tin php

bao gồm ('db. php');

bao gồm ('sendEmail. php');

if (isset($_POST['submit'])) {

$email = $_POST['email'];

$password = $_POST['password'];

mã $ = rand();

$sql = "CHÈN VÀO `xác minh`. `users` (`id`, `password`, `email`, `code`) GIÁ TRỊ (NULL, '$password', '$email', '$code')";

$result = mysqli_query($connection,$sql);

nếu ($kết quả) {

echo "Đăng ký thành công. Vui lòng xác minh email của bạn. “;

$sendMl->send($code);

}

}

?>

  

Ví dụ Bootstrap

  

  

  

  

biểu mẫu đăng ký

  

    

E-mail

      

    

    

Mật khẩu

      

    

Nộp

  

Bây giờ hãy chạy đăng ký của bạn. tập tin php. Tôi sẽ chạy nó như thế này.  

`localhost/xác minh/đăng ký. php `

Nó sẽ hiển thị một hình thức như thế này.  

Làm cách nào để biết email đã được đăng ký bằng php?

Bây giờ hãy điền vào biểu mẫu và nhấn gửi. Nếu mọi thứ bạn đã làm đều ổn, thì nó sẽ lưu dữ liệu vào cơ sở dữ liệu. Ngoài ra, bạn sẽ thấy một email đã được gửi đến mailtrap của bạn. tài khoản io như hình bên dưới.  

Làm cách nào để biết email đã được đăng ký bằng php?

Vậy là chúng ta đã đăng ký xong.  

Bây giờ chúng tôi sẽ tiến hành xác minh. php

Dán mã dưới đây bên trong xác minh. php

bao gồm ('db. php');

if (isset($_GET['code'])) {

$id = $_GET['mã'];

$sql = "CẬP NHẬT `xác minh`. `người dùng` SET is_verified='1' WHERE code =$id";

$result = mysqli_query($connection,$sql);

nếu ($kết quả) {

echo "Tài khoản của bạn đã được xác minh";

}

}

khác {

$message = "Sai url";

}

?>

  

Ví dụ Bootstrap

  

  

  

  

  

  

  

tiếng vang $tin nhắn;

?>

Bây giờ hãy nhấp vào liên kết được gửi đến tài khoản mailtrap của bạn và tài khoản của bạn sẽ được xác minh.  

Xin lưu ý, tôi đã bỏ qua xác thực và một số kiểm tra tiêu chuẩn như khớp mật khẩu vì mục đích chính là gửi email từ địa phương và tạo một hệ thống đăng ký yêu cầu xác minh email.  

Làm cách nào để kiểm tra xem email đã được đăng ký trong PHP chưa?

Trước khi làm việc với địa chỉ email, cần xác minh và kiểm tra xem email có hợp lệ hay không. Có thể dễ dàng xác thực email trong PHP bằng cách sử dụng hàm filter_var() với bộ lọc FILTER_VALIDATE_EMAIL . Nó sẽ kiểm tra xem định dạng của địa chỉ email đã cho có hợp lệ không.

Làm cách nào để kiểm tra xem người dùng đã được đăng ký trong PHP chưa?

$query = mysql_query("CHỌN tên người dùng TỪ Người dùng Ở ĐÂU tên người dùng=$tên người dùng", $con); . = 0) { echo "Tên người dùng đã tồn tại"; . }

Làm cách nào để xác thực email thực trong PHP?

Bạn có thể thực hiện email xác thực PHP bằng cách sử dụng hàm filter_var() và chuyển email và id bộ lọc đã cho “FILTER_VALIDATE_EMAIL” làm đối số . Id bộ lọc đã nêu sẽ kiểm tra xem định dạng của email có đúng theo cú pháp trong RFC 822 không.

Làm cách nào để kiểm tra xem email đã tồn tại trong cơ sở dữ liệu bằng Python chưa?

isEmailValid($email)). $result['has_error'] = 1; . "; elseif(isEmailExists($db, "employees", $email)). $result['has_error'] = 1; . "; endif; // Kiểm tra có lỗi không if(.