Avatar billede coolcom Nybegynder
28. oktober 2007 - 19:59 Der er 14 kommentarer og
1 løsning

fejl ved session_start

Hey..

Jeg får følgende fejl:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\felderbal\includes\config.php:32) in C:\AppServ\www\felderbal\modules\login.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\felderbal\includes\config.php:32) in C:\AppServ\www\felderbal\modules\login.php on line 4


i dette script:

<?php

//Helt i starten starter vi sessioner, og forbinder til vores database
session_start();

//Definere klassen login
class Login {

    var $output = "";
    var $html     = "";
   
        function pages() {
            global $skin;
           
                $this->html = $skin->load('skin_login');
       
                $skin->do_title("Login");
                $do = !empty($_GET['do']) ? $_GET['do'] : FALSE;
                   
                    switch ($do)
                    {
                        case "1":
                            $this->signin();
                        break;
                        case "2":
                            $this->check_login();
                        break;
                        case "3":
                            $this->logout();
                        break;
                        case "4":
                            $this->do_login();
                        break;
                        case "5":
                            $this->do_register();
                        break;
                        default:
                            $this->signin();
                        break;
                    }
               
                $skin->do_output("$this->output");
        }


        function signin() {
        global $skin;
       
                $this->output .= $this->html->showlogin();
           
            }
           
       
        function check_login() {
        global $connector, $skin, $error;   
     
       
        //Tjekker om både brugernavn og kodeord er indtastet.
        if(empty($_POST['username']) || empty($_POST['password']))
        {
            //Sender brugeren tilbage til formularen ved brug af en header
            header("location. index.php?page=login");
            exit;
            }
        //Hvis både brugernavn og kodeord er sat, går vi videre.
        else
            {
            /*
            Her bruger vi databasen for første gang, idet vi nu tjekker om der er
            en bruger der har det brugernavn, der er indtasetet i formularen.
            Vi bruger or die(mysql_error()) til at få mysql til at udskrive en fejl,
            hvis der er noget galt med databasekaldet.
            */
            $result = $connector->query("SELECT * FROM felderbal_users WHERE brugernavn='". $_POST['username'] ."'") or die(mysql_error());
            //Tjekker om der er én rækker i databasen der har det indtasetde brugernavn
            //Dette gør dog, at flere brugere ikke må have samme brugernavn!
            if(mysql_num_rows($result) == '1')
            {
                //Laver databasekaldet om til en liset (et array) i php.
                $row = $connector->fetchArray($result);
                //Tjekker om kodeordet i databasen er lig med det indtastede kodeord
                if($row['password'] == $_POST['password'])
                {
                    //Brugeren har indtastet rigtige oplysninger, nu skal han gemmes i sessioner
                    $_SESSION['username'] = $_POST['username'];
                    //Derudover skal han sendes til en hemlig side, hvorpå der bliver tjekket om han er logget ind
                    header("location: admin/index.php");
                    }
                else
                    {
                    //Brugeren har skrevet et forkert kodeord
                    //Sender brugeren tilbage til formular.htm ved brug af en header
                    header("location. index.php?page=login");
                    exit;
                    }
                }
            //Brugernavnet fandtes ikke i databasen, derfor skal der udskrives en fejl.
            else
                {
                //Brugeren har skrevet et forkert brugernavn
                //Sender brugeren tilbage til formular.htm ved brug af en header
                header("location. index.php?page=login");
                exit;
                }
            }

        }
    }
?>


Hvad kan der være galt?
Avatar billede dkfire Nybegynder
28. oktober 2007 - 20:29 #1
Problemet ligger i din config.php, hvor du på linje 32 skriver noget ud på skærmen.
config.php går jeg udfra du inkludere i logihn.php på linje 4.
Avatar billede coolcom Nybegynder
28. oktober 2007 - 21:03 #2
<?php

//--------------------------
// Starter klassen config
//--------------------------
class config {
   
    // Definere variabler
    var $settings;

        function getSettings() {
       
        // Database variabler
        $settings['dbhost']         =     'localhost';                // Databasen host
        $settings['dbusername']     =     'root';                        // Database bruger
        $settings['dbpassword']     =     'steffan';                    // Database password
        $settings['dbname']         =     'felderbal';                // Database navn
       
        // System variabler
        $settings['siteDir']         =     '/felderbal';                // Sitets rod
        $settings['title']            =    'Felderbal';                // Sitets title
        $settings['email']            =    'steffan@lildholdt.dk';        // Administrator email
       
        // Galleri variabler
        $settings['image_dir']        =    '/photos';                    // Stien til mappen indeholdende billederne
       
    return $settings;

    }

}
?>

Dette er min config.php
Avatar billede coolcom Nybegynder
28. oktober 2007 - 21:03 #3
Linje 32 er linjen med ?>
Avatar billede dkfire Nybegynder
28. oktober 2007 - 21:48 #4
Er der et mellemrum eller ny linie efter ?> ?
Avatar billede dkfire Nybegynder
28. oktober 2007 - 21:50 #5
Og så lige en lille oplysning om din config class

var $settings har intet med det array $settings som du laver i funktionen getSettings.
Avatar billede coolcom Nybegynder
28. oktober 2007 - 22:30 #6
Det var der, men det hjalp ikke at slette det
Avatar billede erikjacobsen Ekspert
28. oktober 2007 - 22:33 #7
Har fejlbeskeden ændret sig?
Avatar billede coolcom Nybegynder
28. oktober 2007 - 22:36 #8
nej
Avatar billede erikjacobsen Ekspert
28. oktober 2007 - 22:47 #9
Så har du ikke fået fjernet alt efter ?> i den fil.
Avatar billede coolcom Nybegynder
28. oktober 2007 - 22:53 #10
Jo.. Der er ikke noget..
Avatar billede erikjacobsen Ekspert
28. oktober 2007 - 22:59 #11
Der er noget, hvis fejlbeskeden er uændret. Og "noget" er så typisk mellemrum og linieskift, og sådan noget stads.
Avatar billede dkfire Nybegynder
28. oktober 2007 - 23:00 #12
Ellers så vis fejlbeskeden den giver.
Avatar billede coolcom Nybegynder
28. oktober 2007 - 23:30 #13
Jeg fandt det nu:D..

I kan smide et svar hver og dele pointsne..
Avatar billede erikjacobsen Ekspert
29. oktober 2007 - 09:00 #14
Ingen point til mig, tak.
Avatar billede dkfire Nybegynder
29. oktober 2007 - 11:40 #15
Jeg kan da godt ligge et svar.
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