# Zufällige Seite laden



## webmaster05 (14. Mai 2005)

Hi, bin Webmaster und möcht für meine Besucher unterschiedliche Startseiten.
D.h. man gibt z.B. www.123.de ein und wird per Zufall auf www.123.de/index1 oder auf 
/index2 u.s.w. geschickt. 

oder

Man gibt www.123.de/index0 ein und wird wieder per Zufall auf /index1
oder /index2 weitergeleitet.

Ist das möglich? Kann mir bitte jemand helfen?


----------



## webmaster05 (14. Mai 2005)

www123.de ist nur ein Beispiel und keine richtige Adresse.


----------



## Illuvatar (14. Mai 2005)

Schau mal das an:

```
<html>

<head>
<title>Neue Seite 1</title>
<script type="text/javascript">
function load()
{
 var random = Math.ceil(Math.random() * 10);
 var href = '../index' + random;
 window.location.href = href;
}
</script>
</head>

<body onLoad="load()">

</body>

</html>
```


----------



## Marc-André Aßbrock (14. Mai 2005)

Hallo!
Wenn du dies mit JavaScript tun willst hast du das Problem, dass nicht jeder JavaScript unterstützt. Außerdem musst du zwei Seiten laden (die, mit der du die zufällige Seite bestimmst und die zufällige Seite selbst.)
PHP (oder ASP) würden sich da schon ehr anbieten. Unterstützt du PHP und kennst du dich etwas damit aus? Soll die Seite völlig anders werden, oder nur einzelne Teile (vielleicht ein zufälliges Zitat oder so)?


----------



## webmaster05 (14. Mai 2005)

@ Illuvatar

Danke für deine Hilfe. Kann man hier mehr Seiten eintragen? Wie funktioniert das ganze? Hab zwar ein Anfänger Tutorial gemacht, aber richtig geholfen hats nicht.


@ Marc-André Aßbrock

Die Seiten sollen anderen Text, Bilder u.s.w. enthalten.
Deswegen die Ide mit der Weiterleitung auf eine Zufällige Seite. Ist PHP auch eine Programmiersprache? Ich Steck da nicht so tief drin.
Kann man auch eine Tabelle schreiben, die ihren Inhalt aus Zufälligen Dateien bezieht?


----------



## webmaster05 (14. Mai 2005)

@ Illuvatar 

Glaube ich hab verstanden. Aber was ist wenn 'random' eine
nicht vergeben Zahl ist? Kann man das noch einschrenken?
Z.B. 1-5 oder 1-22. Hab es getestet und die höchste Zahl war 9 ist das richtig?


----------



## Illuvatar (14. Mai 2005)

Die höchste Zahl ist 10. Math.random() liefert eine zufällige Zahl zwischen 0 und 1. Math.ceil() rundet immer auf. D.h. Math.ceil (Math.random() * 10) ergibt eine Zahl zwischen 0 und 10, wobei die Wahrscheinlichkeit für 0 verschwindend gering ist.


----------



## Marc-André Aßbrock (14. Mai 2005)

zu php: PHP ist eine Scriptsprache wie z.B. JavaScript. Scriptsprache heißt, dass es keine ausführbaren exe-Dateien sind, sondern ein anderes Programm zum Laufen benötigen. Es gibt aber einen gravierenden Unterschied zwischen JavaScript und php: JavaScript wird auf dem Clienten ausgeführt. (Der Client ist der Rechner von dem Besucher der Website.) So kann man mit JavaScript zum Beispiel dynamische Menüs machen oder aber auch Bilder während des Ansehens der Seite ändern.
PHP ist viel mächtiger und wird auf dem Server (Webspace) ausgeführt. Er erstellt dynamisch die Website, die an dem Clienten gesendet wird. Hierdurch lassen sich z.B. Foren wie dieses realisieren.
Ich selbst programmiere beide (und noch mehr) Sprachen. Ich habe auch einige Scripte fertig. Müsste mal gucken, ob für dein Problem ein php-Script schon irgendwo auf meiner Festplatte rumliegt.
Probier aber mal bitte zuerst folgendes aus: Speichere folgenden Code in eine Datei namens info.php (wichtig ist eigentlich nur die Dateiendung .php):
	
	
	
	





