10/10/2018, 09:21

Lỗi khi setcookie và header (PHP)

Khi em setcookie lúc đăng nhập
PHP Code:
setcookie("member_id"$member_idtime()+60*60*24*365"/");
setcookie("password"$passwordtime()+60*60*24*365"/"); 
thì nó báo lỗi :
Code:
Warning: Cannot modify header information - headers already sent by (output started at /home/nmusic/public_html/multipurpose.php:39) in /home/nmusic/public_html/multipurpose.php on line 264

Warning: Cannot modify header information - headers already sent by (output started at /home/nmusic/public_html/multipurpose.php:39) in /home/nmusic/public_html/multipurpose.php on line 265
Ngay cả khi dùng header("location:$url"); để redirect cũng bị lun :
Code:
Warning: Cannot modify header information - headers already sent by (output started at /home/nmusic/public_html/multipurpose.php:39) in /home/nmusic/public_html/multipurpose.php on line 250
Bác nào biết cách giải quyết chỉ dùm em với.
Thanks all
tet2005 viết 11:25 ngày 10/10/2018
Trước khi dùng cookie,session,header đừng có xuất cái gì ra cả, nêu không sẽ bị lỗi đó.
vietbb viết 11:23 ngày 10/10/2018
các code của session & cookie & header .. phải xuất trước khi xuất mã HTML ... vd :
<?php
//session code
?>
<html>
...
phuongngoc viết 11:34 ngày 10/10/2018
OK, được roài. Thanks các pác nhìu
chithanh1985 viết 11:37 ngày 10/10/2018
Ai chi giup minh voi???
Minh co doan code ve session sau:
<?php
session_start();
//session_destroy();
include "iconn.inc"; //Lay ket noi
$message="";

////// Login Section.
$Login=$_POST['Login'];
if($Login)
{
$username=$_POST['username'];
$md5_password=md5($_POST['password']);

$sql= "select * from test where username= '$username' and password= '$md5_password'";
$result = mysql_query($sql);

if(mysql_num_rows($result)==1)
{
session_register("username"); // Craete session username.
header("Location: index.php");
exit;
}
else{ // If not match.
$message="--- Incorrect Username or Password ---";
}
} // End Login authorize check.
?>

Khi chay,no bao loi : Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\dophargroup\index1.php:8) in C:\AppServ\www\dophargroup\right.php on line 30

Ai do giup minh voi nha
VuongChieuQuan viết 11:22 ngày 10/10/2018
Bạn tìm file php.ini, tìm đến dòng 896 gì gì đó, sửa lại đường dẫn:

session.cookie_path = "C:\hehe\hoho"
session.save_path = "C:\session"

hoặc đường dẫn thế nào cũng được, miễn là đúng.

Save lại, restart lại server (vào service restart hoặc khởi động lại máy).

Như thế chắc ổn, nếu chưa được bạn lại post lên nhé.

Hi, nhìn lộn cái cookie, sửa luôn một thể sau dùng session nhé.
namduong8889 viết 11:30 ngày 10/10/2018
Được gửi bởi chithanh1985
Ai chi giup minh voi???
Minh co doan code ve session sau:
<?php
session_start();
//session_destroy();
include "iconn.inc"; //Lay ket noi
$message="";

////// Login Section.
$Login=$_POST['Login'];
if($Login)
{
$username=$_POST['username'];
$md5_password=md5($_POST['password']);

$sql= "select * from test where username= '$username' and password= '$md5_password'";
$result = mysql_query($sql);

if(mysql_num_rows($result)==1)
{
session_register("username"); // Craete session username.
header("Location: index.php");
exit;
}
else{ // If not match.
$message="--- Incorrect Username or Password ---";
}
} // End Login authorize check.
?>

Khi chay,no bao loi : Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\dophargroup\index1.php:8) in C:\AppServ\www\dophargroup\right.php on line 30

Ai do giup minh voi nha
Do cái doạn code này này, tớ cũng không rõ là tại sao nhưng tớ toàn dùng Javasscript để chuyển trang chứ không dùng code này vì nhiều khi không được.
fotech_nd viết 11:38 ngày 10/10/2018
Thay dòng
$Login=$_POST['Login'];
bằng dòng
$Login=isset($_POST['Login'])?$_POST['Login']:null;
Là okie thôi.
Chú ý trong code ở trên của bạn đang bị lỗi injection đó - nên thay dòng
$username=$_POST['username'];
bằng
$username=addslashes($_POST['username']);

Regards.
VuongChieuQuan viết 11:28 ngày 10/10/2018
Mình cũng không thích cái thằng header lắm. Khi redirect lại trang mình thường dùng javascript theo kiểu này:

PHP Code:
<?php

    
/*
    *@Back to the submit page
    */
    
function in_back($url$err){
        echo    
'<script language="javascript">';
        if(
$err != ""){
            echo 
'alert("' standStr($err) . '");';
            echo 
'window.onload=function(){';
                echo    
'document.frm.action="' $url '";';
                echo    
'document.frm.submit();';
            echo 
'};';
        }else
        echo 
'window.location.href="' $url '";';        
        echo 
'</script>';
    }    
    
    print(
'<form name="frm" action="" method="post">');
    
    
$err "";
                                                
    
$func $_POST***91;'func'***93;;
    
    switch(
$func)    {
    
        case 
"save_data":            
            
$err saveData();        //return error
            
if($err) {
                echo 
'<input type="hidden" name="name" value="' $_POST***91;"name"***93; . '" />';
                echo 
'<input type="hidden" name="old" value="' $_POST***91;"old"***93; . '" />';
                
in_back('submitPage.php?func=hihi'$err);
                break;
            }
            
in_back('submitPage.php?func=hehe''');            
            break;
        
        default:
            break;
    }
    
    print(
'</form>');    
    
?>
dinhanhency viết 11:26 ngày 10/10/2018
Được gửi bởi tet2005
Trước khi dùng cookie,session,header đừng có xuất cái gì ra cả, nêu không sẽ bị lỗi đó.
Dùng cookie,session,header ở đầu tiên của file.
Chú ý là hay bị 1 ký tự unicode(Không thấy được) trước khi gọi cookie,session,header dù đã để cookie,session,header lên đầu tiên.
Bài liên quan
0