Avatar billede cmol Nybegynder
04. januar 2007 - 22:19 Der er 9 kommentarer

Header already send i ver. 5.2.0 men ikke i 5.1.2

Hej experter

Har lavet en side som jeg er blevet bedt om at kopeier, men på den nye server er der et script som retunerer:

Warning: Cannot modify header information - headers already sent by (output started at script.php:66) in fil.php on line 10

Linie 66 i script.php er der hvor jeg slutter php'en.

Den gamle server kører 5.1.2, og den nye kører 5.2.0 og safe mode..

Jeg har hele tiden brugt output buffering til at løse problemet, men det går åbenbart ikke nu.

Scriptet er som følger (grimt, men det virker til formålet):

<?PHP

function chekform($mode, $value, $valuename, $msg)
{
    if($mode == 1)
    {
        if(isset($_SESSION[$valuename]))
        {
            echo $_SESSION[$valuename];
            unset($_SESSION[$valuename]);
        }
    }
   
    elseif($mode == 2)
    {
        $mystring = $_SESSION['missing'];
        $findme  = $valuename;
        $pos = strpos($mystring, $findme);
        if ($pos === false) {
              return "";
        } else {
              return $msg;
        }
    }

   
    elseif($mode == 3)
    {
        $strlen = strlen($value);
        if($strlen < 1)
        {
            if(!isset($_SESSION['missing']))
            {
                $_SESSION['missing'] = $valuename;
            }
            else
            {
                $_SESSION['missing'] .= " " . $valuename;
            }
        }
        else
        {
            $_SESSION[$valuename] = $value;           
        }
    }
    elseif($mode == 4)
    {
        if(isset($_SESSION['missing']))
        {
            $valok = 0;
            return $_POST['scriptname'];
            header("Location:".$_POST['scriptname']);
            return $valok;           
        }
        else
        {
            $valok = 1;
            return $valok;
        }
    }
    elseif($mode == 5)
    {
    unset($_SESSION[$valuename]);
    }
}
?>   


Jeg har prøvet at sætte lave alle echo's og header's til kommentare, men den retunere stadigt med fejl..

Prøver egentligt bare at kalde noget allá:

header("location: gothere.php");

Kan i hjælpe mig?..
Avatar billede htm Nybegynder
04. januar 2007 - 22:34 #1
Du har mellemrum efter din ?> vil jeg gætte på...

Du kan ikke have noget output før du starter en evt. output buffering.
Avatar billede cmol Nybegynder
04. januar 2007 - 22:51 #2
Aha.. Nu føler jeg mig dum.. Der var mellemrum..
Men det ledte mig til en ny fil den lavede fejl på..
Den nye fil er egentligt bare en echo..
Ca. sådan her

<?PHP
ob_start;
require("nyfil.php");

//resten af siden
header("location: gothere.php");

ob_end_flush();
?>
Avatar billede erikjacobsen Ekspert
04. januar 2007 - 22:52 #3
ob_start();
Avatar billede htm Nybegynder
04. januar 2007 - 22:53 #4
Hvilken fejl? hvilken linie?

Samme fejl, så tjek for mellemrum, linieskift etc. før og efter php start og slut.
Avatar billede cmol Nybegynder
04. januar 2007 - 22:59 #5
Haha.. Jeg var en idiot.. Havde glemt ()..

Nå.. Men da i begge fandt fejl får i 50/50.. :-)

Smider i svar?..
Avatar billede erikjacobsen Ekspert
04. januar 2007 - 22:59 #6
Ingen point til mig, tak.
Avatar billede htm Nybegynder
04. januar 2007 - 22:59 #7
ok :-)
Avatar billede htm Nybegynder
04. januar 2007 - 23:03 #8
Læg selv svar og tag de fleste point selv, det er vist ikke 100 point værd :-)
Avatar billede cmol Nybegynder
05. januar 2007 - 07:34 #9
Jeg har 3923 point.. Det går skam nok.. :-P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester