2010-01-01, 19:18
  #1
Medlem
Hej flashback. Vet inte om det blev rätt i topicen men.
Får inte till det med min inclusion att min aktiv länk byter bild
bakom sig. Alltså meny fältet är helt vitt och när jag besöker en
länk så får knappen svart bakgrund.
Det blir bara svart då jag trycker och inte när jag är inne på sidan.
CSS:
[php]#nav {
height: 20px;
line-height: 20px;
background: #ffffff url('../im/navbg.gif' ; ) repeat;
}
#nav li A:active {
background: url('../im/hover.gif' ; ) repeat-x top;
text-decoration: none;
}[/php]
KOD:
HTML-kod:
<ul id="nav">
<li><a href="?p=hem">Hem</a></li>
<li><a href="?p=film">Filmer</a></li>
<li><a href="?p=galleri">Bilder</a></li>
<li><a href="?p=guestbook">Gästbok</a></li>
</ul>

[php]<?$site = $_GET['p'];
if(!isset($site)) $site="hem";
$invalide = array('');
$site = str_replace($invalide,' ',$site);
if(!file_exists($site.".php ")) $site = "hem";
include($site.".php");
?>[/php]
Någon som kan förklara hur man ska göra?

Lade till taggar runt koden.
/Mod, Wobin
__________________
Senast redigerad av Wobin 2010-01-01 kl. 19:24.
Citera
2010-01-01, 19:48
  #2
Medlem
Wobins avatar
Först börjar jag med det här: Använd inte php shorttags <? ?>, använd den riktiga <?php ?> istället.

Du måste tilldela ett listitemet (<li></li>) som är aktivt en klass eller id.



hinner tyvärr inte förklara koden, ska på bio, men här har du en bättre som jag knackade ihop i all stress:

[PHP]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php

if (isset($_GET['p']))
$currentPage = $_GET['p'];

$validPages = array('hem' => 'Hem',
'film' => 'Filmer',
'galleri' => 'Bilder',
'guestbook' => 'Gästbok');

if(!isset($currentPage) || !file_exists($currentPage . '.php'))
$currentPage = 'hem';

?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="sv">
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />

<style type="text/css">
body {
background-color: #666666;
}

#nav {
height: 20px;
line-height: 20px;
background: #ffffff url('../im/navbg.gif' ; ) repeat;
}

#nav li A:active {
background: url('../im/hover.gif' ; ) repeat-x top;
text-decoration: none;
}

.activeLink {
background-color: #000000;
}

</style>

</head>

<body>

<?php
$class = '';

echo '<ul id="nav">';
foreach ($validPages as $link => $name) {
if ($currentPage == $link)
$class = ' class="activeLink" ';

echo '<li'. $class .'><a href="?p='. $link .'">'. $name .'</a></li>';
$class = '';
}
echo '</ul>';


include($currentPage . '.php');


?>

</body>
</html>[/PHP]
Citera
2010-01-01, 19:58
  #3
Medlem
Citat:
Ursprungligen postat av Wobin
Först börjar jag med det här: Använd inte php shorttags <? ?>, använd den riktiga <?php ?> istället.

Du måste tilldela ett listitemet (<li></li>) som är aktivt en klass eller id.



hinner tyvärr inte förklara koden, ska på bio, men här har du en bättre som jag knackade ihop i all stress:

[PHP]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php

if (isset($_GET['p']))
$currentPage = $_GET['p'];

$validPages = array('hem' => 'Hem',
'film' => 'Filmer',
'galleri' => 'Bilder',
'guestbook' => 'Gästbok');

if(!isset($currentPage) || !file_exists($currentPage . '.php'))
$currentPage = 'hem';

?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="sv">
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />

<style type="text/css">
body {
background-color: #666666;
}

#nav {
height: 20px;
line-height: 20px;
background: #ffffff url('../im/navbg.gif' ; ) repeat;
}

#nav li A:active {
background: url('../im/hover.gif' ; ) repeat-x top;
text-decoration: none;
}

.activeLink {
background-color: #000000;
}

</style>

</head>

<body>

<?php
$class = '';

echo '<ul id="nav">';
foreach ($validPages as $link => $name) {
if ($currentPage == $link)
$class = ' class="activeLink" ';

echo '<li'. $class .'><a href="?p='. $link .'">'. $name .'</a></li>';
$class = '';
}
echo '</ul>';


include($currentPage . '.php');


?>

</body>
</html>[/PHP]


Tack så mycket!
Tror inte det behövs förklaras så mycket, så det behöver du inte lägga ner tid på att göra vid ett senare tillfälle!
Citera
2010-01-01, 23:07
  #4
Medlem
Wobins avatar
Citat:
Ursprungligen postat av daggemarrren
Tack så mycket!
Tror inte det behövs förklaras så mycket, så det behöver du inte lägga ner tid på att göra vid ett senare tillfälle!

Kom på ett skarpt säkerhetsmisstag jag gjorde i koden, följande kodbit bör bytas:
[php]if(!isset($currentPage) || !file_exists($currentPage . '.php'))
$currentPage = 'hem'; [/php]
Mot:
[php]if(!isset($currentPage) || !array_key_exists($currentPage, $validPages))
$currentPage = 'hem'; [/php]


På så vis kan han endast inkludera sidorna som finns angivna i vektorn $validPages.
__________________
Senast redigerad av Wobin 2010-01-02 kl. 00:59.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in