Webseite mit Random Seiten und idealerweise mit IP-Sperre

klausi89

Erfahrenes Mitglied
Hallo kurz zu meinem Anliegen:

Ich möchte gerne eine Seite machen wo ich z.Bsp. 10 Unterseiten habe,
bei Aufruf der Startseite bekommt man nur einen Button
bei klick auf diesem soll per mt_rand, shuffle etc. eine der 10 Seiten ausgewählt werden
idealerweise nach buttonklick öffnet sich ein Modal wo z.bsp ein bild von der Seite erscheint und/oder ein link
inklusive weiterleitung nach ein paar sekunden.
z.Bsp.
"Sie haben Seite 3 gewürfelt, sie werden jetzt weitergeleitet -> www.meineSeite.com/seite10.php"

ideal wäre auch noch eine IP-Sperre, wo ein User auf der Hauptseite nur z.Bsp. aller 5 Minuten eine Seite auswählen/würfeln kann.


Ich würde gerne mal eure Meinungen hören wie ihr das am besten lösen würdet.
Danke schon mal für eure Antworten.
 
Ja wie du schon sagst. Erst mit Random eine Zahl ermitteln. ( js oder pho )
Mit der Zahl holst du den Link aus den array.( js oder php. Aber wahrscheinlich php weil sonst die ip sperre ja nix bring)
Dann mit setTimeout nach 3 Sekunden den Link öffnen ('beides mit js').
Gleichzeitig mußt du die ip ja speichern . ( txt,csv oder Datenbank. Nur kein Cookie ).
Dann mußt du auf der Startseite noch eine Abfrage machen ob die ip schon gespeichert ist , und wann sie gespeichert wurde.
Sind 5 minuten oder länger vorbei kommt mit Random wieder eine neue Seite.

Eigentlich ganz simpel und leicht zuerstellen.
 
hmm für mich leider nicht, das übersteigt dann doch meine Kenntnisse.....habe jetzt im ersten ansatz einen button auf der Page...diesen kann man drücken dann geht ein Modal auf und es wird aus einer übergebenen variable ein random link ausgegeben.

Leider bekomme ich die Reload Sperre nicht wirklich hin

hab da diesen Ansatz....aber irgendwas stimmt da nicht gibt mir 2 fehler aus

PHP:
function ipsperre ($remote) {
$sperre = 60; // Sperrzeit in Sekunden
$ip_list_array = file("ip/iplist.txt");
$ip_list = fopen("ip/iplist.txt", "w");
$zeit = time();

for($i=0; $i<count($ip_list_array);$i++){
list($ip_ex, $zeit_ex) = explode("|", $ip_list_array[$i]);
if ($zeit < ($zeit_ex+$sperre)){
fwrite($ip_list, $ip_ex. "|" .$zeit_ex);

if ($ip_ex == $remote){
    $return = 1;
    $GLOBALS["waiting"] = $sperre + ($zeit_ex - time());
}}   
}
if($return !=1){
fwrite($ip_list, $remote. "|" .$zeit);
}
fclose($ip_list);
return ($return == 1);
}

und der Aufruf im Contentbereich dann eben so:

PHP:
if (ipsperre($remote)==1){
echo "IP vorhanden: Bitte" .$waiting. "Sekunden warten";   
}
else {
  echo '<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#Site">Open Modal</button>'; 
}

