Avatar billede andreas134 Nybegynder
05. februar 2010 - 20:05 Der er 31 kommentarer og
2 løsninger

Warning: session_start()

jeg kan simpelthen ikke finde ud af hvad der er galt
jeg fatter ikke noget af det hele
kan nogen komme med en grung til følgende fejl?

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/........../index.php:1) in
/customers........../index.php on line 2

jeg har kortet koden lidt ned så i kun har det vigtigste
kode:
( er ikke med i koden)

--------------------------------------
&#65279;&#65279;<?php
session_start();

include("connect.php");

$id = $_GET['id'];

$content_r = mysql_query("SELECT * FROM content WHERE sitename='$id'");

$content = mysql_fetch_array($content_r);´

?>
<!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" lang="da">

<head>
   
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

    <link href="http://domain.com/test122/stylesheet.css" rel="stylesheet" type="text/css" />


</head>

<body>

</body>

</html>
Avatar billede michael_stim Ekspert
05. februar 2010 - 20:23 #1
Prøv at åbne din fil i f ex notepad og se om der ikke er mærkelige tegn før <?php
Avatar billede majbom Novice
05. februar 2010 - 20:23 #2
hvis &#65279; ikke er med, hvor kommer det så fra?
Avatar billede andreas134 Nybegynder
05. februar 2010 - 20:27 #3
altså når jeg skriver det her på siden står det der ikke men det står der altså nu.

hvilket jeg ikke forstår men..
det er jo ikke det vi skal snakke om
Avatar billede michael_stim Ekspert
05. februar 2010 - 20:33 #4
Det er jo netop det ;o)
Avatar billede michael_stim Ekspert
05. februar 2010 - 20:38 #5
Det skulle gerne se sådan her ud:  og det hedder BOM, Byte Order Mark og fremtræder på UTF filer.
Avatar billede andreas134 Nybegynder
05. februar 2010 - 20:46 #6
 har jeg faktisk set på en af mine sider

men skal jeg så vælge uden bom?
Avatar billede andreas134 Nybegynder
05. februar 2010 - 20:57 #7
kan det være noget med at 'session' ikke virker optimalt i UFT filer?
Avatar billede Slettet bruger
05. februar 2010 - 21:08 #8
Sessions virker fint under utf-8 encoding, men hvis du har gemt din fil med BOM som Michael Stim nævnte i post #5, så vil det "mark" blive sendt afsted før <?php hvilket resulterer i header-already-sent-fejl.
Avatar billede andreas134 Nybegynder
05. februar 2010 - 22:48 #9
det vil sige at jeg skal gøre hvad?

gemme filen som ansi eller?

hvad vil du forslå?
Avatar billede Slettet bruger
05. februar 2010 - 22:54 #10
Gem filen som UTF-8 UDEN BOM da du fortæller browseren at den data den bliver fodret med er i UTF-8 formatet.
Avatar billede andreas134 Nybegynder
05. februar 2010 - 22:59 #11
ja det har jeg prøvet men

nu ligger landet sådan at jeg får næsten al min tekst på siden fra en database

og den tekst får jeg fra en anden fil

skal den fil også være uft-8 uden BOM?

eller skal alt være uden BOM?
Avatar billede Slettet bruger
05. februar 2010 - 23:32 #12
Det er sådan at filer der er gemt i UTF med BOM har nogle tegn som man normalt ikke vil kunne se, men de er der altså stadig.
Så hvis du har fået din data i databasen fra en fil med BOM, så vil BOM'et komme med ind i databasen, ligesom det vil komme med ud når du læser fra databasen. Så når du får at vide af serveren at der allerede er sendt headers afsted til browseren, så kunne det godt tyde på der er nogle skjulte tegn i starten af dataen, som du ikke kan se - men serveren og browseren ser dem skam fint.
Så kort sagt: ja, i dette tilfælde skal alt være uden BOM.
Avatar billede andreas134 Nybegynder
06. februar 2010 - 10:54 #13
det har jeg forsøgt

men den tekst som kommer fra databasen/ den eksterne fil
viser stadig tegene
men min hoved side fungere fint
Avatar billede andreas134 Nybegynder
06. februar 2010 - 15:41 #14
jeg har fundet en løsning :)

jeg har gemt alle filer som UTF-8 UDEN BOM

med undtagelse af index.php  som er gemt som ANSI

og jeg har sat charset=iso-8859-1

databasen er fortsat UTF-8

dette fungere men er ikke 100% korrekt

jeg vil ikke give mig selv pointene

men vente hvis der skulle være en med en anden løsning :)
Avatar billede repox Seniormester
06. februar 2010 - 16:08 #15
Jeg er lidt nysgerrig efter at vide hvorfor du roder så'n rundt i dine tegnsæt? Hvorfor forbliver du ikke i UTF-8?
Avatar billede andreas134 Nybegynder
06. februar 2010 - 17:10 #16
fordi at æ ø å og andre tegn ikke bliver vist :)
Avatar billede Slettet bruger
06. februar 2010 - 17:18 #17
Det gør de skam fint, hvis du bruger samme charset/encoding-format i alle filer og databasen.
Avatar billede repox Seniormester
06. februar 2010 - 17:27 #18
#16
Som #17 siger, så giver det jo god mening at når du bruger det samme tegnsæt over hele linien, så vil det jo være naturligt at det bliver vist korrekt.

Det er typisk, fordi man anvender forskellige tegnsæt man ikke kan få den korrekte visning på.
Avatar billede andreas134 Nybegynder
06. februar 2010 - 17:48 #19
ja begge to jeg synes også det ville være mest logisk :)

