Hướng dẫn why my header is not working in php? - tại sao tiêu đề của tôi không hoạt động trong php?

include['header.php'];

$name = $_POST['name'];
$score = $_POST['score'];
$dept = $_POST['dept'];

$MyDB->prep["INSERT INTO demo [`id`,`name`,`score`,`dept`, `date`] VALUES ['','$name','$score','$dept','$date']"];
// Bind a value to our :id hook
// Produces: SELECT * FROM demo_table WHERE id = '23'
$MyDB->bind[':date', $date];
// Run the query
$MyDB->run[];

header['Location:index.php'];
    exit;

Mã trên liên tục cho tôi một vấn đề với chuyển hướng. Lỗi là như sau:

CẢNH BÁO: Không thể sửa đổi thông tin tiêu đề - Các tiêu đề đã được gửi bởi [đầu ra bắt đầu tại /Applications/mamp/htdocs/testygubbins/oo/test/header.php:15] in/application/mamp/htdocs/testygubbins/oo/test PHP trên dòng 16.

Tôi hoàn toàn bối rối bởi điều này. Có ai biết tôi nên làm gì để làm cho nó hoạt động không?

CHỈNH SỬA

Tiêu đề.php mã:




    
    Test


Ivan

29,9k7 Huy hiệu vàng47 Huy hiệu bạc86 Huy hiệu đồng7 gold badges47 silver badges86 bronze badges

hỏi ngày 8 tháng 1 năm 2009 lúc 10:55Jan 8, 2009 at 10:55

2

Nhìn kỹ vào bạn bao gồm - có lẽ bạn có một dòng trống sau khi đóng?>?

Điều này sẽ khiến một số khoảng trắng theo nghĩa đen được gửi dưới dạng đầu ra, ngăn bạn thực hiện các cuộc gọi tiêu đề tiếp theo.

Lưu ý rằng việc rời khỏi phần đóng là hợp pháp?> Tắt tệp bao gồm, đây là một thành ngữ hữu ích để tránh vấn đề này.

.

Cuối cùng, khi trang hướng dẫn sử dụng PHP để chỉ ra tiêu đề, bạn thực sự nên sử dụng URL đầy đủ để chuyển hướng:

Lưu ý: HTTP/1.1 yêu cầu URI tuyệt đối làm đối số đến vị trí: bao gồm sơ đồ, tên máy chủ và đường dẫn tuyệt đối, nhưng một số khách hàng chấp nhận URI tương đối. Bạn thường có thể sử dụng $ _Server ['http_host'], $ _server ['php_elf'] và dirname [] để tạo một URI tuyệt đối từ một người thân: chính mình:

Đã trả lời ngày 8 tháng 1 năm 2009 lúc 11:01Jan 8, 2009 at 11:01

Paul Dixonpaul DixonPaul Dixon

292K51 Huy hiệu vàng310 Huy hiệu bạc344 Huy hiệu đồng51 gold badges310 silver badges344 bronze badges

5

NHỮNG VẤN ĐỀ CHUNG:

1] Không nên có đầu ra [tức là các phần echo... hoặc HTML] trước lệnh header[...];. There should be NO output [i.e. echo... or HTML parts] before the header[...]; command.

2] Sau header[...];, bạn phải sử dụng




    
    Test


1 After header[...]; you must use



    
    Test


1

3] Xóa bất kỳ không gian trắng [hoặc dòng mới] trước




    
    Test


2 và sau các thẻ



    
    Test


3.
Remove any white-space[or newline] before



    
    Test


2 and after



    
    Test


3 tags.

4] Kiểm tra liệu tệp PHP [và các tệp




    
    Test


4 khác, đó là



    
    Test


5D] - chúng nên có UTF8 mà không cần mã hóa BOM [và không chỉ UTF -8]. Bởi vì UTF8 mặc định thêm ký tự vô hình khi bắt đầu tệp [được gọi là "BOM"], vì vậy bạn nên tránh điều đó !!!!!!!!!!!!
Check that php file [and also other



    
    Test


4 files, that are



    
    Test


5d] - they should have UTF8 without BOM encoding [and not just UTF-8]. Because default UTF8 adds invisible character in the start of file [called "BOM"], so you should avoid that !!!!!!!!!!!

5] Sử dụng tham chiếu 301 hoặc 302: Use 301 or 302 reference:

header["location: //example.com",  true,  301 ];  exit;

6] Bật báo cáo lỗi. Và cho biết lỗi. Turn on error reporting. And tell the error.

7. If none of above helps, use JAVASCRIPT redirection [however, discouraged method], may be the last chance in custom cases...:

echo "window.top.location='//website.com/';"; exit;

Đã trả lời ngày 24 tháng 7 năm 2014 lúc 8:23Jul 24, 2014 at 8:23

T.ToduaT.ToduaT.Todua

50.6K19 Huy hiệu vàng220 Huy hiệu bạc220 Huy hiệu đồng19 gold badges220 silver badges220 bronze badges

4

