Gå til innhold

noe åpenbart galt med denne koden?


Anbefalte innlegg

Behersker ikke php selv, så er det noen som kan se om det er noe galt med denne koden:

<?php 
if($_GET['side'] == 'foto') { 
  echo '<link rel="stylesheet" type="text/css" href="css/foto.css" />'; 
} else { 
  echo '<link rel="stylesheet" type="text/css" href="css/alt.css" />'; 
} 
?> 

 

den gjør nemlig at siden ikke vises...

Lenke til kommentar
Videoannonse
Annonse

jepp css filene finnes, og jeg har fjernet den vanlige css linken i <head>

 

med en gang jeg fjerner den php kodesnutten kommer siden opp igjen..

 

her er hele index.php:

 

<?xml version="1.0" encoding="iso-8859-1"?>
<!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>


<title>Oscar Qvale | cineast, minimalist</title>

<meta http-equiv="imagetoolbar" content="no" />
<meta name="Author" content="Oscar Qvale" />
<meta name="Keywords" content="film, kortfilm, filmproduksjon, foto, filmfoto, 24p, ut, video, fargebehandling, minimalisme, visuelle uttrykk, videoredigering, dvd, cineast" />
<meta name="Description" content="Kontaktinformasjon og galleri av egne arbeider innen film (video) og fotografi. Epost: [email protected]" />
<meta name="abstract" content="Kontaktinformasjon og galleri av egne arbeider innen film (video) og fotografi. Epost: [email protected]" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<link rel="shortcut icon" href="images/favicon.ICO" type="image/x-icon" />
<?php 
if($_GET['side'] == 'foto') { 
  echo '<link rel="stylesheet" type="text/css" href="css/foto.css" />'; 
} else { 
  echo '<link rel="stylesheet" type="text/css" href="css/alt.css" />'; 
} 
?> 

</head>

<body>

<div id="content">

<div id="head">

<div id="topleft"><strong class="heading2">TEST</strong><strong class="heading"> TEST</strong><b class="mini"> test, test</b></div>

<div id="topright"><a href="index.php?side=main">Index</a> | <a href="index.php?side=foto">Foto</a> | <a href="index.php?side=film">Film</a> | <a href="index.php?side=kontakt">Kontakt</a></div>

</div>


<?php

$IncludeDir    = "./content";
$DefaultPath   = "./content/main.inc";
$ErrorPath     = "./inc_filer/404.inc";
$FileExtension = ".inc";

 if (isset($_GET['side'])) {
 $side = $_GET['side'];
 $side = stripslashes(strip_tags($side));
 $Forbidden1 = ereg("\.\./", $side);
 $Forbidden2 = ereg("/", $side);
 $IncludePath = $IncludeDir . "/" . $side . $FileExtension;

   if ($Forbidden1 OR $Forbidden2) {
   echo "<h1>Advarsel</h1>\n";
   echo "<p>Forespørsler på tvers av definerte \n";
   echo "områder er ikke tillatt.</p>\n";
   }
   else {
     if (@fopen("$IncludePath", "r")) { 
     include ("$IncludePath"); 
     }
     elseif (!(@fopen("$IncludePath", "r"))) {
     include ("$ErrorPath");
     }
   }
 }
 else {
 include("$DefaultPath"); 
 }

?>

<?php

$MenuPath = "./content/menu.inc";

include("$MenuPath");

?>

<div id="bottom"> <p class="bottom">Info om rettigheter og kode: Denne siden er satt sammen av <a href=
"http://www.w3.org/TR/xhtml1/">xhtml</a> og <a href="http://www.
w3.org/Style/CSS/">css</a>. Alt innhold - det være seg bilder, video og tekst - er beskyttet av <a href=
"http://www.lovdata.no/all/nl-19610512-002.html"
title="Åndsverksloven">Åndsverksloven</a> (1961). Sjekk 
<a href="http://validator.w3.org/check?uri=http%3A%2F%2Ffolk.uio.no%2Fkoqvale%2F">xhtml</a> og <a href="http:
//jigsaw.w3.org/css-validator/validator?uri=http://folk.uio.no/
koqvale/css/stilen.css">css.</a> Blabla </p></div>

</div>

</body>

</html>

 

http://folk.uio.no/koqvale

..merkelig..

Lenke til kommentar

Sett inn dette helt i toppen av index.php:

<?error_reporting(E_ALL ^ E_NOTICE);?>

Da får du opp alle feilmeldinger, men ikke NOTICE meldinger, så får du ihvertfall opp en feilmelding

Jeg mistenker denne linjen:

<?xml version="1.0" encoding="iso-8859-1"?>

Der starter du jo en php-tag med <? som da indikerer at php koding begynner...

 

EDIT: Litt annet ordvalg

Endret av kakkle
Lenke til kommentar
Behersker ikke php selv, så er det noen som kan se om det er noe galt med denne koden:

<?php 
if($_GET['side'] == 'foto') { 
  echo '<link rel="stylesheet" type="text/css" href="css/foto.css" />'; 
} else { 
  echo '<link rel="stylesheet" type="text/css" href="css/alt.css" />'; 
} 
?> 

 

