2011-11-06 25 views
6

Làm thế nào bạn có thể chuyển một biến làm giá trị khóa mảng $ _POST trong PHP? Hay là điều này không thể thực hiện được?

$test = "test"; 
echo $_POST[$test]; 

Cảm ơn

+2

Điều bạn chứng minh sẽ hiệu quả, nhưng tôi không chắc bạn đang cố gắng làm gì? –

+0

Oh gosh, Nó hoạt động. Một đoạn mã khác đã ném nó đi. – Dietpixel

Trả lời

9
$_POST['key'] = "foo"; 
echo $_POST['key']; 

Nếu tôi hiểu đúng, bạn muốn thiết lập một phím $_POST.

4

Vâng, vâng bạn có thể:

$postName = "test"; 
$postTest = $_POST[$postName]; 
$_POST["test"] == $postTest; //They're equal 
0

trình cũng giống như bạn nói ...

Ví dụ:

// create an array of all the GET/POST variables you want to use 
$fields = array('salutation','fname','lname','email','company','job_title','addr1','addr2','city','state', 
       'zip','country','phone','work_phone'); 

// convert each REQUEST variable (GET, POST or COOKIE) to a local variable 
foreach($fields as $field) 
    ${$field} = sanitize($_POST[$field]); 
?> 

cập nhật dựa trên ý kiến ​​và downvotes ....

tôi không, như đã được gợi ý dưới đây trong các ý kiến looping tất cả dữ liệu và thêm vào một biến - im looping danh sách các biến được xác định trước và lưu trữ chúng trong các biến ...

Tôi đã thay đổi phương thức nhận d ata

+1

Điều này hầu như không bao giờ được thực hiện, tôi có thể dễ dàng tiêm mã của bạn hoặc thay đổi biến hệ thống của bạn và thu thập thông tin hệ thống bằng cách sửa đổi chuỗi truy vấn !! – Fabrizio

+0

@Fabrizio Xin lỗi vì sự thiếu hiểu biết của tôi - làm thế nào bạn có thể tiêm mã của tôi - mảng là phía máy chủ? làm thế nào là nó khác nhau từ danh sách mỗi một – ManseUK

+0

giả sử bạn có một biến hệ thống gọi là '$ mysql_user', và tôi vượt qua trong truy vấn một cái gì đó như'? mysql_user = root', bạn sẽ cố gắng kết nối với máy chủ mysql của bạn bằng cách sử dụng người dùng 'root'. nó có thể cung cấp cho một lỗi trên màn hình cho tôi nhiều thông tin hơn cần thiết. Bạn đang cố gắng mô phỏng những gì 'register_global' được sử dụng để làm trong PHP.Có một lý do tại sao điều này bây giờ không được chấp nhận ;-) – Fabrizio

14

Nếu tôi đưa bạn đúng, bạn muốn chuyển một biến từ tệp php này sang tệp khác qua bài đăng. Điều này chắc chắn là có thể theo nhiều cách.

1. Với HTML dạng

<form action="target.php" method="post"> 
    <input type="text" name="key" value="foo" /> 
    <input type="submit" value="submit" /> 
</form> 

nếu bạn click vào nút gửi, $_POST['key'] trong target.php sẽ chứa 'foo'.

2. Trực tiếp từ PHP

$context = stream_context_create(array(
    'http' => array(
     'method' => 'POST', 
     'header' => "Content-type: text/html\r\n", 
     'content' => http_build_query(array('key' => 'foo')) 
    ), 
)); 
$return = file_get_contents('target.php', false, $context); 

Cùng một điều như trong 1., và $return sẽ chứa tất cả sản lượng sản xuất bởi target.php.

3. Qua AJAX (jQuery (JavaScript))

<script> 
$.post('target.php', {key: 'foo'}, function(data) { 
    alert(data); 
}); 
</script> 

Cùng một điều như trong 2., nhưng bây giờ data chứa đầu ra từ target.php.

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