Weiß aber nicht weiter.....:-(
 
Danke Basti für deine Antwort, das ganze sieht schon so ziemlich so aus wie ich das gemeint habe.
Leider komm ich da nicht an den "Code des Scriptes". Sollte das ein Link sein ?

Gruß

Ach Doch steht alles ganz unten...danke schonmal werde es heute gleich noch ausprobieren.
 
Also ich habe es mal eingebaut aber leider ist das nicht ganz so wie ich mir das dachte,

der Button soll bei Pageaufruf zu sehen sein
den klickt man an und dann geht ein modal auf und zeigt mir sie können Page3 besuchen
nun hier geht es dann im modal mit weiterem inhalt weiter
geht der User nun wieder auf die Hauptseite soll der Button für ihn nicht angezeigt werden (im idealfall mit Uhr) wenn die IP-Sperre noch nicht abgelaufen ist

hab es probiert aus deinem was zu machen aber gerade mit dem ganzen javascript kenn ich mich nun wirklich nicht aus. Trotzdem danke für deine Mühe.
 
Das läßt sich ja ändern.
Also man geht auf der Seite und ein Button soll da sein.Dann klickt man ihn und eine Seite geht im Modal auf.
Klickt man den Button und man ist noch in der Speerzeit ,dann soll da stehen das man erst in x Sekunden wieder kommen darf. ?
So richtig ?
Also statt Seiten aufruf soll die Seite in ein Modal geöffnet sein.

Wo kommen den die Daten auf den Modal her ? Sollen die mit in den Script stehen ? Oder über Ajax geholt werden ? Oder per include? Oder als iframe ?

Das müßte ich dann noch wissen wie du dir das gedacht hast ?
 
Na fast richtig, es geht einfach ein modal auf wo eben drin steht es ist die Seite 5 gewählt wurden....sie werden weitergeleitet (z.bsp.)

und ist man noch in der IP Sperre wäre es noch schöner wenn man dann garkeinen Button auf der hauptseite hat sondern eben nur z.Bsp. "sie müssen noch xx sek. warten" ...oder ne uhr wie auch immer

mein ansatz war bis jetzt das ich alle Seiten in einem Array angelegt habe:

so ->

PHP:
$content_files = array();
$content_files['0'] = "<a href='seite0/index.php'></a>";
$content_files['1'] = "<a href='seite1/index.php'></a>";
$content_files['2'] = "<a href='seite2/index.php'></a>";
$content_files['3'] = "<a href='seite3/index.php'></a>";
$content_files['4'] = "<a href='seite4/index.php'></a>";
$content_files['5'] = "<a href='seite5/index.php'></a>";
$content_files['6'] = "<a href='seite6/index.php'></a>";
$content_files['7'] = "<a href='seite7/index.php'></a>";
$content_files['8'] = "<a href='seite8/index.php'></a>";
$content_files['9'] = "<a href='seite9/index.php'></a>";
$content_files['10'] = "<a href='seite10/index.php'></a>";
$content_files['11'] = "<a href='seite11/index.php'></a>";
$content_files['12'] = "<a href='seite12/index.php'></a>";
$content_files['13'] = "<a href='seite13/index.php'></a>";

dieses wird dann gemischt

PHP:
$random = mt_rand(0, count($content_files) - 1);
$link = $content_files[$random];

dann im Template wird das Modal aufgerufen (bootstrap)

HTML:
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#Site">Open Modal</button>

im Modal selber wird dann eben abgefragt was die Variable $link nun enthält und gibt demensprechend content aus, ist sicher auch keine gute Lösung aber es funktioniert (für Verbesserungsvorschläge bin ich immer offen, bin noch viel am lernen in Sachen PHP und Mysql).

Code:
 <div class="modal fade" id="Site" role="dialog">
    <div class="modal-dialog modal-lg">
    
     <?php // <!-- Modal content--> ?>
      <div class="modal-content" style="background-color:#313131; border-color: #000000;">
        <div class="modal-header" style="border-color:#000000;">
          <button type="button" class="close" data-dismiss="modal"><i class="fa fa-times" style="color: #ffffff;" aria-hidden="true"></i></button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>     
          
          
          
         <div class="btn btn-success btn-block btn-lg text-center">
           <?php
          
           if($link === $content_files['0'])
             {
              echo '<img class="img-responsive" alt="Bild0" src="images/bild0.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['1'])
             {
              echo '<img class="img-responsive" alt="Bild1" src="images/bild1.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['2'])
             {
              echo '<img class="img-responsive" alt="Bild2" src="images/bild2.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['3'])
             {
              echo '<img class="img-responsive" alt="Bild3" src="images/bild3.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['5'])
             {
              echo '<img class="img-responsive" alt="Bild4" src="images/bild4.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['6'])
             {
              echo '<img class="img-responsive" alt="Bild6" src="images/bild6.png"> du wirst jetzt weitergeleitet !!!';
             }     
           if($link === $content_files['7'])
             {
              echo '<img class="img-responsive" alt="Bild7" src="images/bild7.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['8'])
             {
              echo '<img class="img-responsive" alt="Bild8" src="images/bild8.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['9'])
             {
              echo '<img class="img-responsive" alt="Bild9" src="images/bild9.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['10'])
             {
              echo '<img class="img-responsive" alt="Bild10" src="images/bild10.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['11'])
             {
              echo '<img class="img-responsive" alt="Bild11" src="images/bild11.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['12'])
             {
              echo '<img class="img-responsive" alt="Bild12" src="images/bild12.png"> du wirst jetzt weitergeleitet !!!';
             }
           if($link === $content_files['13'])
             {
              echo '<img class="img-responsive" alt="Bild13" src="images/bild13.png"> du wirst jetzt weitergeleitet !!!';
             }
          
            
          ?>
          </div>
                    
          </p>
        </div>
        <div class="modal-footer" style="border-color:#000000;">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>

Das war bis jetzt mein Ansatz dazu, verbesserungsvorschläge immer her :)

P.S. ne Mysqli DB Verbindung stünde auch zur verfügung.
 
ok danke schon wieder aber irgendwie funktioniert das bei mir garnicht..... wenn ich auf den button drücke wird die seite nur etwas dunkler (als würde ein Modal offen sein) und weiter ist keine Aktion möglich :-(
 
Zurück