Php gửi biểu mẫu đến cùng một trang

Trong bài viết này, chúng ta sẽ thảo luận về việc gửi biểu mẫu php trên cùng một trang. Có hai cách để gửi biểu mẫu bằng php, trên cùng một trang hoặc tới tập lệnh php. Để gửi biểu mẫu trên cùng một trang, chỉ cần chỉ định

cú pháp

<?=$_SERVER['PHP_SELF'];?>

bên trong thuộc tính hành động

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
//form elements
</form>

Sẽ có sự nhầm lẫn là sau khi tự submit phần code thì làm như thế nào, cái đó chỉ check form đã submit hay chưa. sau đó thực hiện mã hóa bên trong điều kiện if. Kiểm tra ví dụ sau,

Mã đầy đủ

<?php
if(isset($_POST['submit']))
{
    //your php scripts
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Base 64 image Upload</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
    <div class="row">
	<div class="col-md-4">
	   <form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
		<!-- Your form elements -->
		<input type="submit" name="submit" value="Submit" class="btn btn-sm btn-info">
	   </form>
	</div>
   </div>
</body>
</html>

Bao gồm bootstrap css https. //maxcdn. bootstrapcdn. com/bootstrap/3. 3. 7/css/khởi động. tối thiểu. css để tạo kiểu cho biểu mẫu

Dữ liệu POST được gửi bởi một biểu mẫu và "được đăng" lên máy chủ web dưới dạng dữ liệu biểu mẫu. Dữ liệu POST được mã hóa theo cách giống như dữ liệu GET, nhưng thường không hiển thị cho người dùng trong các trình duyệt tiêu chuẩn

Hầu hết các biểu mẫu sử dụng phương thức đăng vì nó “ẩn” dữ liệu biểu mẫu khỏi người dùng và không làm lộn xộn URL trong thanh địa chỉ. Lưu ý rằng các phương thức GET và POST đều (ở) an toàn như nhau

Người dùng có thể dễ dàng sử dụng dữ liệu GET trong một URL, điều tương tự cũng có thể được thực hiện với dữ liệu POST. Bạn phải luôn cho rằng người dùng có thể gửi bất kỳ biểu mẫu và dữ liệu biểu mẫu nào mà họ muốn và xử lý dữ liệu tương ứng. Không tin tưởng đầu vào của người dùng, cho dù đó là từ GET hay POST

Dữ liệu bài đăng được truy cập bằng mảng $_POST trong PHP

<?php
   echo("First name: " . $_POST['firstname'] . "<br />\\n");
   echo("Last name: " . $_POST['lastname'] . "<br />\\n");
?>
	

<form action="myform5.php" method="post">
   <p>First name: <input type="text" name="firstname" /></p>
   <p>Last name: <input type="text" name="firstname" /></p>
   <input type="submit" name="submit" value="Submit" />
</form>

Sử dụng “isset”

Bạn có thể sử dụng chức năng “isset” trên bất kỳ biến nào để xác định xem nó đã được đặt hay chưa. Bạn có thể sử dụng chức năng này trên mảng $_POST để xác định xem biến đã được đăng hay chưa. Điều này thường được áp dụng cho giá trị của nút gửi, nhưng có thể được áp dụng cho bất kỳ biến nào

Ví dụ

<?php
   if(isset($_POST['submit']) 
   {
      echo("First name: " . $_POST['firstname'] . "<br />\\n");
      echo("Last name: " . $_POST['lastname'] . "<br />\\n");
   }
?>

<form action="myform5.php" method="post">
   <p>First name: <input type="text" name="firstname" /></p>
   <p>Last name: <input type="text" name="firstname" /></p>
   <input type="submit" name="submit" value="Submit" />
</form>

Đoạn mã trên sẽ chỉ hiển thị các giá trị đã gửi nếu nhấp vào nút gửi

Tôi có thể sử dụng cả GET và POST trên cùng một trang không?

GET và POST chiếm các không gian khác nhau trong bộ nhớ của máy chủ, vì vậy cả hai có thể được truy cập trên cùng một trang nếu bạn muốn. Một cách sử dụng có thể là hiển thị các thông báo khác nhau trên một biểu mẫu tùy thuộc vào nội dung trong chuỗi truy vấn

http://mysite/myform5.php?lang=english

<?php
   if(isset($_POST['submit']) {
      if($_GET['lang'] == "english") {
         echo("First name: " . $_POST['firstname'] . "<br />\\n");
         echo("Last name: " . $_POST['lastname'] . "<br />\\n");
      } else if($_GET['lang'] == "spanish") {
         echo("Nombre: " . $_POST['firstname'] . "<br />\\n");
         echo("Apellido: " . $_POST['lastname'] . "<br />\\n");
   }
?>

________số 8_______

Thay vì sử dụng mảng GET và POST, bạn cũng có thể sử dụng mảng $_REQUEST, sẽ chứa nội dung kết hợp của dữ liệu. Nếu biến GET và POST trùng tên thì POST sẽ được ưu tiên. Bạn không nên làm điều này trừ khi bạn thực sự phải làm, vì nó có thể gây nhầm lẫn và tốt nhất là bạn nên làm rõ nguồn đầu vào đến từ đâu

Một điều nữa cần chú ý. "hành động" trên biểu mẫu hiện bị thiếu. Về mặt kỹ thuật, đây không phải là HTML hợp lệ. Tuy nhiên, bằng cách không đưa vào một hành động, các trình duyệt sẽ cho rằng biểu mẫu đang gửi cho chính nó. Điều này rất quan trọng vì nó cũng sẽ bảo toàn chuỗi truy vấn khi biểu mẫu được gửi (phần ?lang=english). Bạn có thể sử dụng các biến máy chủ như $_SERVER['PHP_SELF']$_SERVER['QUERY_STRING'] để tạo giá trị hành động

Để biết thêm thông tin, hãy xem phần Sử dụng PHP_SELF trong trường hành động của biểu mẫu

Đăng ký toàn cầu tắt?

Nếu bạn đang sử dụng phiên bản PHP cũ hơn 4. 2. 0, bạn nên cân nhắc kỹ việc đặt register_globals thành “tắt” trong. htaccess (nếu bạn đang sử dụng máy chủ Apache) vì những lý do chính xác giống như đã được đề cập trong hướng dẫn trước về GET. Nếu bạn có PHP 4. 2. 0 hoặc mới hơn, đừng lo lắng về điều đó

Tìm hiểu thêm về POST

Các giá trị POST không giới hạn về độ dài và do đó rất phù hợp với các biểu mẫu, đặc biệt là các biểu mẫu có nhiều trường

Làm cách nào để gửi biểu mẫu bằng PHP trong cùng một trang?

Giải thích. $_SERVER['PHP_SELF'] . $_SERVER[“PHP_SELF”] là một biến siêu toàn cầu trả về tên tệp của tập lệnh hiện đang thực thi. Nó gửi dữ liệu biểu mẫu đã gửi đến cùng một trang, thay vì chuyển sang một trang khác.

Làm cách nào để chuyển hướng đến cùng một trang trong PHP sau khi gửi?

Hiện tại trong PHP, việc chuyển hướng được thực hiện bằng cách sử dụng hàm header() vì đây được coi là phương pháp nhanh nhất để chuyển hướng lưu lượng truy cập từ một . Ưu điểm chính của phương pháp này là nó có thể điều hướng từ vị trí này sang vị trí khác mà người dùng không cần phải nhấp vào liên kết hoặc nút.

Làm cách nào để hiển thị dữ liệu đã gửi trên cùng một trang với biểu mẫu trong HTML?

Nếu bạn muốn thêm nội dung vào một trang, bạn cần làm việc với DOM. Google "tạo div javascript" hoặc "tạo span javascript" để làm ví dụ, về cơ bản bạn cần phải tạo một phần tử có văn bản của bạn trong đó và thêm phần tử đó vào phần của trang mà bạn muốn . .

Làm cách nào để gửi biểu mẫu PHP mà không cần tải lại trang?

Gửi biểu mẫu mà không cần làm mới trang – PHP/jQuery .
Trang Web Chính. Tạo và lập chỉ mục. .
Tạo JavaScript. Bây giờ hãy tạo một trang JavaScript với tên gửi. .
Tạo tập lệnh PHP. Bây giờ hãy tạo một tập lệnh PHP có tên gửi. .
thử nghiệm. Bây giờ truy cập chỉ mục. .
10 cách đơn giản để tăng tốc trang web WordPress của bạn