HomeLập trìnhPhpBiểu mẫu liên...

Biểu mẫu liên hệ PHP trên cùng một trang


Tôi có một biểu mẫu liên hệ bên dưới và khi tôi gửi biểu mẫu liên hệ, nó sẽ gửi cho tôi một trang khác có nội dung Tin nhắn của bạn đã được gửi! nhưng tôi không muốn điều đó nên tôi chỉ cần hiển thị một thông báo đơn giản bên trong biểu mẫu liên hệ có nội dung Tin nhắn của bạn đã được gửi và tôi rất mới bắt đầu với PHP và các ngôn ngữ phụ trợ khác, vì vậy nếu ai đó giúp tôi thì điều này sẽ đánh giá rất cao.

<?php 
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent= " From:  $name, \n Email: $email \n Message: $message";
$recipient = "[email protected]";
$subject = "New Email";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error");
echo "Your Message was sent !";
?>
<form method="POST" action="contact-form.php">      
         <input name="name" type="text" class="message" placeholder="Name" />  
     <input name="email" type="text" class="message" placeholder="Email"  />
  <textarea name="message" class="message" placeholder="Your Message"></textarea>
             <input type="submit" value="SUBMIT"/>
          </form


Đã rất lâu rồi tôi mới xem php và tôi chưa bao giờ biết rõ về nó, nhưng tôi nghĩ rằng những gì bạn muốn làm là loại bỏ contact-form.php từ mẫu action và thay vào đó hãy để tập lệnh php của bạn xem POST nộp hồ sơ.

Nếu bạn để trống hành động, nó sẽ đăng (gửi biểu mẫu) lên cùng một trang.

Điều đầu tiên bạn cần làm là kiểm tra xem biểu mẫu đã được gửi hay chưa, trước khi nhận các giá trị, thử gửi email và đăng thông báo phản hồi. Cách dễ nhất là kiểm tra xem nút gửi đã được gửi chưa:

if(isset($_POST["submit"])) {
   // process form data, send email, output message
}

Bạn cũng nên đảm bảo rằng bạn đang xóa dữ liệu đến từ một biểu mẫu để đảm bảo không có mã độc trong đó. (Xem SQL injection và XSS Scripting)

Đọc thêm  Cách hiện dữ liệu trên bảng Mat từ PHP và mysql

PHP sẽ không tự động điền lại biểu mẫu HTML, vì vậy đó là điều bạn phải tự làm:

<input value="<?=$email?>" ..... />

Tôi tin rằng thuộc tính giá trị sẽ ghi đè thuộc tính giữ chỗ. Và tùy thuộc vào cách bạn thiết lập mọi thứ, bạn có thể phải kiểm tra xem có tồn tại giá trị cho $email hay không trước khi sử dụng:

<input value="<?php if(isset($email)) print $email ?>" ..... />

Bạn cũng có thể thử xử lý dữ liệu thông qua lệnh gọi Ajax. Có một tin nhắn được định dạng độc đáo cho biết tin nhắn đã được gửi khi vẫn ở trên trang hiện tại.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status