den gjør nemlig at siden ikke vises...

Prøv om den fungerer:

<?php 
if($_GET["side"] == "foto") { 
 echo "<link rel='stylesheet' type='text/css' href='css/foto.css' />"; 
} else { 
 echo "<link rel='stylesheet' type='text/css' href='css/alt.css' />"; 
} 
?>

Lenke til kommentar

takk for all hjelp...

 

men utrolig nok kommer ikke siden opp! Heller ingen feilmeldinger...

 

prøvd med både ' og " i php snutten. Ingen forskjell...

 

<?error_reporting(E_ALL ^ E_NOTICE);?>

<!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>

<title>Oscar Qvale | cineast, minimalist</title>

<meta http-equiv="imagetoolbar" content="no" />
<meta name="Author" content="Oscar Qvale" />
<meta name="Keywords" content="film, kortfilm, filmproduksjon, foto, filmfoto, 24p, ut, video, fargebehandling, minimalisme, visuelle uttrykk, videoredigering, dvd, cineast" />
<meta name="Description" content="Kontaktinformasjon og galleri av egne arbeider innen film (video) og fotografi. Epost: [email protected]" />
<meta name="abstract" content="Kontaktinformasjon og galleri av egne arbeider innen film (video) og fotografi. Epost: [email protected]" />
<link rel="shortcut icon" href="images/favicon.ICO" type="image/x-icon" />

<?php 
if($_GET["side"] == "foto") { 
 echo "<link rel='stylesheet' type='text/css' href='css/foto.css' />"; 
} else { 
 echo "<link rel='stylesheet' type='text/css' href='css/alt.css' />"; 
} 
?>

</head>

<body>

<div id="content">

<div id="head">

<div id="topleft"><strong class="heading2">TEST</strong><strong class="heading"> TEST</strong><b class="mini"> test, test</b></div>

<div id="topright"><a href="index.php?side=main">Index</a> | <a href="index.php?side=foto">Foto</a> | <a href="index.php?side=film">Film</a> | <a href="index.php?side=kontakt">Kontakt</a></div>

</div>


<?php

$IncludeDir    = "./content";
$DefaultPath   = "./content/main.inc";
$ErrorPath     = "./inc_filer/404.inc";
$FileExtension = ".inc";

 if (isset($_GET['side'])) {
 $side = $_GET['side'];
 $side = stripslashes(strip_tags($side));
 $Forbidden1 = ereg("\.\./", $side);
 $Forbidden2 = ereg("/", $side);
 $IncludePath = $IncludeDir . "/" . $side . $FileExtension;

   if ($Forbidden1 OR $Forbidden2) {
   echo "<h1>Advarsel</h1>\n";
   echo "<p>Forespørsler på tvers av definerte \n";
   echo "områder er ikke tillatt.</p>\n";
   }
   else {
     if (@fopen("$IncludePath", "r")) { 
     include ("$IncludePath"); 
     }
     elseif (!(@fopen("$IncludePath", "r"))) {
     include ("$ErrorPath");
     }
   }
 }
 else {
 include("$DefaultPath"); 
 }

?>

<?php

$MenuPath = "./content/menu.inc";

include("$MenuPath");

?>

<div id="bottom"> <p class="bottom">Info om rettigheter og kode: Denne siden er satt sammen av <a href=
"http://www.w3.org/TR/xhtml1/">xhtml</a> og <a href="http://www.
w3.org/Style/CSS/">css</a>. Alt innhold - det være seg bilder, video og tekst - er beskyttet av <a href=
"http://www.lovdata.no/all/nl-19610512-002.html"
title="Åndsverksloven">Åndsverksloven</a> (1961). Sjekk 
<a href="http://validator.w3.org/check?uri=http%3A%2F%2Ffolk.uio.no%2Fkoqvale%2F">xhtml</a> og <a href="http:
//jigsaw.w3.org/css-validator/validator?uri=http://folk.uio.no/
koqvale/css/stilen.css">css.</a> Blabla </p></div>

</div>

</body>

</html>

Lenke til kommentar

Pjols! Alt stopper opp av hvilken som helst del av denne koden

<?php 
if($_GET['side'] == 'foto') { 
  echo '<link rel="stylesheet" type="text/css" href="css/foto.css" />'; 
} else { 
  echo '<link rel="stylesheet" type="text/css" href="css/alt.css" />'; 
} 
?>

 

det eneste som funker er <?php ?> som man jo som kjent ikke kommer langt med...

 

Det skal vel gå an å ha php i <head>? Er det mulig at det krasjer med med include scripet?

Lenke til kommentar

Jeg ser ingenting feil med koden, og den ser ut til å virke som forventet her.

 

Jeg antar at du bruker en nettleser for å se resultatet av koden. Sjekker du da også selve kildekoden til resultatsiden? (Vis>Kilde i Internet Explorer)

 

I php.ini, er display_errors = On? Hvis den er Off, så blir ikke php-feilmeldinger vist.

Lenke til kommentar

Det er det som er så rart...om man viser kilden er det en helt blank side! testet i Safari, IE Mac...

 

På vanlig IE på pc kommer riktignok dette

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD>

