kroekkete Skrevet 2. mai 2004 Del Skrevet 2. mai 2004 Hei, jeg har en kodesnutt i begynnelsen av index.php som sier hvilken css fil jeg skal bruke, avhengig av om det er IE eller Opera som er nettleseren. (At dette er en upraktisk løsning, ikke minst med tanke på at det finnes mange andre nettlesere også er en annen sak...) Litt senere i index.php har jeg en include av en fil som heter logotekst.php. Denne er også avhengig av at riktig css.fil vises. Hvordan gjør jeg dette? SOm dere ser av kodesnutten i begynnelsen av index.php generer jeg variabelen $style, som senere brukes i <link rel...> Det er denne jeg gjerne skulle hatt med videre til den inkluderte filen. Jeg forsøkte først å bruke HTTP_USER_AGENT i logotekst.php også, men da fikk jeg ikke engang lastet filen... Noen forslag? Mvh Primaxx index.php: <?php session_start(); echo $_SESSION['error']; ?> <HTML> <HEAD> <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { $style="iestyle"; } else { $style="ostyle"; } ?> <?php echo "<link rel='stylesheet' type='text/css' media='all' href='http://www.inter.net/assets/$style.css' />"; ?> </HEAD> Litt senere i index.php: <BODY> <div id="body"> <?php include("http://www.inter.net/inc/logotekst.php");?> osv osv... Det jeg vil er at denn linjen også skal fungere i <HEAD> i logotekst.php: <?php echo "<link rel='stylesheet' type='text/css' media='all' href='http://www.inter.net/assets/$style.css' />"; ?> På forhånd takk for hjelpen! Lenke til kommentar
LoS Skrevet 2. mai 2004 Del Skrevet 2. mai 2004 (endret) Prøv dette, hvis jeg har forstått deg riktig. global $style; i logotekst.php edit:glemte å legge til hvor den skulle Endret 2. mai 2004 av LoS Lenke til kommentar
Nervetattoo Skrevet 3. mai 2004 Del Skrevet 3. mai 2004 Jeg kan ikke finne noen feil, testet også koden her, og det funket fint. Tror du må prøve å spesifisere problemet litt mer, for det er ikke noe problem med å laste css filen avhenging av hvilken nettleser man bruker. Eller har jeg misforstått problemet? Lenke til kommentar
Torbjørn Skrevet 3. mai 2004 Del Skrevet 3. mai 2004 du trenger ikke global, den trengs bare inni funksjonsdefinisjoner. inkluderte filer har samme "variabel scope" som resten av skriptet (dvs php har bare ett scope) - på godt og vondt (mest vondt) Lenke til kommentar
kroekkete Skrevet 3. mai 2004 Forfatter Del Skrevet 3. mai 2004 (endret) Nå har jeg forsøkt både med og uten globals. Output blir uansett (index.php): <HTML> <HEAD> <link rel='stylesheet' type='text/css' media='all' href='http://inter.net/assets/iestyle.css' /> </HEAD> <BODY> <div id="body"> <HTML> <HEAD> <TITLE>logotekst.php</title> <link rel='stylesheet' type='text/css' media='all' href='http://inter.net/assets/.css' /></HEAD> Som dere ser blir css-filen til index.php korrekt satt til iestyle.css. Men, et par linjer lenger ned ser dere headingen til den inkluderte filen logotekst.php. Der står det bare .css i stedet for iestyle.css... Jeg har også forsøkt dette i logotekst.php (Det samme jeg har i index.php): <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { $style="iestyle"; } else { $style="ostyle"; } ?> <?php echo "<link rel='stylesheet' type='text/css' media='all' href='http://inter.net/assets/$style.css' />"; ?> Dette virker i Opera (oestyle.css blir valgt). Dessverre blir oestyle.css også valgt hvis jeg bruker IE... Endret 3. mai 2004 av primaxx Lenke til kommentar
kroekkete Skrevet 3. mai 2004 Forfatter Del Skrevet 3. mai 2004 -Eller er det faktisk så enkelt at den css'en som blir brukt på hoveddokumentet også blir brukt i de inkluderte filene? 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å