:Francis: Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 (endret) Jeg ønsker å bruke sessions på siden min slik at jeg kan implementere en login-funksjon på siden min. AFAIK må session startes helt i toppen av fila, før html kjøres. Det har jeg etter mitt hode gjort, men det funker allikevel ikke. Jeg kan for ordens skyld nevne at jeg har testet å lage en tom fil som kun inneholder dette: <?php session_start(); echo "test"; ?> Koden ovenfor fungerer slik den skal, og gir ikke feilmeldinger. <?php session_start(); include('login.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Arcticsilence</title> <link href="css_files/index.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="wrapper"> <div id="banner"></div> <div id="upperSpacerBar"><p></p></div> <div id="menuContainer"> <ol> <li><a href="index.php">Home</a></li> <li><a href="index.php?id=2">Portfolio</a></li> <li><a href="index.php?id=3">Equipment</a></li> <li><a href="index.php?id=4">About</a></li> <li><a href="index.php?id=5">Login</a></li> <li><a href="index.php?id=6">Contact</a></li> </ol> </div> <div id="lowerSpacerBar"><p></p></div> <?php if ( isset($_GET['id'])) { $id = $_GET['id']; if(($id == "1") || ($id == "2") || ($id == "3") || ($id == "4") ||($id == "5") || ($id == "6") || ($id == "10") || ($id == "11") || ($id == "12") || ($id == "13") || ($id == "14") || ($id == "15")) { $id = mysql_real_escape_string($id); $result = mysql_query("SELECT * FROM aTable WHERE ID= '$id'",$database); $myrow = mysql_fetch_array($result); if (!file_exists($myrow['Page'])) { $side = 'main.php'; } else { $side = $myrow['Page']; } include $side; } else { include 'main.php'; } } else { include 'main.php'; } ?> <div id="footer"><p>Copyright © 2008 Francis Dougherty Paulin</p> <div id="css_validation"><a href="http://jigsaw.w3.org/css-validator/validator?uri=www.arcticsilence.com">CSS</a></div> <div id="html_validation"><a href="http://validator.w3.org/check?uri=referer">HTML</a></div> </div> </div> </body> </html> Jeg får denne feilmeldingen: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/arcticsilence.com/arcticsilence.com/httpd.www/test_random/index.php:1) in /customers/arcticsilence.com/arcticsilence.com/httpd.www/test_random/index.php on line 2 Håper noen klarer å se hva som er problemet. Setter utrolig pris på all hjelp jeg kan få! Mvh Francis Endret 6. mars 2009 av :Francis: Lenke til kommentar
Matsemann Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 session_start(); må sendes før headers, som feilmeldingen sier. I det dokumentet som ikke virker, er du sikker på at du ikke har noen form for kode før session_start();? Du kan ikke ha noe mellomrom før <?php, da blir den emo. Ellers har man en funksjon som heter ob_start() som altså slår på output-buffering. Da sendes ingen headers eller noe før koden er ferdig kjørt. Tips på norskwebforum.no Håper du finner noe til nytte. Lenke til kommentar
:Francis: Skrevet 6. mars 2009 Forfatter Del Skrevet 6. mars 2009 Tusen takk for svar! Jeg har nå testet å sette inn dette helt helt øverst i siden: <?php ob_start(); ?> <?php session_start(); ?> Feilmeldingen er akkurat den samme. Jeg begriper ikke hvilken html kode som etter sigende blir kjørt før session_start(). Francis Lenke til kommentar
Matsemann Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 (endret) Så lenge det er helt, helt øverst uten noe som helst før i filen (ikke en gang ett mellomrom eller linjeskift) ser jeg ikke helt hvordan dette kan skje. Et skudd i blinde, men én gang dette skjedde var det fordi editoren min la inn usynlige tegn helt først i dokumentet. Prøv å åpne filen din i notisblokk, notepad og andre editorer og sjekk om det ligger noe rusk øverst i dokumentet. (4500 innlegg^^) Endret 6. mars 2009 av Matsemann Lenke til kommentar
:Francis: Skrevet 6. mars 2009 Forfatter Del Skrevet 6. mars 2009 (endret) Jeg gjorde noe så banalt som å kopiere all koden i index.php, opprette et tomt dokument, overskive index.php med den nye fila, og til min store forundring fungerte det! Nå har jeg kun: <?php session_start(); ?> i toppen av fila, og feilmeldingene uteblir ! Mvh Francis Endret 6. mars 2009 av :Francis: Lenke til kommentar
Matsemann Skrevet 6. mars 2009 Del Skrevet 6. mars 2009 Ahh, flott at det virker. Kan hende det faktisk var noe slikt rusk, men det vet man jo ikke. Viktigste er at det virker. Lenke til kommentar
G2Petter Skrevet 7. mars 2009 Del Skrevet 7. mars 2009 Et skudd i blinde, men én gang dette skjedde var det fordi editoren min la inn usynlige tegn helt først i dokumentet. Prøv å åpne filen din i notisblokk, notepad og andre editorer og sjekk om det ligger noe rusk øverst i dokumentet. Det tegnet er et BOM, som forteller nettleseren hvilken UTF-enkoding du bruker. Lenke til kommentar
:Francis: Skrevet 7. mars 2009 Forfatter Del Skrevet 7. mars 2009 Du har nok helt rett! Hovedsiden min som jeg ikke har endret enda validerer, men med warningen: Potential Issues The following missing or conflicting information caused the validator to perform guesswork prior to validation. If the guess or fallback is incorrect, it may make validation results entirely incoherent. It is highly recommended to check these potential issues, and, if necessary, fix them and re-validate the document. Byte-Order Mark found in UTF-8 File. The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported. Den nye validerer helt uten problemer eller warnings. Slik jeg forstår det har ikke BOM noe å si for funksjonaliteten. Stemmer det? Mvh Francis Lenke til kommentar
G2Petter Skrevet 7. mars 2009 Del Skrevet 7. mars 2009 Så lenge du spesifiserer riktig tegnsett i headeren tror jeg BOM er overflødig, ja. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå