PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Zufallsseite (http://www.selfphp.de/forum/showthread.php?t=931)

Franz 15.02.2002 15:52:29

Zufallsseite
 
Hallo!

Ich möchte eine automatische zufällige Weiterleitung mit php generieren. Das ganze HTML-File sieht im Moment folgendermaßen aus:
<html><title>zufall</title><body><center><B>zufallsseite</B>
<?php
start();
function start(){
$i=rand(1,100);
echo "<p><a href='$i.html'>baustelle</a>";
}
?>
<meta http-equiv="refresh" content="1; URL=./baustelle.html">
</center></body></html>
Nun habe ich das Problem, dass ich auf die Variable $i außerhalb von Php nicht zugreifen kann. Könnte ich eine automatische Weiterleitung irgendwie direkt in Php integrieren oder kann ich auf die Variable auch noch außerhalb von php zugreifen, so dass ich nur meine url ändern muss.
MfG
Franz

Damir 15.02.2002 16:09:53

Hi,
kann Dir nicht so ganz folgen aber ich denke, dass Du das so machen willst.
Ansonsten kannst Du eine Weiterleitung mit header erreichen - darf aber vorher nichts zum Browser gesendet werden.
Bye Damir

<html><title>zufall</title><body><center><B>zufallsseite</B>
<?php
start();
function start(){
srand((double)microtime()*1000000);
$i=rand(1,100);
echo '<p><a href="' . $i . '.html">baustelle</a>';
}
?>
</center></body></html>

Franz 15.02.2002 17:32:46

Falsch verstanden
 
Hi!

Erst mal danke, auf eine so schnelle Antwort.
Mein Problem ist aber, dass ich nicht nur einen Link auf die Zufallsseite haben möchte, sondern dass der User automatisch dorthin geleitet wird ohne irgendetwas zu tun.
Die Frage ist also, ob ich diese "Meta-Zeile" irgendwie in php "reinbringen" kann. Diese müßte wohl eher so aussehen, was aber nicht funktioniert, da auf die Zufallsvariable i nicht mehr zugegriffen werden kann und somit die Seite '$i'.html gesucht wird.
<meta http-equiv="refresh" content="1; URL=./'$i'.html">
Der User sollte dann z.B. automatisch auf die Seite 54.html weitergeleitet werden.
Die Weiterleitung kann ich mit dieser Meta-Zeile erzwingen, ich weiss aber nicht, wie ich eine Zufallszahl dafür ereugen kann.
Franz

Matthias 15.02.2002 17:41:03

Wie Damir oben schon geschrieben hat.

<?PHP
mt_srand((double)microtime()*1000000);
$i=mt_rand(1,54);
echo"<meta http-equiv="refresh" content="1; URL=$i.html">";
?>

schau dir auch noch die beiden Funktionen an:
mt_srand()
und
mt_rand()

Matthias

Franz 15.02.2002 19:10:27

Danke
 
Alles klar!

Vielen,vielen Dank!

Franz

burn-hard 19.05.2009 15:33:14

AW: Zufallsseite
 
Servus Community!

Ich bin mit PHP absolut unerfahren und ersuche um Hilfe bezüglich einer "zufälligen Weiterleitung". Der hier von Matthias dargestellte Code führt bei mir zur Fehlermeldung:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\Programme\Joshua\server\xampp\htdocs\start\index.php on line 4

Ich bin mir sicher, dass ich selbst für den Fehler verantwortlich bin, aber ohne Hilfe werde ich das Problem nicht lösen können. Ich habe den Code in eine Datei Namens index.php kopiert. Zudem habe ich in das selbige Verzeichnis 10 html-Dateien mit den Namen 1.html - 10.html abgelegt und bin nun davon ausgegangen, das Matthias-Code bei Aufruf der index.php eine der 10 Dateien zufällig anzeigt, was jedoch ein Trugschluss zu sein scheint.

Kann mir jemand erklären, was ich falsch gemacht habe?

Ich würde mich über eine Lösung sehr freuen und möchte nochmals darauf hinweisen, dass ich von PHP eigentlich keine Ahnung habe, aber dieser Sprache vertraue, weil ich auch ein PHPBB-Forum benutze.

Mit lieben Grüßen

burn-hard



Zitat:

Zitat von Matthias (Beitrag 6406)
Wie Damir oben schon geschrieben hat.

<?PHP
mt_srand((double)microtime()*1000000);
$i=mt_rand(1,54);
echo"<meta http-equiv="refresh" content="1; URL=$i.html">";
?>

schau dir auch noch die beiden Funktionen an:
mt_srand()
und
mt_rand()

Matthias


DokuLeseHemmung 19.05.2009 15:49:51

AW: Zufallsseite
 
PHP-Code:

<?php
$i 
mt_rand(1,10);
$wohin "http://example.com/$i.html";
header("Location:  $wohin";


burn-hard 19.05.2009 16:27:09

AW: Zufallsseite
 
Servus DokuLeseHemmung,

vielen Dank für Deine Hilfe, jedoch fehlt ")" vor dem ";" in Zeile vier.
Ansonsten funktioniert der Code, habe jedoch noch eine kleine Frage:

Meine html-Dateien, auf welche zufällig weitergeleitet wird, haben ürsprünglich eine Namen wie z.B. effe-unab.html oder nach-konse.html welche sich so nicht mit dem Code von "Dokulesehemmung" zufällig aufrufen lassen. Gibt es eine Möglichkeit, auf Dateien mit solchen Namen zufällig weiter leiten zu lassen, ohne den Dateinamen abzuändern?

Natürlich wär ich auch sehr froh, wenn man mir erklären könnte wie das funktioniert, falls es überhaupt funktioniert.


Liebe Grüße

burn-hard

DokuLeseHemmung 19.05.2009 16:41:57

AW: Zufallsseite
 
PHP-Code:

$alle glob('*.html');
shuffle($alle);
$eine array_pop($alle);
header("Location: http://example.com/$eine"); 


burn-hard 19.05.2009 17:33:11

AW: Zufallsseite
 
Servus DokuLeseHemmung!

Vielen Dank für Deine Hilfe. Der Code funktioniert perfekt!


Liebe Grüße

burn-hard


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33:53 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.