<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>

<BODY></BODY></HTML>

...men det kommer vel automatisk om siden er tom..

 

php.ini? dette er en fil jeg ikke kjenner til, har kun index.php der all php koden ligger...

Lenke til kommentar

Det var veldig rart... En mulig "løsning" er å prøve andre metoder for å printe teksten:

<?php if($_GET["side"] == "foto") { ?>
 <link rel='stylesheet' type='text/css' href='css/foto.css' />
<?php } else { ?> 
 <link rel='stylesheet' type='text/css' href='css/alt.css' />
<?php } ?>

<?php 
if($_GET["side"] == "foto") { 
print("<link rel='stylesheet' type='text/css' href='css/foto.css' />"); 
} else { 
print("<link rel='stylesheet' type='text/css' href='css/alt.css' />"); 
} 
?>

selv om det egentlig er akkurat det samme :hmm:

 

 

eller fjerne resten av dokumentet og bare la dette stå igjen dersom du ikke allerede har prøvd det:

<html>
 <head>
   <title>title</title>
   <?php 
     if($_GET["side"] == "foto") { 
       echo "<link rel='stylesheet' type='text/css' href='css/foto.css' />"; 
     } else { 
       echo "<link rel='stylesheet' type='text/css' href='css/alt.css' />"; 
     } 
   ?>
 </head>
 <body>
   test
 </body>
</html>

eller

<html>
 <head>
   <title>title</title>
   <?php 
     echo "<link rel='stylesheet' type='text/css' href='css/alt.css' />"; 
   ?>
 </head>
 <body>
   test
 </body>
</html>

 

 

php.ini er filen som inneholder innstillingene til php. En alternativ måte å slå på display_errors er å legge

<?php ini_set("display_errors","1"); ?>

inn i begynnelsen av php-koden.

 

 

Jeg har ingen andre ideer for å finne ut av problemet :shrug:

Lenke til kommentar

forresten en ting...

<?php if($_GET["side"] == "foto") { ?>
 <link rel='stylesheet' type='text/css' href='css/foto.css' />
<?php } else { ?> 
 <link rel='stylesheet' type='text/css' href='css/alt.css' />
<?php } ?>

Kan jeg legge til flere sider i if($_GET["side"] == "foto") f. eks at det også skal gjelde for sider som "galleri" "kontakt" osv?

Lenke til kommentar

ja, men da må du bruke elseif også..

 

edit: lite eksempel:

<?php if($_GET["side"] == "foto") { ?>
<link rel='stylesheet' type='text/css' href='css/foto.css' />
<?php } elseif($_GET['galleri']) { ?>
<link rel='stylesheet' type='text/css' href='css/alleri.css' />
<?php } else { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />
<?php } ?>

tror det skal funke..

Endret av toss
Lenke til kommentar
ja, men da må du bruke elseif også..

 

edit: lite eksempel:

<?php if($_GET["side"] == "foto") { ?>
<link rel='stylesheet' type='text/css' href='css/foto.css' />
<?php } elseif($_GET['galleri']) { ?>
<link rel='stylesheet' type='text/css' href='css/alleri.css' />
<?php } else { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />
<?php } ?>

tror det skal funke..

det var da en herlig kodesnutt.. uff..

 

bruk gjerne en switch i slike tilfeller..

Lenke til kommentar

Ja nå gjør jeg slik:

<?php if($_GET['side'] == "main") { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />

<?php } elseif($_GET['side'] == "") { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />

<?php } elseif($_GET['side'] == "film") { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />

<?php } elseif($_GET['side'] == "kontakt") { ?>
<link rel='stylesheet' type='text/css' href='css/alt.css' />

<?php } else { ?>
<link rel='stylesheet' type='text/css' href='css/foto.css' />
<?php } ?>

Det funker bra, men det er kanskje litt tungvint?

 

Tenkte jeg skulle ha <title></title> til hver av sidene også..dette kan vel også gjøres på lignende måte i php? ettersom jeg bruker et includescript får jeg jo samme tittel på alle sidene...

Lenke til kommentar

En måte å gjøre det på dersom echo virker, er

<?php 
   
$sidetyper['main']    = array('tittel' => 'Main',    'stil' => 'alt' );
$sidetyper['film']    = array('tittel' => 'Film',    'stil' => 'alt' );
$sidetyper['kontakt'] = array('tittel' => 'Kontakt', 'stil' => 'alt' );
$sidetyper['foto']    = array('tittel' => 'Foto',    'stil' => 'foto');
$sidetyper['default'] = array('tittel' => 'Default', 'stil' => 'alt' ); 
   
   
if (array_key_exists('side', $_GET) && 
   array_key_exists($_GET['side'], $sidetyper)) 
{
 $sidetype = $_GET['side'];
} 
else 
{
 $sidetype = 'default';
}

$tittel = $sidetyper[$sidetype]['tittel'];
$stil = 'css/' . $sidetyper[$sidetype]['stil'] . '.css'; 
?>

<title><?php echo $tittel; ?></title> 
<link rel='stylesheet' type='text/css' href='<?php echo $stil ?>' />

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...