Làm cách nào để giữ lại giá trị sau khi gửi biểu mẫu trong PHP?

Trong các phần trước, bạn đã theo dõi và xây dựng một biểu mẫu HTML. Bạn đã học cách lấy văn bản từ hộp văn bản trên biểu mẫu, nhưng có một vấn đề

Khi biểu mẫu cơ bản. biểu mẫu php được gửi, các chi tiết mà người dùng đã nhập sẽ bị xóa. Bạn còn lại GIÁ TRỊ đã được đặt trong HTML. Đối với chúng tôi, tên người dùng tiếp tục xuất hiện trong hộp văn bản khi nhấp vào nút. Bạn có thể giữ lại dữ liệu người dùng đã nhập khá dễ dàng

Tập lệnh của bạn bây giờ trông giống như tập lệnh trong liên kết bên dưới. Nếu không sao chép và dán tập lệnh này và kiểm tra nó trên máy chủ của bạn. (Lưu tập lệnh dưới dạng basicForm. php. )

Mẫu cơ bản. tập lệnh php

Nếu bạn nhìn vào thuộc tính VALUE của hộp văn bản trong HTML từ tập lệnh trên, bạn sẽ thấy rằng nó được đặt thành "tên người dùng". Vì biểu mẫu được đăng lại cho chính nó, giá trị này sẽ tiếp tục xuất hiện lại trong hộp văn bản khi trang được gửi. Tệ hơn nữa, nếu bạn để trống thuộc tính Giá trị thì mọi thứ người dùng nhập vào sẽ biến mất. Điều này có thể rất khó chịu nếu bạn yêu cầu người dùng thử lại. Tốt hơn là POST lại các giá trị mà người dùng đã nhập

Để đăng chi tiết trở lại biểu mẫu và do đó giữ lại dữ liệu mà người dùng đã nhập, bạn có thể sử dụng điều này

GIÁ TRỊ=""

Nói cách khác, thuộc tính VALUE bây giờ là một dòng mã PHP. Dòng mã chỉ là thế này

in tên người dùng $;

?>

Nó hơi khó đọc, vì tất cả đều nằm trên một dòng

Bạn cũng cần sửa đổi mã PHP của mình trong phần HEAD để bao gồm câu lệnh khác

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

$username = $_POST['username'];

if ($username == "letmein") {

print ("Chào mừng trở lại, bạn. ");

}
khác {

print("Bạn chưa phải là thành viên của trang này");

}

}
khác {

$username="";

}

Trong câu lệnh khác ở cuối, chúng ta chỉ đặt giá trị của biến có tên $username khi KHÔNG nhấp vào nút, tôi. e. khi trang được làm mới

Tuy nhiên, có một số vấn đề bảo mật liên quan đến hộp văn bản (và các thành phần biểu mẫu khác). Vì vậy, chúng ta sẽ thấy một cách an toàn hơn để xử lý chúng trong phần sau

Tôi không nghĩ rằng nó liên quan đến việc làm mới Meta, nhưng tôi sẽ không hại gì khi thử nó. Cá nhân tôi muốn nó hiển thị các trường bị thiếu ngay phía trên biểu mẫu liên hệ hơn là để biểu mẫu biến mất và chỉ có các lỗi xuất hiện để bạn buộc phải nhấp lại vào trình duyệt. Trên thực tế, tập lệnh mà tôi đang sử dụng làm ví dụ thực sự HIỂN THỊ điều đó đang xảy ra, nhưng dường như tôi không thể đạt được kết quả đó. Vui lòng xem ví dụ và mã mà tôi đang sử dụng nếu bạn quan tâm

(lớp trình xác thực biểu mẫu)

Sự khác biệt là biểu mẫu của tôi là chỉ mục. php và hành động của nó là thư. php. Ví dụ của anh chàng có mã xác thực và biểu mẫu thực tế trong cùng một tài liệu (hành động của biểu mẫu của anh ta là điều PHP_SELF) và tôi đoán điều đó có thể liên quan đến điều đó

À, cảm ơn các bạn, nếu có bất kỳ trợ giúp nào khác mà bạn có thể cung cấp mặc dù nó rất được trân trọng

Làm cách nào để giữ lại giá trị sau khi gửi biểu mẫu trong PHP?

Tôi có một ý tưởng tốt về những gì cần phải làm, nhưng chỉ có một số kiến ​​thức về cách thực hiện. Đầu tiên, tôi đang đăng toàn bộ lớp trình xác thực, nơi tôi cho rằng điều này phải xảy ra

 or 
					$__error      = false;
					$__no_error   = false;
					$__sub_fields = explode("||", $__current_field);
		
					foreach ($__sub_fields as $__current_sub_field) {
						$__current_sub_field = trim($__current_sub_field);
						
						settype($_REQUEST[$__current_sub_field], "string");
						
						if (!$__no_error && isset($_REQUEST[$__current_sub_field]) && !strlen(trim($_REQUEST[$__current_sub_field]))) {
							$__error      = true;
						} else {
							$__no_error   = 1;
							$__error      = false;
						}
					}

					if ($__error) {
						$__errors[] = $__current_field;
					}
				} else {
					
					/* * * *  Regular fields * * * */
					
					// This separates regular single fields and makes them global variables
					$__current_field = trim($__current_field);				
					settype($_REQUEST[$__current_field], "string");

					if (isset($_REQUEST[$__current_field]) && !strlen(trim($_REQUEST[$__current_field]))) {
						$__errors[] = $__current_field;
						
						foreach ($__current_field)
						{
							$_SESSION[$__current_field] = ;
						}
						
					}
				}
			}
		}
		
		if (count($__errors)) {
			$this->create_error($__errors, "validate_fields");
			return FALSE;
		} else {
			return TRUE;
		}
	}

