2012-06-11 26 views
5

Tôi cần chuyển một số dữ liệu với 2 phương thức này lại với nhau (GET và POST). Tôi viết phương pháp này, nhưng tôi không biết nó có an toàn không:Có cách nào để sử dụng GET và POST cùng nhau không?

<form method="post" action="profile.php?id=<?php echo $_SESSION['id']; ?>" enctype="multipart/form-data"> 
<input type="text" size="40" name="title" > 
<textarea name="description" rows="2" cols="30"></textarea> 
<input id="starit" name="submit" value="Create" type="submit" /> 
</form> 

<?php 
a= $_GET['id']; 
b= $_POST['title']; 
c= $_POST['description']; 
?> 

Mã này có an toàn không? Hoặc có những cách khác để làm điều đó?

+3

Tại sao bạn không chỉ viết Id phiên vào trường nhập ẩn của biểu mẫu? Cuối cùng, người dùng có thể đọc ID phiên của anh ấy nếu anh ấy duyệt nguồn của trang web. – Corsair

+0

Có lẽ anh ta có lý do để làm điều này như thế này. – Aelios

Trả lời

11

Đây không phải là yêu cầu GET và POST kết hợp; thay vào đó, nó là một yêu cầu POST với các tham số truy vấn.

Những gì bạn đã viết sẽ là đúng cách. Luôn đảm bảo rằng bạn sẽ có được các lĩnh vực dự kiến:

if (isset($_GET['id'], $_POST['title'], $_POST['description']) { 
    // go ahead 
} 

Btw, chắc chắn rằng bạn thoát khỏi đầu ra của bạn:

<form method="post" action="profile.php?id=<?php echo rawurlencode($_SESSION['id']); ?>"> 

Và nếu bạn không tải lên các tập tin, bạn không cần phải thiết lập số enctype trong số <form> của bạn.

+0

Ồ, bạn có thể sử dụng nhiều biến với 'isset'? : D – ADTC

+0

@ADTC vâng, trả về đúng là tất cả được đặt –

1

này là tốt hơn:

<form method="post" action="profile.php?id=<?php echo urlencode($_SESSION['id'])); ?>"> 
1

bạn có thể sử dụng cả hai và nhận được với YÊU CẦU thay vì GET hoặc POST, có cùng tên của params nó sẽ nhận được "Yêu cầu đặt hàng" để GET và sau đó POST bởi mặc định.

http://php.net/request-order

nó là trong php.ini

-1

không viết thuộc tính phương pháp trong điều kiện hình thức của bạn và thêm formmethod ="" thuộc tính trong đầu vào ... ví dụ:

<input type="submit" formmethod="get" name="inputGet" value="updateGet" > 
<input type="submit" formmethod="post" name="inputPost" value="updatePost" > 
+0

bạn có nghĩa là 'phương thức biểu mẫu' không? –

+0

có, không sử dụng phương pháp trong thẻ biểu mẫu của bạn –

Các vấn đề liên quan