• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Header wechseln bei kategoriewechsel

YanuFreaky

Neues Mitglied
Moin,

Das header bild möchte ich machen das es das bild immer ändert wenn ich auf eine neue seite komme, aber nicht das gleiche auf der selben seite also ich möchte eher das die immer per zufall ausgewählt werden. Ich hab schon ein paar codes gefunden aber ich kapier die irgendwie nicht..google hab ich durchsucht..und ich möchte nicht auf jeder seite ein einzelnes bild verlinken da alles per css gemacht ist.

dann hoff ich mal ihr könnt mir wieder helfen

MfG
Yanu
 
es gibt sicher wieder einen eleganteren lösungsweg, aber das wäre meiner...
PHP:
<?php
// Das Verzeichnis, in dem die Grafiken liegen
$dir = "dein/ver/zeich/nis/"; 
// Verzeichnis öffnen
$h = opendir($dir); 
// Alle enthaltenen Dateien in ein Array packen
$files = array();
while(($file = readdir($h)) !== false) { 
    if($file == '.' || $file == '..') { 
        continue; 
    } 
    $files[] = $dir . $file;
} 
// Die Menge der Dateien feststellen
$count = count($files);
// Zufallszahl entsprechend der Menge der verfügbaren Dateien ermitteln
$zufall = rand(1,$count);
// Höchsten Mengenwert auf NULL setzen
if ($zufall == $count){
 $zufall = 0;
 }
// Zufällig ermitteltes Bild ausgeben
echo "<img src='".$files[$zufall]."' alt='head'>";
?>
 
Und wie muss ich das verlinken? also das bild bzw. der header ist jetzt so mit der .css datei verlinkt :

HTML:
<head>
  <title>...</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/colour.css" />

</head>

<body>
  <div id="main">
    <div id="links">
       ...
    </div>
    <div id="logo"></div> <--- Da ist das bild verlinkt
...
...
  </div>
</body>
</html>
 
Hallo.

Das schreibst du da hin wo dein Bild erscheinen soll.
Voraussetzung dabei ist das dein Webspace php unterstützt.

Gruss
Elroy
 
Dann muss es also so aussehen? :
HTML:
<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/colour.css" />

</head>

<body>
  <div id="main">
    <div id="links">
      <!-- **** INSERT LINKS HERE **** -->
...
    </div>
PHP:
<?php
// Das Verzeichnis, in dem die Grafiken liegen
$dir = "/link/bilder/header/"; 
// Verzeichnis öffnen
$h = opendir($dir); 
// Alle enthaltenen Dateien in ein Array packen
$files = array();
while(($file = readdir($h)) !== false) { 
    if($file == '1.png' || $file == '2.png' || $file == '3.png' || $file == '4.png'|| $file == '5.png' || $file == '6.png' || $file == '7.png' || $file == '8.png'|| $file == '9.png' || $file == '10.png' || $file == '11.png' || $file == '12.png'||)
    { 
        continue; 
    } 
    $files[] = $dir . $file;
} 
// Die Menge der Dateien feststellen
$count = count($files);
// Zufallszahl entsprechend der Menge der verfügbaren Dateien ermitteln
$zufall = rand(1,$count);
// Höchsten Mengenwert auf NULL setzen
if ($zufall == $count){
 $zufall = 0;
 }
// Zufällig ermitteltes Bild ausgeben
echo "<img src='".$files[$zufall]."' alt='head'>";
?>
HTML:
</div>
</body>
</html>

Aber irgendwie funktioniert nicht.. es zeigt mir beim header dann nur
PHP:
; ?>
an.
 
wieso hast du denn die dateien in das array eingetragen?
da musst du nichts eintragen.
dafür gibts du doch den dateipfad an!
das script liest dateinamen und menge der dateien automatisch aus.
 
Ach soo ich dachte weil da : // Alle enthaltenen Dateien in ein Array packen

stand muss ich sie angeben.. gleich mal testen.
 
*sry for dopplepost*

Also habs jetzt mal weg genommen und so gelassen wie in deinem code also auser den pfad und co. und ehm jetzt kommt immer noch statt das bild :

