Website mit Zufallsgenerator?
Ich habe eine Website und wenn die Besucher dann einen bestimmten Link anklicken, dann sollen sie auf eine andere Seite von mir weitergeleitet werden (ist ja logisch). Auf der Seite sollen die dann eine Zufällige "Antwort, Wort..." erhalten, die ich vorher schon vordefiniert habe.
Beispiel: Ich habe die Antworten: Hund, Katze und Maus vordefiniert. Der User lädt die Website und bekommt ein Pop-Up, oder was auch immer wo z.B Maus steht. Ein anderer wieder bekommt die Antwort: Hund Und so weiter...
Ich würde mich sehr über eine Antwort freuen und natürlich bin ich auch für Alternativen freuen.
6 Antworten
Zum Beispiel mit PHP, JavaScript, etc. Da es in der Computer-Welt keinen Zufall gibt, muss man sich den Zufall / eine Zufallszahl irgendwo her holen. Dafür wird gerne die aktuelle Uhrzeit des Besuchers genommen. Im Timestamp-Format ist das eine Zufallszahl.
a)
Du löst dies serverseitig, bspw. mit PHP, wenn du einen Webserver hast, der PHP unterstützt. Der Link verweist auf ein PHP-Skript. In dem PHP-Skript legst du ein Array an, in dem alle Begriffe stehen. Dann erzeugst du eine Zufallszahl
http://php.net/manual/de/function.rand.php
in den Grenzen von 0 bis zur Größe des Arrays (0 <= x < length). Den ermittelten Wert verwendest du als Index für das Array und gibst das Element schlussendlich aus.
b)
Du löst dies clientseitig mit JavaScript. Der Algorithmus ist gleich, bis auf der Name der Funktionen:
https://www.w3schools.com/jsref/jsref_random.asp
Das Script wird in einem script-Block eines HTML-Dokument eingebunden. Die Ausgabe könnte bspw. via alert-Befehl erfolgen.
PS: Für Methode a) eignet sich diese Funktion sogar noch besser: http://php.net/manual/de/function.array-rand.php
<?php
$antworten = array("Hund","Katze","Maus");
$ausgabe = $antworten[rand(0, (count($antworten)-1))];
echo "$ausgabe";
?>
Wenn du den Text dann lieber mit JavaScript weiterbearbeiten & ausgeben willst, ersetz den echo Befehl durch diesen hier:
echo "<script> var randWord = \"".$ausgabe."\";<\/script>";
~Tim
den Backslash \ vor dem / musst wegmachen
(PS: das Wort ist dann in randWort gespeichert.)
Kannst du mit PHP machen, bestimmt auch mit JavaScript.
Ja, soweit war ich auch schon, nur mir fehlt bei PHP die nötigen Kenntnisse. Ein Script wäre super. Aber trotzdem Danke für die Antwort!
Zufallszahlen kannst du mit JavaScript erzeugen.
Hier ist mal ein Beispiel
https://jsfiddle.net/wkbdwx15/
Du musst dafür sorgen, dass der Code erst dann ausgeführt wird, wenn der Browser die Seite komplett geladen hat. Versuch das hier:
window.onload = function() {
var arr = ["Hund", "Katze", "Maus"];
document.getElementById("zufaelligeNachricht").innerHTML=arr[randomInteger(arr.length)];
}
So funktioniert es immer noch nicht:
window.onload = function() {
function randomInteger(max) {
return Math.floor(Math.random() * max);
}
var arr = ["Hund", "Katze", "Maus"];
document.getElementById("zufaelligeNachricht").innerHTML=arr[randomInteger(arr.length)];
Also bei mir funktioniert es einwandfrei. Ich habe es in Chrome, Firefox und Edge getestet.
Hier nochmal der gesamte Code:
https://hastebin.com/ijonunabum.xml
Kannst du mir sagen, wo der Fehler ist?
Ich habe den Code von jsfiddle.net in ein Website Script gepackt:
<html>
<head>
<script>
function randomInteger(max) {
return Math.floor(Math.random() * max);
}
var arr = ["Hund", "Katze", "Maus"];
document.getElementById("zufaelligeNachricht").innerHTML=arr[randomInteger(arr.length)];
</script>
</head>
<body>
<div id="zufaelligeNachricht"> </div>
</body>
</html>