Hướng dẫn php redirect post - bài chuyển hướng php
Tôi đã thực hiện một số nghiên cứu về chủ đề này, và có một số chuyên gia đã nói rằng không thể, vì vậy tôi muốn hỏi một giải pháp thay thế. Hoàn cảnh của tôi: Trang A: [Checkout.php] Khách hàng điền vào chi tiết thanh toán của họ. Trang B: [Process.php] Tạo số hóa đơn và lưu trữ chi tiết khách hàng trong cơ sở dữ liệu. Trang C: [Thứ baParty.com] Cổng thanh toán thứ ba (chỉ chấp nhận dữ liệu bài đăng). Khách hàng điền vào chi tiết của họ và thiết lập giỏ hàng của họ trong trang A, sau đó đăng lên Trang B. Inside Process.php, lưu trữ dữ liệu được đăng bên trong cơ sở dữ liệu và tạo số hóa đơn. Sau đó, đăng dữ liệu khách hàng và số hóa đơn lên cổng thanh toán thứ ba. Vấn đề đang thực hiện bài đăng trong trang B. Curl có thể đăng dữ liệu lên trang C, nhưng vấn đề là trang không chuyển hướng đến trang C. Khách hàng cần điền chi tiết thẻ tín dụng trên trang C. Cổng thanh toán của bên thứ ba đã cung cấp cho chúng tôi mẫu API, mẫu được đăng số hóa đơn cùng với chi tiết khách hàng. Chúng tôi không muốn hệ thống tạo ra số lượng hóa đơn không mong muốn. Có giải pháp nào cho điều này? Giải pháp hiện tại của chúng tôi là để khách hàng điền chi tiết trong trang A, sau đó trong trang B, chúng tôi tạo một trang khác hiển thị tất cả các chi tiết của khách hàng ở đó, trong đó người dùng có thể nhấp vào nút Xác nhận để đăng lên Trang C. Mục tiêu của chúng tôi là khách hàng chỉ phải nhấp một lần. Hy vọng câu hỏi của tôi là rõ ràng :)
Quelklef 1.8442 Huy hiệu vàng21 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges21 silver badges35 bronze badges Hỏi ngày 7 tháng 4 năm 2011 lúc 5:54Apr 7, 2011 at 5:54
2 Tạo một biểu mẫu trên trang B với tất cả các dữ liệu và hành động cần thiết được đặt thành trang C và gửi nó với JavaScript trên tải trang. Dữ liệu của bạn sẽ được gửi đến Trang C mà không gặp nhiều rắc rối cho người dùng. Đây là cách duy nhất để làm điều đó. Chuyển hướng là tiêu đề 303 HTTP mà bạn có thể đọc trên http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html, nhưng tôi sẽ trích dẫn một số điều đó:
Cách duy nhất để đạt được những gì bạn đang làm là với một trang trung gian gửi người dùng đến trang C. Đây là một đoạn trích nhỏ/đơn giản về cách bạn có thể đạt được điều đó:
Bạn cũng nên có một biểu mẫu "xác nhận" đơn giản bên trong thẻ NOScript để đảm bảo người dùng không có JavaScript sẽ có thể sử dụng dịch vụ của bạn.
cảm xúc 12.6K4 Huy hiệu vàng38 Huy hiệu bạc60 Huy hiệu Đồng4 gold badges38 silver badges60 bronze badges Đã trả lời ngày 7 tháng 4 năm 2011 lúc 6:02Apr 7, 2011 at 6:02
PEATERPEETERPeeter 9.1524 Huy hiệu vàng36 Huy hiệu bạc52 Huy hiệu Đồng4 gold badges36 silver badges52 bronze badges 9
Đã trả lời ngày 1 tháng 3 năm 2013 lúc 15:52Mar 1, 2013 at 15:52
Eduardo Cuomoeduardo CuomoEduardo Cuomo 16.8K6 Huy hiệu vàng108 Huy hiệu bạc91 Huy hiệu Đồng6 gold badges108 silver badges91 bronze badges 7
$ _Session là bạn của bạn nếu bạn không muốn gây rối với JavaScript Giả sử bạn đang cố gắng truyền email: Trên trang A:
Và trên trang B:
Để phá hủy phiên
Đã trả lời ngày 13 tháng 2 năm 2017 lúc 23:16Feb 13, 2017 at 23:16
Robert Sinclairrobert SinclairRobert Sinclair 4.0652 Huy hiệu vàng37 Huy hiệu bạc39 Huy hiệu Đồng2 gold badges37 silver badges39 bronze badges 6 Tôi có một giải pháp khác làm cho điều này có thể. Nó yêu cầu khách hàng đang chạy JavaScript (mà tôi nghĩ là một yêu cầu công bằng trong những ngày này). Chỉ cần sử dụng yêu cầu AJAX trên trang A để đi và tạo số hóa đơn và chi tiết khách hàng của bạn trong nền (trang trước của bạn), sau đó khi yêu cầu được trả lại thành công với thông tin chính xác - chỉ cần hoàn thành việc gửi biểu mẫu vào cổng thanh toán của bạn (Trang C). Điều này sẽ đạt được kết quả của người dùng chỉ nhấp vào một nút và tiến hành cổng thanh toán. Dưới đây là một số mã giả HTML:
JS (sử dụng jQuery để thuận tiện nhưng tầm thường để tạo ra JavaScript thuần túy):
Đã trả lời ngày 15 tháng 3 năm 2013 lúc 3:30Mar 15, 2013 at 3:30
MikemurkomikemurkoMikeMurko 2.14926 huy hiệu bạc53 huy hiệu đồng26 silver badges53 bronze badges 3 Tôi biết đây là một câu hỏi cũ, nhưng tôi có một giải pháp thay thế khác với jQuery:
Mã trên sử dụng jQuery để tạo thẻ biểu mẫu, nối thêm các trường ẩn làm trường bài và gửi cuối cùng. Trang sẽ chuyển tiếp đến trang mục tiêu biểu mẫu với dữ liệu bài đăng được đính kèm. P.S. JavaScript & jQuery được yêu cầu cho trường hợp này. Theo đề xuất của các nhận xét của các câu trả lời khác, bạn có thể sử dụng thẻ 8 để tạo biểu mẫu HTML tiêu chuẩn trong trường hợp JS bị vô hiệu hóa.Đã trả lời ngày 23 tháng 3 năm 2015 lúc 3:37Mar 23, 2015 at 3:37
RaptorraptorRaptor 52.1K44 Huy hiệu vàng223 Huy hiệu bạc357 Huy hiệu đồng44 gold badges223 silver badges357 bronze badges Tôi biết rằng câu hỏi được định hướng 9, nhưng cách tốt nhất để chuyển hướng yêu cầu 0 có lẽ là sử dụng 1, tức là:
Explanation: Theo mặc định, nếu bạn muốn chuyển hướng yêu cầu với dữ liệu bài đăng, trình duyệt chuyển hướng nó thông qua Get với 2. Điều này cũng làm giảm tất cả các dữ liệu bài liên quan đến yêu cầu. Trình duyệt thực hiện điều này như là một biện pháp phòng ngừa để ngăn chặn bất kỳ việc đăng ký lại giao dịch sau.This also drops all the POST data associated with the request. Browser does this as a precaution to prevent any
unintentional re-submitting of POST transaction.Nhưng điều gì sẽ xảy ra nếu bạn muốn chuyển hướng dù sao cũng được đăng yêu cầu với dữ liệu của nó thì sao? Trong HTTP 1.1, có một mã trạng thái cho việc này. Mã trạng thái 3 chỉ ra rằng yêu cầu nên được lặp lại với cùng một phương thức và dữ liệu HTTP. Vì vậy, yêu cầu bài đăng của bạn sẽ được lặp lại cùng với dữ liệu của nó nếu bạn sử dụng mã trạng thái này.Status code 3 indicates that the request should be repeated with the same HTTP method and data. So your POST request will be repeated along with it’s data if you use this status code. SRC Đã trả lời ngày 29 tháng 8 năm 2019 lúc 20:46Aug 29, 2019 at 20:46
Pedro lobitopedro lobitoPedro Lobito 89.3k30 Huy hiệu vàng239 Huy hiệu bạc259 Huy hiệu Đồng30 gold badges239 silver badges259 bronze badges Bạn có thể để PHP thực hiện một bài đăng, nhưng sau đó PHP của bạn sẽ nhận được sự trở lại, với tất cả các loại biến chứng. Tôi nghĩ rằng đơn giản nhất sẽ là thực sự để người dùng thực hiện bài đăng. Vì vậy, loại-của những gì bạn đề xuất, bạn thực sự sẽ nhận được phần này: Khách hàng điền chi tiết trong trang A, sau đó trong trang B Chúng tôi tạo một trang khác Hiển thị tất cả các chi tiết của khách hàng ở đó, nhấp vào nút Xác nhận sau đó đăng lên Trang C. Nhưng bạn thực sự có thể thực hiện một bản gửi JavaScript trên trang B, vì vậy không cần phải nhấp chuột. Làm cho nó trở thành một trang "chuyển hướng" với hình ảnh động tải và bạn đã được thiết lập. Đã trả lời ngày 7 tháng 4 năm 2011 lúc 6:03Apr 7, 2011 at 6:03
NannenanneNanne 63.7K16 Huy hiệu vàng116 Huy hiệu bạc161 Huy hiệu đồng16 gold badges116 silver badges161 bronze badges 2 Có một bản hack đơn giản, sử dụng 4 và tạo 5 các giá trị được đăng và một khi bạn đi đến 6, bạn có thể sử dụng nó sau đó bạn có xử lý sau khi phá hủy nó.
Naman 1.47117 Huy hiệu bạc32 Huy hiệu đồng17 silver badges32 bronze badges Đã trả lời ngày 10 tháng 12 năm 2015 lúc 17:53Dec 10, 2015 at 17:53
3 Tôi đã phải đối mặt với các vấn đề tương tự với yêu cầu POST trong đó yêu cầu nhận được hoạt động tốt trên phần phụ trợ của tôi mà tôi đang vượt qua các biến của mình, v.v ... Vấn đề nằm ở đó mà phần phụ trợ thực hiện rất nhiều chuyển hướng, không hoạt động với các phương thức tiêu đề PHP hoặc PHP. Vì vậy, cách duy nhất tôi có được nó hoạt động là đặt một biểu mẫu ẩn và đẩy các giá trị bằng một bài đăng khi trang được tải.
Đã trả lời ngày 13 tháng 2 năm 2020 lúc 13:00Feb 13, 2020 at 13:00
Kayakayakaya 1.5661 Huy hiệu vàng20 Huy hiệu bạc27 Huy hiệu đồng1 gold badge20 silver badges27 bronze badges 4 Bạn có thể sử dụng các phiên để lưu dữ liệu 7, sau đó truy xuất dữ liệu đó và đặt nó thành 7 trên yêu cầu tiếp theo.Người dùng gửi yêu cầu đến /dirty-submission-url.php do: 0Sau đó, trình duyệt chuyển hướng đến và yêu cầu 9 từ máy chủ của bạn. Bạn sẽ có một số định tuyến nội bộ để tìm ra những gì phải làm với điều này. Khi bắt đầu yêu cầu, bạn sẽ làm:At the beginning of the request, you will do: 1Bây giờ, thông qua phần còn lại của yêu cầu của bạn, bạn có thể truy cập 7 như bạn có thể theo yêu cầu đầu tiên.
Đã trả lời ngày 25 tháng 4 năm 2019 lúc 15:22Apr 25, 2019 at 15:22
ReedreedReed 14.4K8 Huy hiệu vàng63 Huy hiệu bạc108 Huy hiệu Đồng8 gold badges63 silver badges108 bronze badges 3 Thử cái này: Gửi dữ liệu và yêu cầu với tiêu đề HTTP trong Trang B để chuyển hướng đến Gateway 2Tiêu đề bổ sung: 3Đã trả lời ngày 18 tháng 6 năm 2019 lúc 5:53Jun 18, 2019 at 5:53
4Example: 5
Đã trả lời ngày 23 tháng 4 năm 2015 lúc 8:08Apr 23, 2015 at 8:08
Ở đây có một cách tiếp cận khác phù hợp với tôi: Nếu bạn cần chuyển hướng đến một trang web khác ( 1) và bao gồm một biến PHP ( 2): 6hoặc 7Đã trả lời ngày 27 tháng 11 năm 2019 lúc 16:49Nov 27, 2019 at 16:49
LucholuchoLucho Phim huy hiệu bạc 21311 silver badge5 bronze badges 1 |