Avatar billede darkstardk Nybegynder
11. september 2004 - 22:37 Der er 16 kommentarer

Fejl ved login..

Hvordan kan det være at den kommer med denne fejl når jeg logger ind på min hjemmeside:
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\old\dataprocess.php:4) in c:\apache\htdocs\old\dataprocess.php on line 38


Hvis jeg skriver noget forkert i brugernavn og password, så pbner den godt fejl siden :S
Avatar billede googolplex Novice
11. september 2004 - 22:50 #1
Det er fordi du forsøger at sende en header() efter at du har sendt <html> ol.

Gør følgende:

<?php ob_start(); ?>
INDSÆT DIN KODE HER
<?php ob_end_flush(); ?>

Alternativet er at omskrive dit script, så alle headers sendes før alt andet.

Det er en nem metode der virker :)
Avatar billede alvion Nybegynder
11. september 2004 - 22:50 #2
Du prøver at lave en redirect med:

header("Location: en-eller-anden-adresse");

Men inden da har du allerede sendt output til browseren med enten echo, print eller html-kode inden det første <?php tag.

Se efter om der er tomme linier eller bare mellemrum i toppen af filen lige inden dit <?php tag. Det skal fjernes, så virker det.
Avatar billede hmortensen Nybegynder
11. september 2004 - 22:52 #3
googolplex, det er da bedre at få rettet fejlen, istedet for at bruge unødvendig hukommelse
Avatar billede darkstardk Nybegynder
12. september 2004 - 00:05 #4
Takker prøver lige :D
Avatar billede darkstardk Nybegynder
12. september 2004 - 00:22 #5
Hmm kan ik rigtigt få det til at du :S

<link href="index-filer/e107.css" rel="stylesheet" type="text/css">
<link href="index-filer/style(1).css" rel="stylesheet" type="text/css">
<link href="index-filer/style.css" rel="stylesheet" type="text/css">
<?php
$goHere="admin.php";
$logSuccess="1";
$namePassCombos = array (
"bruger" => "pass",
"bruger" => "pass",
"bruger" => "pass");
$loginName = $_POST['loginName']; $passWord = $_POST['passWord'];
$passWord = preg_replace ("/</","[",$passWord); $loginName = preg_replace ("/>/","]",$loginName);
$loginName = str_replace(".."," ",$loginName); $passWord = str_replace(".."," ",$passWord);       
$loginName=trim($loginName); $passWord=trim($passWord);
$logInTracker="successLog.txt";
function success($logSuccess,$logInTracker,$loginName,$goHere)
{
      $date=date ("l dS of F Y h:i:s A");
    $register_globals = (bool) ini_get('register_gobals');
    if ($register_globals) $ip = getenv(REMOTE_ADDR);
    else $ip = $_SERVER['REMOTE_ADDR'];
    if($logSuccess=="1"){
        $log=fopen("files/$logInTracker", "a+");
            fputs($log, "$loginName logged in on: $date - Logged IP address: $ip\n");
        fclose($log);
    }
    Header("$goHere");
}
function error($notice)
{
    if($notice=="0"){
        echo"
            <title>Forkert Brugernavn eller Kodeord</title>
            <body><br><p style=\"font:11pt arial\"><font color=red>FEJL:</font> Forkert Brugernavn eller Kodeord.
            <br>
            </body></html>
        "; exit;
    }
    if($notice=="1"){
        echo"
            <title>Forkert Brugernavn eller Kodeord</title>
            <body><br><p style=\"font:11pt arial\"><font color=red>FEJL:</font> Forkert Brugernavn eller Kodeord.
            <br>
            </body></html>
        "; exit;
    }
}
if (($loginName == "") || ($passWord == "")) { $notice=0; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) != 0) { $notice=1; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) == 0) { success($logSuccess,$logInTracker,$loginName,$goHere); }
?>
Avatar billede darkstardk Nybegynder
12. september 2004 - 00:42 #6
Hmm har det fået til at virke "lidt" nu, den åbner godtnok en side uden fejl, men det er bare en helt hvid side :S
Avatar billede hmortensen Nybegynder
12. september 2004 - 00:52 #7
header("location: ".$goHere);
Avatar billede darkstardk Nybegynder
12. september 2004 - 00:55 #8
Siger stadig:
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\old\dataprocess.php:4) in c:\apache\htdocs\old\dataprocess.php on line 27
Avatar billede darkstardk Nybegynder
12. september 2004 - 00:57 #9
Nice har fundet fejlen nu :D
Det var de CSS filer :D
Hvis jeg fjerner dem og bruger = "header("location: ".$goHere);"
så virker det :D
Men hvad gør jeg nu hvis jeg ville bruge de CSS filer???
Avatar billede alvion Nybegynder
12. september 2004 - 09:18 #10
Smid dem i en funktion sådan her:

function show_css() {
    echo '<link href="index-filer/e107.css" rel="stylesheet" type="text/css">
          <link href="index-filer/style(1).css" rel="stylesheet" type="text/css">
          <link href="index-filer/style.css" rel="stylesheet" type="text/css">';
}

Og så kald denne funktion der hvor du laver output, f.eks.

    if($notice=="1"){
        show_css();
        echo"
            <title>Forkert Brugernavn eller Kodeord</title>
            <body><br><p style=\"font:11pt arial\"><font color=red>FEJL:</font> Forkert Brugernavn eller Kodeord.
            <br>
            </body></html>
        "; exit;
    }
Avatar billede darkstardk Nybegynder
12. september 2004 - 12:59 #11
alvion --->>>

Får denne fejl:

function show_css() { echo ' '; }
Fatal error: Call to undefined function: show_css() in c:\apache\htdocs\old\dataprocess.php on line 35
Avatar billede alvion Nybegynder
12. september 2004 - 13:04 #12
Du skal placere "function show_css() osv..." under <?php tag'et
Avatar billede darkstardk Nybegynder
12. september 2004 - 13:19 #13
nåå ok
Avatar billede alvion Nybegynder
13. september 2004 - 06:23 #14
Og så SKAL <?php stå som DET ØVERSTE i scriptet! Der må under ingen omstændigheder være nogle tomme linier, mellemrum, tegn eller andet foran.
Avatar billede darkstardk Nybegynder
13. september 2004 - 06:58 #15
Mange tak for det uddybende svar alvion :D
Smid et svar for at få lidt point...
Avatar billede alvion Nybegynder
13. september 2004 - 11:31 #16
Velbekomme og værsgo :)
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