```
<?php
phpinfo();
?>
```
Lade diese Datei auf dein Webspace hoch und öffne sie über deinen Internetbrowser (Internet Explorer, Fire Fox, oder womit du auch immer surfst). Was siehst du? Siehst du nur die drei Zeilen Quellcode, oder wird dir eine ganze Seite angezeigt mit jede Menge technischen Informationen? Falls letzteres zutrifft unterstützt dein Webspace php und es lohnt sich weiter zu denken. Ansonsten musst du die JavaScript-Lösung nehmen.


----------



## webmaster (14. Mai 2005)

@ Illuvatar

Funzt super. Danke


@ Marc-André Aßbrock

Bin bei einem Free-Webspace-Anbieter, der das leider nicht unterstützt. Suche mir aber bald eine eigene Domain. PHP haben viele. Kannst den Code bitte trotzdem Posten, dann werd ich ihn später ausprobieren.


----------



## Marc-André Aßbrock (15. Mai 2005)

Hallo!
Sorry erstmal, dass ich nicht schneller antworten konnte, aber hatte keine Zeit. Hier mal der Code, um eine zufällige Auswahl von Bildern auszugeben:

```
<?php
$sVerzeichnis = 'bilder/';		//---Gibt das Verzeichnis an, in denen die Dateien liegen. Es wird empfohlen den nocrmalen Slash (/) zu verwenden, da der Backslash (\) nicht von jedem Betriebssystem unterstützt wird.---
$b = 2;					//---Anzahl der Bilder, die ausgegeben werden sollen---
$alt = 'Ein echt tolles Foto';		//---Alternativ-Text für die Fotos---
$i = 0;
$sBilder = array();
$sFile = null;
$hHandle = opendir($sVerzeichnis);

while ($sFile = readdir($hHandle))
{
if (!is_dir($sFile) && strtolower($sFile) != 'thumbs.db')
	$sBilder[$i++] = "$sVerzeichnis$sFile";
}

closedir($hHandle);

$zufall = array_rand($sBilder, $b);
if($b==1)
{
	echo('[img]' . $sBilder[$zufall] . '[/img]
');
} else  {
	foreach($zufall as $ausgabe)
		{
		echo('[img]' . $sBilder[$ausgabe] . '[/img]
');
		}
	}
?>
```
Wichtig ist, dass die Bilder alle in einem Ordner abgelegt sind. Es dürfen keine anderen Dateien dort vorhanden sein! Wie du siehst stehen oben drei Kommentare, die dir die Einstellungen erklären.

Wenn du willst, dass sich ein Bild während des anguckens verändert, dann kannst du das über JavaScript machen. Wäre ja vielleicht auch interessant. Ein Beispiel davon findest du unter www.esverlag.de. Das habe ich auch geschrieben. Den Quellcode habe ich in ein anderem Forum veröffentlicht. Kannst du also auch verwenden. Nun kannst du natürlich auch mit php dir dein JavaScript theoretisch so generieren lassen, dass ein ganzer Ordner mit Bildern abgewechselt wird. Das habe ich auch schon für jemanden gemacht und veröffentlicht. Kannst du also auch verwenden. Hier mal der Code:

```
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--

<?php
$sVerzeichnis = 'bilder/';		//---Gibt das Verzeichnis an, in denen die Dateien liegen. Es wird empfohlen den nocrmalen Slash (/) zu verwenden, da der Backslash (\) nicht von jedem Betriebssystem unterstützt wird.---
$sek = 2000;				//---Gibt die Zeit in Millisekunden an, in der das Bild wechselt---



function cmp ($a, $b)
{
$alter = array(
	filemtime($a),
	filemtime($b)
	);

if ($alter[0] < $alter[1])
	return -1;
elseif ($alter[0] > $alter[1])
	return 1;
else
	return 0;
}

$i = 0;
$sBilder = array();
$sFile = null;
$hHandle = opendir($sVerzeichnis);
$q=0;

while ($sFile = readdir($hHandle))
{
if (!is_dir($sFile) && strtolower($sFile) != 'thumbs.db')
	$sBilder[$i++] = "$sVerzeichnis$sFile";
}

closedir($hHandle);

uasort($sBilder, 'cmp');

foreach($sBilder as $i) {
	echo("function a" . $q++ . "()\n");
	echo(" {\n");
	echo(" document.getElementsByName(\"bild\")[0].src = \"" . $verzeichnis . $i . "\"\n");
	echo(" window.setTimeout(\"a" . $q . "()\"," . $sek . ");\n");
	echo(" }\n");
}
echo("function a" . $q . "()\n");
echo(" {\n");
echo(" window.setTimeout(\"a0()\"," . $sek . ");\n");
echo(" }\n");

?>
//-->
</script>
<body onload="a0()">
[img]Bilder/100_0003.jpg[/img]
</body>
</html>
```
Die Bilder werden hierbei nach Datum sortiert. Das Sortieren kann man natürlich auch wieder löschen....

Ich hoffe, du kannst damit vielleicht etwas anfangen....
Achso, bevor ich es vergesse: php-Dateien musst du natürlich mit der Dateiendung .php abspeichern!

Zum Thema Webspace: Ich bin momentan auch am überlegen mir eine eigene Website zu machen. Ich werde wenn evt. bei webspeicher24 die Seite hosten. Die scheinen relativ günstig zu sein... (aber soll nur so am Rande erwähnt sein. Ich kenne mich damit nicht so gut aus und weiß auch nicht, wie gut die sind.)

MfG
M.A.


----------



## webmaster05 (16. Mai 2005)

Danke für deine Hilfe M.A.. Hast mich ein ganzes Stück weiter gebracht.

Doch eine Frage zum JavaScript. In Line 60: 

```
[img]Bilder/100_0003.jpg[/img]
```

Steht 'Bilder/' für das Verzeichnis? Und '100_0003.jpg' für das Bild? Im IExplorer kommt nämlich immer nur ein 'X' Symbol und bei Eigenschaften steht: 'file:///C:/.../Bilder/100_0003.jpg das Verzeichnis ändern kann ich noch, aber muss für den Bildnamen noch eine Variable stehen?

Und gleich noch eine Frage, ist es auch möglich den Inhalt (nicht unbedingt ein Script) von .txt oder .htm Dateien anzeigen zu lassen?

Großes thx im Voraus.


----------



## webmaster05 (16. Mai 2005)

PS: nach Line 58 muss noch ein '</head>'.
      Kleiner Schönheitsfehler. Aber gut zu wissen das sowas selbst den Meistern pasiert. 
Das erste Bild wird angezeigt, doch der Wechsel funktioniert leider noch ned.


----------



## Marc-André Aßbrock (16. Mai 2005)

Hallo!
Erstmal zur Zeile 60: Bilder\ ist das Verzeichnis und das andere ist der Dateiname, wie du es schon erraten hast. Hier musst du den Verweis so anpassen, dass das Bild angezeigt wird, mit dem du starten willst. Falls der User JavaScript nicht unterstützt wird nur dieses Bild angezeigt. Wichtig ist, dass du name="bild" dort stehen lässt, weil damit das Bild angesprochen wird.

Mit deinem Schönheitsfehler hast du recht, nur dass ich mich noch nicht als Profi ansehen würde.

Hast du das ganze denn auf php-fähigem Webspace getestet? Falls die Seite online ist poste doch bitte mal den Link.