PHP:
"; ?>
 
das script funktioniert. ich habs getestet bevor ich es geposted hab.
hast du die datei auch als .php abgespeichert oder ist das immer noch ne .htm ?
wenn ja, zeig mal den kompletten code der seite.
so ist da nicht wirklich ein fehler feststellbar ;)
 
Da die komplette und von index.html zu index.php umgenannte komplette seite :

PHP:
<html>

<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/colour.css" />

</head>

<body>
  <div id="main">
    <div id="links">
      <!-- **** INSERT LINKS HERE **** -->
LINKS..
    </div>
    <?php
// Das Verzeichnis, in dem die Grafiken liegen
$dir = "/users/buky/www/bilder/header/"; 
// Verzeichnis öffnen
$h = opendir($dir); 
// Alle enthaltenen Dateien in ein Array packen
$files = array();
while(($file = readdir($h)) !== false) { 
    if($file == '.' || $file == '..') { 
        continue; 
    } 
    $files[] = $dir . $file;
} 
// Die Menge der Dateien feststellen
$count = count($files);
// Zufallszahl entsprechend der Menge der verfügbaren Dateien ermitteln
$zufall = rand(1,$count);
// Höchsten Mengenwert auf NULL setzen
if ($zufall == $count){
 $zufall = 0;
 }
// Zufällig ermitteltes Bild ausgeben
echo "<img src='".$files[$zufall]."' alt='head'>";
?> 
    <div id="content">
      <div id="menu">
        <ul>
          <li><a id="selected" href="index.html">Home</a></li>
          <li><a href="news.html">News</a></li>
          <li><a href="event.html">Event</a></li>
          <li><a href="bilder.html">Bilder</a></li>
          <li><a href="wir.html">Wir</a></li>
          <li><a href="contact.html">Kontakt</a></li>
        </ul>
      </div>
      <div id="column1">
        <div class="sidebaritem">
          <div class="sbihead">
            <h1>latest news</h1>
          </div>
          <div class="sbicontent">
            <!-- **** INSERT NEWS ITEMS HERE **** -->
            <h2>12.04.2010</h2>
            <p></p>
            <p><a href="news.html">mehr...</a></p>
            <p></p>
            <p></p>
            <h2>11.04.2010</h2>
            <p></p>
            <p><a href="news.html">mehr...</a></p>
          </div>
        </div>
        <div class="sidebaritem">
          <div class="sbihead">
            <h1>Sponsoren</h1>
          </div>
          <div class="sbilinks">
            <!-- **** INSERT ADDITIONAL LINKS HERE **** -->
            <ul>
              <li><a href="*"></a></li>
              <li><a href="*"></a></li>
              <li><a href="*"></a></li>
              <li><a href="*"></a></li>
            </ul>
          </div>
        </div>
        <div class="sidebaritem">
          <div class="sbihead">
            <h1>Nächste Events</h1>
          </div>
          <div class="sbicontent">
            <!-- **** INSERT OTHER INFORMATION HERE **** -->
            <p>
             Infos Folgen.. 
            </p>
          </div>
        </div>
      </div>
      <div id="column2">
        <h1>Home</h1>
        <!-- **** INSERT PAGE CONTENT HERE **** -->
        <p>
        </p>
      </div>
    </div>
    <div id="footer">
....
  </div>
  </div>
</body>
</html>
 
Vielleicht das führende / bei der Pfadangabe? Das muss da nicht hin. Versuch mal
PHP:
$dir = "users/buky/www/bilder/header/";
 
jup, das müsste es sein.
hab gerade deine index.php auf meinem server mit nem testverzeichnis ausprobiert und funktionjierte einwandfrei.
wird also wohl ein fehler in der verzeichnisangabe sein ;)
 
Also jetzt kommt nicht mehr die normale seite, also jetzt mit der index.php, also zuerst steht da :
PHP:
Warning:   opendir(users/buky/www/bilder/header/) [function.opendir]: failed  to open dir: No such file or directory in /users/buky/www/satus/index.php  on line 25
Und dann ca. 1000 mal noch :