/* Private */
	# ----------------------------------- #
	# FUNCTION: 	create_error
	# DESCRIPTION: 	Creates error messages
	#
	# ARGS: 		$error		(mixed)  error message[s]
	# 				$type		(string) type of error
	#
	# RETURNS:		VOID
	#				Sets $obj->error and $obj->error_array
	# ----------------------------------- #
	function create_error($error, $type='') {
		$this->error = ereg_replace("
$", "", $this->error); if ($type == "validate_fields") { $r = "You have not filled in all of the necessary fields! Please fill in the following:
\ "; foreach ($error as $v) { $i = 1; $r .= "   • "; $v_array = explode("||", $v); foreach ($v_array as $c) { if (trim($c)) { if ($i > 1) { $r .= " or "; } $missing_fields[] = $c; $r .= ucwords(eregi_replace("_", " ", $c)); $i++; } } echo "index.php"; $r .= "
\ "; } $this->error .= $r; $this->error_array['missing_fields'] = $missing_fields; } elseif ($type == "message") { if (!$this->error_array['message']) { $this->error .= "The following errors occured:
\ "; } $this->error .= "   • " . $error . "
\ "; $this->error_array['message'][] = $missing_fields; } $this->error .= "
"; $this->error_message = $this->error; } } /* Validator Class is a PHP object that can be used to validate the presence of HTML form data. By "validating", the function simply checks if a variable is NOT NULL. The class is intended to be called AFTER the end-user has submitted an HTML form. The class is first initiated, then the validate_fields function is called by passing the field names of all the required form fields. If any of the variables (field names) are NULL the function returns FALSE, along with an error message of which fields are null. If all the variables are NOT NULL, the function returns TRUE. # --------------------------------------------------------------- # # VALIDATOR CLASS USAGE # --------------------------------------------------------------- # - Start a new instance of the object: $my_validator = new validator(); - Check for the presence of data in one variable named $my_variable $my_validator->validate_fields("my_variable"); - Check for the presence of data in three variables named $first_name, $last_name, and $email $my_validator->validate_fields("first_name, last_name, email"); - Check for the presence of data in at least one check box. There are 3 checkboxes on the form ($ch_1, $ch_2, and $ch_3) $my_validator->validate_fields("ch_1||ch_3||ch_3"); - Check for the presence of data in at least one check box, AND each of 2 text fields: $my_validator->validate_fields("ch_1||ch_3||ch_3, text_1, text_2"); - Printing Errors if (!$my_validator->validate_fields("last_name, email")) { echo $my_validator->error; } else { ... } # --------------------------------------------------------------- # # VALIDATOR CLASS SET UP # --------------------------------------------------------------- # The only set up is to include this file on the page that you're using it Copyright (c) 2002, iMarc LLC All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of iMarc LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ?>

Bây giờ, điều tôi cần làm là tạo các biến phiên cho mỗi đầu vào mà người dùng đã nhập ( nhân tiện, tôi đang cung cấp một liên kết quay lại chỉ mục. php để không khuyến khích sử dụng nút quay lại ), vì vậy đây là mã mà tôi đã đặt cho mã đó ( mã này cũng có trong mã ở trên, nhưng chỉ để mọi thứ tập trung hơn một chút )

					// This separates regular single fields and makes them global variables
					$__current_field = trim($__current_field);				
					settype($_REQUEST[$__current_field], "string");

					if (isset($_REQUEST[$__current_field]) && !strlen(trim($_REQUEST[$__current_field]))) {
						$__errors[] = $__current_field;
						
						foreach ($__current_field)
						{
							$_SESSION[$__current_field] = ;
						}
						
					}

Tôi đã nhập phần foreach và điểm mấu chốt là đối với mỗi tên trường, hãy tạo một biến phiên với tên trường đó và gán giá trị thực của hộp văn bản ( đầu vào của người dùng) cho biến đó. Vấn đề là, tôi không biết làm cách nào để lấy đầu vào của người dùng để gán cho cái đó. Mọi sự trợ giúp sẽ rất được trân trọng

…được rồi, nhưng điều này sẽ trở nên điên rồ = / Tập lệnh đầu tiên dành cho chức năng thư của tôi, tập lệnh thứ 2 dành cho xác thực phía máy chủ của tôi và hành động biểu mẫu cho biểu mẫu html của tôi là tập lệnh thư ( mail. php ). Đây đi

Làm cách nào chúng tôi có thể lưu trữ dữ liệu biểu mẫu trong PHP?

Hướng dẫn từng bước về Cách đặt dữ liệu trường biểu mẫu HTML vào tệp văn bản hoặc tệp dot txt trong PHP .
Tạo một tệp PHP và đặt mã bên dưới và lưu nó. <. .
tạo một tệp mới trong cùng thư mục hoặc thư mục và đặt tên là dữ liệu. txt và lưu nó
Bây giờ hãy chạy tệp PHP. nhập bất kỳ văn bản nào và nhấn vào nút gửi và kiểm tra dữ liệu của bạn

Làm cách nào để nhận giá trị từ biểu mẫu mà không cần gửi trong PHP?

php $a = $_GET["housemodel"];

Làm cách nào để hiển thị dữ liệu biểu mẫu sau khi gửi?

Thuộc tính formtarget chỉ định tên hoặc từ khóa cho biết vị trí hiển thị phản hồi nhận được sau khi gửi biểu mẫu . Thuộc tính formtarget ghi đè thuộc tính target của phần tử

PHP có thể thu thập dữ liệu biểu mẫu không?

Các siêu toàn cục PHP $_GET và $_POST được sử dụng để thu thập dữ liệu biểu mẫu .