10/10/2018, 00:14

redirect trong PHP???

Ban nao biet cach chuyen sang mot trang khac trong php thì giúp mình với.Trong .Net thi mình biết, nhưng trong PHP thì mình chỉ là newbie thôi, mong các bạn chỉ giúp. MÌnh có tìm hiểu thấy có lệnh: header gì đó nhưng làm không được.
DoQuocDuy viết 02:22 ngày 10/10/2018
Được gửi bởi goldenchance
Ban nao biet cach chuyen sang mot trang khac trong php thì giúp mình với.Trong .Net thi mình biết, nhưng trong PHP thì mình chỉ là newbie thôi, mong các bạn chỉ giúp. MÌnh có tìm hiểu thấy có lệnh: header gì đó nhưng làm không được.
PHP Code:
header("Location: http://www.example.com");
exit; 
hacker18 viết 02:25 ngày 10/10/2018
Mình có đoạn code này, nhưng sao nó cứ báo lỗi chỗ header bạn ơi ?

<?php
if($_POST['user'] == $_POST['pass'])
{
echo "Login succed";
}
else
{
//echo "No successful";
header("Location: index.htm");
exit;
}

?>

[=========> Bổ sung bài viết <=========]

Nó báo lỗi như vầy nè bạn:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\login\login.php:1) in C:\AppServ\www\login\login.php on line 9

Mong giải đáp giùm !
Thanks !
zoejoe viết 02:26 ngày 10/10/2018
Được gửi bởi hacker18
Mình có đoạn code này, nhưng sao nó cứ báo lỗi chỗ header bạn ơi ?

<?php
if($_POST['user'] == $_POST['pass'])
{
echo "Login succed";
}
else
{
//echo "No successful";
header("Location: index.htm");
exit;
}

?>

[=========> Bổ sung bài viết <=========]

Nó báo lỗi như vầy nè bạn:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\login\login.php:1) in C:\AppServ\www\login\login.php on line 9

Mong giải đáp giùm !
Thanks !
Khi redirect băng header tuyệt đối không đuợc output bất cứ cái gì ở phía bên trên. Thay vì sử dụng header, ta có thể dùng js hoặc thẻ <meta, cũng có chức năng tuơgn đuơng đấy
VuongChieuQuan viết 02:27 ngày 10/10/2018
Về nguyên tắc thì đúng là không được out put giữ liệu trước header, nhưng mà code của bạn chỉ out put khi thỏa mãn if, do đó không hề sai.

Vừa cài thử Appaserv, chạy đoạn code đơn giản của bạn bằng cả IE và Firefox, chả có lỗi gì cả:

File : test.php

PHP Code:
<?php

$a 
rand();
$b rand();

if(
$a == $b)
{
    echo 
'Ok';
}
else 
{
    
header'Location:test1.php' );
}

?>
File : test1.php

PHP Code:

    
echo 'Test successfull !'
hacker18 viết 02:22 ngày 10/10/2018
À, mình mới thử lại thì phải lưu file .php kiểu là ANSI thì nó chạy được còn lưu dạng Unicode thì server của apache báo lỗi liền bạn ơi.
zoejoe viết 02:31 ngày 10/10/2018
Được gửi bởi VuongChieuQuan
Về nguyên tắc thì đúng là không được out put giữ liệu trước header, nhưng mà code của bạn chỉ out put khi thỏa mãn if, do đó không hề sai.

Vừa cài thử Appaserv, chạy đoạn code đơn giản của bạn bằng cả IE và Firefox, chả có lỗi gì cả:

File : test.php

PHP Code:
<?php

$a 
rand();
$b rand();

if(
$a == $b)
{
    echo 
'Ok';
}
else 
{
    
header'Location:test1.php' );
}

?>
File : test1.php

PHP Code:

    
echo 'Test successfull !'
Xin lỗi, không để ý. Có thể là do định dạng encode chữ, nên trước thẻ <?php có một kí tự nào đấy
xipam viết 02:20 ngày 10/10/2018
dùng NOTEPAD thì khi lưu hay bị lỗi có ký tự lạ, nên dùng notepad ++ đi
Bài liên quan
0