Ngoài ra, không nghĩ về một dòng mới hoặc không gian ở đâu đó trong tệp, bạn có thể đệm đầu ra. Về cơ bản, bạn gọi




    
    Test


6 ở đầu tệp và



    
    Test


7 ở cuối. Bạn có thể tìm thêm chi tiết tại mô tả chức năng khởi động php.net ob-start.

Chỉnh sửa: Nếu bạn sử dụng bộ đệm, bạn có thể xuất HTML trước và sau hàm tiêu đề [] - Bộ đệm sau đó sẽ bỏ qua đầu ra và chỉ trả về tiêu đề chuyển hướng. If you use buffering, you can output HTML before and after header[] function - buffering will then ignore the output and return only the redirection header.

Đã trả lời ngày 8 tháng 1 năm 2009 lúc 12:36Jan 8, 2009 at 12:36

ya23ya23ya23

Phù bằng vàng 14K946 Huy hiệu bạc42 Huy hiệu đồng9 gold badges46 silver badges42 bronze badges

Thử cái này :

**ob_start[];**

include['header.php'];

$name = $_POST['name'];
$score = $_POST['score'];
$dept = $_POST['dept'];

$MyDB->prep["INSERT INTO demo [`id`,`name`,`score`,`dept`, `date`] VALUES ['','$name','$score','$dept','$date']"];
// Bind a value to our :id hook
// Produces: SELECT * FROM demo_table WHERE id = '23'
$MyDB->bind[':date', $date];
// Run the query
$MyDB->run[];

header['Location:index.php'];

**ob_end_flush[];**

    exit;

Đã trả lời ngày 6 tháng 7 năm 2012 lúc 11:02Jul 6, 2012 at 11:02

Mostafamostafamostafa

711 Huy hiệu bạc1 Huy hiệu đồng1 silver badge1 bronze badge

Nhìn vào /Applications/mamp/htdocs/testygubbins/oo/test/header.php dòng 15.

Ở vị trí đó, nó làm cho một số đầu ra. Sửa nó. :]

Đã trả lời ngày 8 tháng 1 năm 2009 lúc 10:58Jan 8, 2009 at 10:58

myplaceskmyplaceskmyplacedk

1.5642 Huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồng2 gold badges14 silver badges19 bronze badges

1

Nếu tôi hiểu chính xác, một cái gì đó đã được gửi từ Header.php [có thể là một số HTML] để các tiêu đề đã được đặt. Bạn có thể cần kiểm tra lại tệp tiêu đề của mình cho bất kỳ phần nào có thể xuất HTML hoặc không gian trước lần đầu tiên của bạn

EDIT: Bây giờ tôi chắc chắn rằng nó được gây ra từ Header.php vì bạn có những đầu ra HTML đó. Bạn có thể sửa lỗi này bằng cách xóa "Bao gồm ['Header.php'];" thay vào đó, dòng và sao chép mã sau vào tệp của bạn. I am now sure that it is caused from header.php since you have those HTML output. You can fix this by remove the "include['header.php'];" line and copy the following code to your file instead.

include['class.user.php'];
include['class.Connection.php'];

        $date = date['Y-m-j'];

Đã trả lời ngày 8 tháng 1 năm 2009 lúc 11:01Jan 8, 2009 at 11:01

Paul Dixonpaul DixonGant

292K51 Huy hiệu vàng310 Huy hiệu bạc344 Huy hiệu đồng6 gold badges46 silver badges64 bronze badges

1

NHỮNG VẤN ĐỀ CHUNG:

1] Không nên có đầu ra [tức là các phần echo... hoặc HTML] trước lệnh header[...];.

2] Sau header[...];, bạn phải sử dụng




    
    Test


1Jan 8, 2009 at 11:02

3] Xóa bất kỳ không gian trắng [hoặc dòng mới] trước




    
    Test


2 và sau các thẻ



    
    Test


3.macbirdie

4] Kiểm tra liệu tệp PHP [và các tệp




    
    Test


4 khác, đó là



    
    Test


5D] - chúng nên có UTF8 mà không cần mã hóa BOM [và không chỉ UTF -8]. Bởi vì UTF8 mặc định thêm ký tự vô hình khi bắt đầu tệp [được gọi là "BOM"], vì vậy bạn nên tránh điều đó !!!!!!!!!!!!6 gold badges46 silver badges52 bronze badges

5] Sử dụng tham chiếu 301 hoặc 302:

6] Bật báo cáo lỗi. Và cho biết lỗi.


7.

Đã trả lời ngày 24 tháng 7 năm 2014 lúc 8:23Jan 8, 2009 at 11:05

myplaceskmyplaceskmyplacedk

1.5642 Huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồng2 gold badges14 silver badges19 bronze badges

