Cần Giúp đỡ về lệnh header() trong php

Thảo luận trong 'Lập trình web với PHP' bắt đầu bởi ikichan147, 22/11/15.

  1. ikichan147

    ikichan147 Lính mới

    Tham gia ngày:
    22/11/15
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    <?php
    $tktv = $_POST['tktv'];
    $mktv = $_POST['mktv'];
    include('config.php');
    $lenh = "SELECT user,pass
    FROM taikhoan
    WHERE user='$tktv' and pass = '$mktv'";
    $truyvan = mysql_query($lenh,$conn);
    $dem = mysql_num_rows($truyvan);
    if($dem==1){
    header("location: menu.php");}
    else{
    echo "đăng nhập thất bại";
    }
    ?>
    mà sao khi đăng nhập thì lúc nhảy sang trang menu.php thì lại báo lỗi :
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\tablet\page\dn.php:11) inC:\xampp\htdocs\tablet\page\dn.php on line 22
    Mong được mọi người giúp đỡ
     
  2. ikichan147

    ikichan147 Lính mới

    Tham gia ngày:
    22/11/15
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    Như mình đã có nói .Khi mình sử dụng hàm header("location: menu.php"); để chuyển sang trang khác thì khi chạy thử nó không chuyển mà cứ hiện lỗi này

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\tablet\page\dn.php:11) inC:\xampp\htdocs\tablet\page\dn.php on line 22

    Bạn có thể giúp mình không. Mình nói rõ vậy rồi còn gì ?
     
  3. babyinternet

    babyinternet Administrator

    Tham gia ngày:
    4/7/08
    Bài viết:
    4,656
    Đã được thích:
    1,579
    Điểm thành tích:
    113
    Nơi ở:
    [}{]e[][]
    Hàm header() trong lập trình PHP chỉ có thể chạy được khi trước đó bạn không xuất bất kỳ dữ liệu nào ra màn hình. Bạn kiểm ra xem phía trước đã xuất dữ liệu gì (hoặc có khoảng trắng ở phía trước không), nếu có thì xóa nó đi. Ngoài ra còn một trường hợp nữa cũng thường gặp đó là chọn sai mã Unicode của file nên khi xuất ra tự động nó thêm một ký tự gì đó phía trên cùng của tệp tin (dẫn đến chuyện có dữ liệu output trước hàm header()): bạn save as lại file với mã chuẩn Unicode.
     
  4. ikichan147

    ikichan147 Lính mới

    Tham gia ngày:
    22/11/15
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    Câu lệnh của mình y chang như phía trên đó. mình có xuất gì ra màn hình đâu
     
  5. phinihoa

    phinihoa Lính mới

    Tham gia ngày:
    28/11/15
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    bạn nên mô tả xem file header viết gì nữa hoặc làm bản .rar cho nó , dễ fix hơn là post 1 đoạn lệnh include 1 file không biết nó chứa gì bên trong#:-s
     
  6. lamhieu

    lamhieu Lính mới

    Tham gia ngày:
    17/1/16
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    thử nhé bạn.
    PHP:
    <?php
    $tktv 
    = isset($_POST['tktv']) ? $_POST['tktv'] : null;
    $mktv = isset($_POST['mktv']) ? $_POST['mktv'] : null;
    if (
    $tktv == null || $mktv == null) {
        die(echo 
    "đăng nhập thất bại");
    }
    include (
    'config.php');
    $lenh "SELECT `user`, `pass` FROM `taikhoan` WHERE `user` = '".$tktv."' and `pass` = '".$mktv."'";
    $truyvan mysql_query($lenh$conn);
    $dem mysql_num_rows($truyvan);
    if (
    $dem == 1) {
        die(
    header('Location: menu.php'));
    }else{
        die(echo 
    "đăng nhập thất bại");
    }
     
  7. icetea83

    icetea83 Lính mới

    Tham gia ngày:
    23/2/17
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Nơi ở:
    Hưng Yên
    Nhưng có một giải pháp khác an toàn nhàn nhã hơn là hãy giao tất cả những gì bạn xuất ra cho bộ đệm (output buffering ) nắm giữ, sau khi xử lý xong tất cả sẽ được cho vào đại pháo bắn 1 lần xuống trình duyệt không cần lo sau trước thứ tự gì nữa cả . Hãy thêm vào đầu code của bạn ob_start() và cuối code ob_end_flush(), bạn có thể vừa lập trình vừa ngủ , để biết thêm về những hàm output buffering hãy tìm đến PHP Manual

    Nguồn http://thietkeso.vn/vai-van-de-ve-xu-ly-ham-header-trong-php/

    Thử đọc kỹ lại xem
     
    Chỉnh sửa cuối: 23/2/17
  8. nguyenthanhlong

    nguyenthanhlong Lính mới

    Tham gia ngày:
    7/7/18
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Nơi ở:
    Hòa Bình
    Căn bản ở đây là có cái cảnh báo! Nên nó ko thể chuyển hướng bằng header được nữa.
    Hãy tắt cảnh báo đi sẽ được...
    error_reporting(0);
     
Đang tải...

Chia sẻ trang này