PHP:
Warning:  readdir() expects parameter 1 to be resource, boolean  given in /users/buky/www/satus/index.php on line 28

aber komischer weise habe ich das jetzt geändert also jetzt wäre es eigentlich users/buky/www/satus/index.php und nicht /users/buky/www/satus/index.php
 
versuchs doch mal ohne den server-root
also nur "bilder/header/"
oder den absoluten pfad "http://www.deine-domain.de/bilder/header/"
 
hmm jetzt hab ich irgendwie noch ein anderes problem, der header wird nicht in der mitte angezeigt sondern zu der seite so verschoben und nicht so wie der rest von der seite.. da sind mal die .css dateien :
Style.css
Code:
/* global */
html{height: 100%;}

body
{ font-family: verdana, arial, sans-serif;
  padding: 0px;
  margin: 0px;
  font-size: .68em;
}

p
{ margin: 0px;
  padding: 0px 0px 16px 0px;
  line-height: 1.7em;
}

h1
{ font-family: arial, sans-serif;
  letter-spacing: .1em;
}

h2
{ margin: 0px;
  padding: 0px 0px 4px 0px;
  font-size: 100%;
}

img{border: 0px;}

a{outline: none;}

/* image positioning - left, right and center */
.left
{ float: left; 
  padding: 0px 8px 0px 0px;
}

.right
{ float: right; 
  padding: 0px 0px 0px 8px;
}

.center
{ display: block;
  text-align: center;
  margin: 0 auto;
}

/* block quote */
blockquote
{ margin: 20px 0px 20px 0px; 
  padding: 10px 20px 0px 20px;
  border-left: 8px solid;
}

/* unordered list */
ul
{ margin: 8px 0px 0px 16px;
  padding: 0px;
}

ul li
{ list-style-type: square;
  margin: 0px 0px 11px 0px; 
  padding: 0px;
}

/* ordered list */
ol
{ margin: 8px 0px 0px 24px;
  padding: 0px;
}

ol li
{ margin: 0px 0px 11px 0px; 
  padding: 0px;
}

/* main container */
#main
{ width: 800px;
  margin-left: auto; 
  margin-right: auto;
}

/* links above the logo / footer */
#links, #footer
{ margin-left: auto; 
  margin-right: auto;
  padding: 10px 21px 0px 19px;
  width: 740px;
  height: 26px;
  font-size: 94%;
  text-transform: uppercase;
}

#links{text-align: right;}

#footer{text-align: center;}

#links a, #footer a{text-decoration: none;}

#links a:hover, #footer a:hover{text-decoration: underline;}

/* logo */
#logo
{ margin-left: auto; 
  margin-right: auto;
  width: 762px;
  height: 150px;
  text-align: center;
}

#logo h1
{ margin: 0px;
  padding: 41px 0px 0px 19px;
  font-size: 150%;
  letter-spacing: .2em;
}

/* navigation menu */
#menu
{ height: 42px;
  width: 780px;
  margin-left: auto; 
  margin-right: auto;
}

#menu ul{margin: 0px auto;} 

#menu li
{ float: left; 
  margin: 0px; 
  padding: 0px;
} 

#menu li a 
{ display: block; 
  float: left; 
  height: 37px;
  text-decoration: none; 
  padding: 3px 19px 2px 19px;
  text-transform: uppercase;
} 

/* main content */
#content
{ margin-left: auto; 
  margin-right: auto;
  width: 780px;
  height: auto;
  padding: 0px;
  overflow: hidden;
} 

/* column 1 - contains sidebar items */
#column1
{ width: 207px;
  float: right;
  padding: 16px 0px 15px 0px;
}

.sidebaritem
{ text-align: left;
  width: 188px;
  float: left;
  margin: 0px 0px 25px 0px;
}

.sbihead
{ height: 14px;
  width: 188px;
  padding: 5px 0px 5px 19px;
  text-transform: uppercase;
}

.sbihead h1
{ padding: 0px; 
  margin: 0px; 
  font-weight: bold;
  font-size: 112%;
}