----------



## webmaster05 (17. Mai 2005)

Hi,
das JScript hab ich jetzt verstanden und es funktioniert. Nochmals Danke.
Den Link werde ich dann gerne Posten.
Z.Z. habe ich noch kein php-fähigen Webspace, interessiere mich aber eher für dieses Angebot


----------



## Marc-André Aßbrock (17. Mai 2005)

Es ist ein JavaScript. JScript ist schon wieder etwas anderes. JScript ist von Microsoft und viel Mächtiger (leider, da gefährlicher).

Falls du php-Seiten voher testen willst kann ich dir xampp empfehlen! Das ist ein Paket mit Webserver (Apache), php und vielen mehr. Dann musst du dir nicht mühsamm alles aus dem Netz zusammensuchen. Leicht zu installieren, also wirklich zum Testen zu empfehlen.


----------



## webmaster05 (17. Mai 2005)

Danke für den Tipp. Werde das Programm gleich mal Testen.
Was Java, JavaScript, JScript, PHP betrift ist das für mich vollkommen unüberschaubar. Ich kann nur etwas HTML & Phyton und bin froh, wenns auch nur Kleinigkeiten sind.


----------



## Marc-André Aßbrock (17. Mai 2005)

OK, von Phyton habe ich keine Ahnung. Aber noch mal eine kurze Zusammenfassung von dem Rest:
JavaScript ist eine Scriptsprache, die der Internetbrowser des Besuchers einer Website interpretiert. Es kann (von Fehlern in den Browsern mal abgesehen) den Computer nicht schaden und auch nicht auf die Festplatte zugreifen.
JScript ist relativ unbekannt. Es ist ebenfalls eine Scriptsprache. Ich kenne sie selber nicht. Aber so weit ich weiß enthält sie die Befehle von JavaScript und kann noch etwas mehr. JScript kann meines Wissens nach auch auf die Festplatte zugreifen und Schaden anrichten. Es funktioniert aber (zum Glück) nur mit dem Internet Explorer und keinen anderen Webbrowser. Aber wie gesagt, dabei bin ich mir auch nicht so sicher.
Java ist eine Programmiersprache, mit der man richtige Anwendungen schreiben kann. Damit kannst du z.B. Spiele oder Office-Anwendungen schreiben. Über Java handelt ja eigentlich dieses Forum. Java ist nicht speziell für das Internet entwickelt, aber es gibt eine Möglichkeit Websiten dynamisch über Java zu erzeugen. Große Seiten sind teilweise mit Java programmiert. Wie das genau geht weiß ich noch nicht, ist aber eh ehr was für Profis.
Dann gibt es da noch die JavaApplets. Damit kenne ich mich auch nicht wirklich aus. Es ist JavaCode, der aber im Webbrowser ausgeführt wird. Also wenn du so willst eine spezielle Form von Java für das Web.
Ich hoffe hierdurch wird es dir etwas klarer. Wenn du weitere Fragen hast kannst du sie ruhig stellen. Oder ansonsten guck mal unter www.masterportal24.com, das ist ein Forum speziell für Webmaster.

MfG
M.A.


----------



## webmaster05 (17. Mai 2005)

Gut, dann werde ich dort mal nachlesen und mich weiter informieren. Nochmals Danke für deine Scripte.


----------



## Marc-André Aßbrock (17. Mai 2005)

ist doch kein Problem. Vielleicht stolperst du dort ja auch wieder darüber...


----------



## Marc-André Aßbrock (25. Mai 2005)

Hallo!
Ich weiß zwar nicht, ob du hier noch ließt, aber falls nicht könnte es ja auch für Andere interessant sein. Ich habe noch einen Link gefunden: Wie kann ich per Zufall includes(); einbinden?
Es geht darum, andere Seiten per Zufallsmechanismus einzubinden. Also genau das, was du gesucht hast.


----------

