2009-08-24 28 views
11

Tôi đang liên kết để gửi dữ liệu POST từ trang này đến trang khác (cả hai trang này đều do chúng tôi phát triển). Vấn đề là các biến POST không có sẵn nếu trang được yêu cầu từ một tên miền khác. Ngay cả khi tôi thử nghiệm cục bộ, nhưng chỉ định url đầy đủ, dữ liệu POST đã biến mất.cách bật tính năng đăng ký tên miền chéo trong PHP?

Vì vậy, điều này sẽ làm việc:

<form method="POST" action="test.php"> 

Nhưng điều này sẽ không:

<form method="POST" action="http://example.com/test.php"> 

Dưới đây là HTML cho trang:

<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form method="post" action="http://example.com/test.php"> 
     <input type="text" name="request" value="" id="" /> 
     <input type="submit" value="" id="" /> 
    </form> 
</body> 
</html> 

Sau những ý kiến ​​tôi đã nhận rằng điều này sẽ làm việc, tôi đã thử nghiệm nó trên một máy chủ khác và có tất cả mọi thứ đã làm việc tốt thực sự. Điều này có thể có liên quan đến thực tế trên máy chủ đầu tiên https được bật. Nhưng nếu đây là trường hợp, tôi thấy nó lạ mà tôi nhận được thông tin trở lại nhưng đó chỉ là dữ liệu POST đã mất tích.

+2

Điều này sẽ hiệu quả. Bạn có thể đăng toàn bộ biểu mẫu không? –

+0

xem dưới đây (chỉ url đã được thay đổi để bảo vệ sự vô tội :) \t \t \t \t \t \t \t

\t \t \t \t \t \t \t \t
\t –

+0

@coen - tôi đã cập nhật câu hỏi của bạn để thêm bình luận của bạn - hãy thử để chỉnh sửa câu hỏi của bạn lần sau thay vì đăng bản cập nhật cho các ý kiến ​​ –

Trả lời

18

Những gì bạn phải làm việc tốt - biểu mẫu đến trước chính sách có nguồn gốc giống nhau - bạn được phép gửi tới các miền khác nhau.

Nếu tôi có nguy cơ bị đoán, tôi có thể nói là có chuyển hướng 301 hoặc 302 trong đó bằng cách nào đó? Thực hiện theo các tiêu đề HTTP với Firebug ví dụ để chắc chắn.

+0

thực sự có một sự chuyển hướng; từ http đến https –

+0

Có giải pháp cho việc này không? – salmanhijazi

2

Như những người khác đã nói, sẽ không có vấn đề gì khi thực hiện việc này. Tôi sẽ đề nghị thay thế kịch bản test.php của bạn với một cái gì đó đơn giản, như thế này

<?php 
echo "<pre>"; 
var_dump($_POST); 
echo "</pre>"; 

Bạn nên tìm nó hoạt động, có nghĩa là đổ lỗi nằm ở đâu đó trong kịch bản "thật" ...

+0

Đây chính xác là những gì tôi đã làm và cách tôi xác minh rằng các biến POST thực sự bị thiếu trong chỉ 1 trong 2 trường hợp –

1

lẽ cũng là một timesaver:

Nếu bạn POST đến domain.com, hãy đảm bảo nó không được chuyển hướng đến www.domain.com. Chuyển hướng không đưa các biến POST vào tài khoản, chỉ GETvariables.

Nếu nó được chuyển hướng đến www.domain.com, hãy thêm www. trong POST-action

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