Nếu tôi hiểu chính xác, một cái gì đó đã được gửi từ Header.php [có thể là một số HTML] để các tiêu đề đã được đặt. Bạn có thể cần kiểm tra lại tệp tiêu đề của mình cho bất kỳ phần nào có thể xuất HTML hoặc không gian trước lần đầu tiên của bạn

  1. Di chuyển đầu ra ở đâu đó sau khi bao gồm.
  2. Sử dụng bộ đệm đầu ra, tức là khi bắt đầu tập lệnh của bạn, đặt ob_start [] và cuối cùng, đặt ob_flush []. Điều này cho phép PHP trước tiên chờ đợi tất cả các đầu ra được thu thập, xác định theo thứ tự nào để hiển thị nó và xuất ra nó.

Tôi sẽ khuyên bạn nên tìm hiểu tùy chọn thứ hai, vì nó làm cho bạn linh hoạt hơn nhiều.

Đã trả lời ngày 20 tháng 6 năm 2009 lúc 11:11Jun 20, 2009 at 11:11

Martijn Heemelsmartijn HeemelsMartijn Heemels

3.4005 huy hiệu vàng35 Huy hiệu bạc37 Huy hiệu đồng5 gold badges35 silver badges37 bronze badges

Cũng hãy thử bao gồm_once [] thay vì bao gồm [] cũng có thể hoạt động

Đã trả lời ngày 19 tháng 2 năm 2013 lúc 15:21Feb 19, 2013 at 15:21

NapsternapsterNapster

2.7844 huy hiệu vàng31 Huy hiệu bạc54 Huy hiệu đồng4 gold badges31 silver badges54 bronze badges

Cũng xem mã hóa văn bản tệp PHP của bạn. Của tôi là




    
    Test


8 với



    
    Test


9 và nó ngăn chặn kịch bản hoạt động. Nhưng bây giờ hoạt động hoàn hảo sau khi loại bỏ ____ 19 ...php file text encoding. Mine was



    
    Test


8 with



    
    Test


9 and it prevented the script to work. But now works flawlessly after removing the



    
    Test


9...

Đã trả lời ngày 31 tháng 1 năm 2010 lúc 15:44Jan 31, 2010 at 15:44

Julifosjulifosjulifos

Huy hiệu vàng 14211 gold badge1 silver badge8 bronze badges

Hãy thử chuyển hướng với JavaScript:


  window.location.href='index.php';

Jason Plank

2.3424 Huy hiệu vàng32 Huy hiệu bạc40 Huy hiệu đồng4 gold badges32 silver badges40 bronze badges

Đã trả lời ngày 22 tháng 4 năm 2011 lúc 12:35Apr 22, 2011 at 12:35

1

Làm thế nào tôi có thể nhận được tiêu đề trong PHP?

PHP | Hàm get_headers [] Hàm get_headers [] trong PHP được sử dụng để tìm nạp tất cả các tiêu đề được gửi bởi máy chủ trong phản hồi của yêu cầu HTTP. Tham số: Hàm này chấp nhận ba tham số như đã đề cập ở trên và được mô tả dưới đây: $ url: Đây là một tham số bắt buộc của chuỗi loại. Nó xác định URL mục tiêu.get_headers[] Function The get_headers[] function in PHP is used to fetch all the headers sent by the server in the response of an HTTP request. Parameters: This function accepts three parameters as mentioned above and described below: $url: It is a mandatory parameter of type string. It defines the target URL.

Tại sao PHP không chuyển hướng?

Khắc phục tiêu đề PHP không chuyển hướng điều này thường xảy ra do lỗi với bộ đệm đầu ra. Nếu chúng ta sử dụng tiêu đề [vị trí của người khác: Vị trí] ;, thì cần phải sử dụng ob_start []; sớm hơn trong kịch bản. Hàm ob_start [] sẽ bật bộ đệm đầu ra.This generally happens due to an error with output buffering. If we use header[“Location: “];, then it is necessary to use ob_start[]; earlier in the script. ob_start[] function will turn the output buffering ON.

Làm thế nào để tiêu đề hoạt động trong PHP?

Tiêu đề trong PHP là chức năng tích hợp PHP để gửi tiêu đề HTTP thô.Các chức năng HTTP là các chức năng thao túng thông tin được gửi bởi máy chủ web cho máy khách hoặc trình duyệt trước khi nó gửi bất kỳ đầu ra nào nữa.Hàm Tiêu đề [] trong PHP gửi tiêu đề HTTP RAW đến máy khách hoặc trình duyệt.a PHP built-in function for sending a raw HTTP header. The HTTP functions are those that manipulate information sent by the webserver to the client or browser before it sends any further output. The header[] function in PHP sends a raw HTTP header to a client or browser.

Làm thế nào tôi có thể thêm tiêu đề và chân trang trong PHP?

Php $ title = "Footer tiêu đề PHP";Bao gồm "Tiêu đề ...
Đầu tiên, tạo một tệp có tên chỉ mục.PHP ..
Sau đó tạo một tệp có tên là tiêu đề.PHP và chân trang.PHP ..
Bạn phải bao gồm tiêu đề và chân trang trong tệp chỉ mục ..

Bài Viết Liên Quan

Chủ Đề