.sbicontent{padding: 14px 8px 8px 19px;}

.sbicontent p
{ line-height: 14px; 
  padding: 0px 0px 8px 0px;
}

.sbilinks{padding: 0px;}

.sbilinks ul{margin: 0px auto;} 

.sbilinks li 
{ margin: 0px; 
  float: left; 
  list-style: none; 
} 

.sbilinks li a , .sbilinks li a:hover
{ float: left; 
  height: 16px;
  text-decoration: none; 
  padding: 5px 0px 4px 19px;
  width: 188px;
  border: 0px;
} 

/* column 2 - page content */
#column2
{ text-align: justify;
  width: 512px;
  float: left;
  padding: 12px 3px 15px 19px;
}

#column2 h1
{ padding: 6px 0px 4px 0px; 
  margin: 0px 0px 12px 0px; 
  border-bottom: 1px solid;
  font-size: 150%;
  text-transform: uppercase;
  font-weight: normal;
}

.sidebaritem a, #column2 a, .sidebaritem a:hover, #column2 a:hover
{ padding: 0px 0px 2px 0px;
  text-decoration: none;
  border-bottom: 1px dashed;
}

.sidebaritem a:hover, #column2 a:hover{border-bottom: 1px solid;}

/* contact page - form layout */
form{margin-top: 0px;}

div.row
{ clear: both;
  width: 448px;
}

div.row span.formlabel 
{ float: left;
  width: 150px;
  text-align: left;
}

div.row span.forminput
{ float: right;
  text-align: right;
} 

div.spacer
{ clear: both;
  width: 80px;
}

input, textarea
{ width: 259px; 
  font-family: verdana, arial, sans-serif;
  border: 1px solid;
  font-size: 100%;
  margin: 2px;
}

.submit
{ font-family: verdana, arial, sans-serif;
  border: 1px solid;
  width: 70px;
  height: 22px;
  cursor: pointer;
  font-size: 100%;
}
colour.css
Code:
html{height: 100%;}

body
{ background: #837560;
  color: #70695A;
}

blockquote
{ background: #FFFFFF;
  color: #70695A;
  border-color: #767676;
}

#main
{ background: #FFFFFF url(back2.png) repeat-y;
  color: #70695A;
}

#links, #footer, #menu, #menu li a
{ background: #FFFFFF url(menu.png);
  color: #DBD7D1;
  border-color: #D7D7D7;
}

#links a, #footer a, #links a:hover, #footer a:hover
{ background: transparent;
  color: #DBD7D1;
}

#logo
{ background: #FFFFFF url(bilder/header/1.png) no-repeat;
  color: #70695A;
}

#logo h1
{ background: transparent;
  color: #FFFFFF;
}

h1, #column2 h1
{ background: transparent;
  color: #CE7014;
  border-color: #CAAE90;
}

#menu li a:hover, #menu li a#selected, #menu li a#selected:hover
{ background: #FFFFFF url(menu_hover.png);
  color: #70695A;
} 

#content, #column2 a, #column2 a:hover
{ background: transparent;
  color: #70695A;
}

.sidebaritem, .sidebaritem a, .sidebaritem a:hover
{ background: transparent;
  color: #DBD7D1;
}

.sbihead
{ background: #FFFFFF url(sbi_header.png);
  color: #70695A;
}

.sbihead h1
{ background: transparent;
  color: #70695A;
}

.sbilinks li a
{ background: #FFFFFF url(link.png);
  color: #DBD7D1;
} 

.sbilinks li a:hover
{ background: #B7B7B7;
  color: #CE7014;
} 

input, textarea
{ background: #FFFFFF;
  color: #70695A;
  border-color: #CAAE90;
}
Und da noch ein bild von der Seite : (das header bild wurde durch ein weissen balken ersetzt, aber genau an der selben stelle)


 
gib doch mal nen link zu der seite. ich glaub es hat keiner lust zu raten welche von den classes und ids aus deinen zwei stylesheets welchem element auf dem bild entspricht.
 
Zurück
Oben