men nu forholder det sig sådan at det ikke fungere :)

jeg har prøvet og jeg tror jeg kender grunden for at det ikke virker

fordi:

jeg har en index.php som det hele foregår fra

afhængig af hvad $_GET['p'] er

så inkludere en anden fil som henter tekst fra databasen

og i disse filer har jeg ikke mulighed for at kunne skrive charset=UFT-8

og jeg tror det er her den ligger

kun en teori lyder det sandsynligt ?
Avatar billede repox Seniormester
06. februar 2010 - 19:08 #20
Skal jeg forstå det således at du har en mod_rewrite regel der sender eksempel /foo til index.php?p=foo?

Og derefter inkluderer du en fil, gennem index.php og den fil henter tekst fra databasen?

Hvis det er tilfældet giver det du siger ikke meget mening med dine tegnsæt.

Det er klart at index.php og den fil du inkluderer skal være gemt med samme tegnsætning, for ellers vil det naturligvis skabe problemer.

Og igen, hvis du ikke får data ud i det rigtige tegnsæt fra databasen, så går det også galt.
Avatar billede andreas13_fam Nybegynder
06. februar 2010 - 19:42 #21
Husk at det ikke er nok at din database er i UTF-8, de værdier der er blevet sat ind skal også komme fra et dokument der er indkodet i UTF-8.

Hvis du vil bruge UTF-8 over hele linjen, hvilket jeg vil anbefale. Kan det også hjælpe at sætte en header på:

<?php
header('Content-type: text/html; charset=utf-8');
session_start();
?>
Avatar billede andreas134 Nybegynder
06. februar 2010 - 20:58 #22
repox, ja du har forstået det fuldstændigt. Jeg ville også selv synes at det er mest logisk at det er det samme hele vejen igennem men det fungere ikke.

det fungere til gengæld hvis index.php er iso-8859-1 og de andre er UFT-8
----------
andreas13_fam, det første du siger det har jeg sikret mig med da jeg har brugt phpmyadmin (kun nu fordi jeg ville være sikker på at der ikke er nogen fejl)

det andet hvis jeg gør det skal det så stadig skrives i head?
-----
til jer begge: den måde jeg formulere mig på virker måske lidt negativ men i skal vide at jeg er kun er glad for jeres hjælp:)
Avatar billede repox Seniormester
06. februar 2010 - 21:15 #23
#22
Du misforstår noget i det du laver; det fungerer jo ikke hvis tilstanden er som du siger; du skal høre på hvad flere mennesker fortæller dig her.
Hvis du bruger det samme tegnsæt igennem hele systemet, vil din applikation ikke kunne differenciere i tegnsættet - det er simpel logik.
Du laver fejl et eller andet sted (eller flere steder) og det kommer til udtrykke når du blander dine tegnsæt sammen for at 'få det til at fungere'. Det er et faktum.
Avatar billede andreas134 Nybegynder
06. februar 2010 - 22:02 #24
jeg har lige lavet alle filer til uft-8

æ ø å vises stadig ikke

alt er på nuværende tidspunkt UFT-8

hvad gør jeg så nu ?
Avatar billede repox Seniormester
06. februar 2010 - 22:19 #25
Så vidt jeg kan se, så ser ø'et i "Løsninger" rigtigt ud.
Det må være det indhold du henter fra databasen som ikke kommer ud i det rigtige format. Og da jeg ikke kan se hvordan du henter det indhold ud, er det svært at gætte.
Avatar billede Slettet bruger
06. februar 2010 - 22:32 #26
Det skal også lige noteres at det ikke er nok bare at gemme dataen i databasen som utf-8, men man skal også sikrer sig at man modtager dataen fra databasen i det rigtige charset.
Jeg mener at MySQL normalt sender data i latin1 (aka. iso-8859-1) character settet hvilket skaber problemer hvis dataen i databasen er blevet gemt som utf-8. Du kan fortælle MySQL hvilket character set den skal give dig dataen i ved brug af mysql_client_encoding-funktionen. Forhåbentligt kan det være der fejlen ligger, hvem ved?
Avatar billede repox Seniormester
06. februar 2010 - 22:48 #27
Og for at supplere #26 - hvis noget af indholdet er fødet igennem phpmyadmin, så kan du godt have sat indholdet i med latin1 uden at du er klar over det, selvom kollationer og charset har været sat til utf8.
Avatar billede andreas134 Nybegynder
06. februar 2010 - 23:38 #28
jeg tror vi langt om længe har fundet fejlen:
The current character set is: latin1

jeg kan bare ikke finde ud af hvordan jeg laver det om ?
Avatar billede repox Seniormester
06. februar 2010 - 23:45 #29
Se kommentar #26?
Avatar billede andreas134 Nybegynder
06. februar 2010 - 23:55 #30
fandt lige ud af det og.....
det virker!!!!!!

alle tegn bliver vist korrekt!!!!

jeg tilføjede mysql_set_charset('utf8',$db); i min connect.php

tusind tak


repox og roxki post venligst et svar vær.
Avatar billede repox Seniormester
07. februar 2010 - 00:01 #31
du fik svar fra mig her.
Avatar billede Slettet bruger
07. februar 2010 - 00:11 #32
og her var et svar fra mig.
Avatar billede andreas134 Nybegynder
07. februar 2010 - 13:22 #33
jeg takker endnu en gang for hjælpen

jeg er lidt ked af at jeg ikke satte den til mere end 60 point.
for al den tid i har brugt på mig

men tak skal i have :)
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