seite immer anzeigen außer cookie ist schon da

Linyx

Mitglied
hallo ich habe ein problem und zwar bräuchte ich ein script was leute immer auf die index.html befördert außer sie waren schoneinmal drauf und haben auf enter geklickt wenn sie auf enter geklickt haben soll das in den cookies gespeichert werden und sie können die anderen seiten sehen z.B. http://meineseite.de/index.php wenn sie allerdings nicht auf enter geklickt haben können sie nicht die seite http://meineseite.de/index.php sehen also sie müssen aufjedenfall auf enter geklickt haben.


MFG
Linyx
 
Du schreibst auf deiner index.html. Normalerweise werden html Dateien nicht von PHP ausgeführt, d.h. es wird dir in diesem Falle nichts nutzen.

Falls dem nicht so ist, kann man natürlich das ganze mit Sessions realisieren.
Ist der Enter Button denn ein Link oder ein richtiger Button, also Teil eines Formulars?

Dementsprechend müsstest du eine Variable setzen, auf die du auch prüfst und falls sie existiert die Session starten.
Auf jeder weiteren Seite müsstest du dann auf prüfen, ob deine Sessionvariable existiert... Falls ja, schön.
Falls nein, ab zum Anfang.
 
index.html
HTML:
<?php
if (isset($_COOKIE['Name']))
{
?>
<script type="text/javascript">
window.location = "index.php";
</script>
<?php
}
?>
<form method="post" action="index.php">
<input type="submit" name="enter" value="Enter" />
<input type="button" onClick="window.location='www.tutorials.de';" value="Leave" />
</form>
index.php
PHP:
if (isset($_POST['enter']))
{
setcookie("Name","Text",time()+60*60*24*30);//Sekunden * Minuten * Stunden * Tage = 30Tage = 1Monat
}

Have Fun ;)
 
Du schreibst auf deiner index.html. Normalerweise werden html Dateien nicht von PHP ausgeführt...
Wird aber standardmäßig, also falls nicht anders gewünscht, bei der Installation von PHP hinzugefügt
Code:
<IfModule php5_module>
    AddType application/x-httpd-php .php .php4 .php5 .phtml .htm .html
    AddType application/x-httpd-php-source .phps .php4s .php5s
    DirectoryIndex index.php index.php4 index.php5
</IfModule>

Falls dem nicht so ist, kann man natürlich das ganze mit Sessions realisieren.
Ist der Enter Button denn ein Link oder ein richtiger Button, also Teil eines Formulars?

Dementsprechend müsstest du eine Variable setzen, auf die du auch prüfst und falls sie existiert die Session starten.
Auf jeder weiteren Seite müsstest du dann auf prüfen, ob deine Sessionvariable existiert... Falls ja, schön.
Falls nein, ab zum Anfang.
Bla bla bla ^^
PHP:
<?php
if(!$_COOKIE['Geklickt']){
  if(!$_POST['Klick']){
    echo("<html>\n".
         "  <head>\n".
         "    <title>Willkommen :D</title>\n".
         "  </head>\n".
         "  <body>\n".
         "    <center><h1>Bitte den Button klicken!</h1></center><br />\n".
         "    <form action='#' method='POST'>\n".
         "      <center>..::<input type='submit' name='Klick' value='Ent0r' />::..</center>\n".
         "    </form>\n".
         "  </body>\n".
         "</html>\n");
  }else{
    setcookie("Geklickt", "Hatta!");
    echo("<html>\n".
         "  <head>\n".
         "    <meta http-equiv='refresh' content='1; url=#'>\n".
         "    <title>Gedulde dich :(</title>\n".
         "  </head>\n".
         "  <body>\n".
         "    <center><h1>Du wirst weitergeleitet...</h1></center>\n".
         "  </body>\n".
         "</html>");
  }
  die();
}
echo("Hier k&auml;me nun die Seite :)");
?>
Schlag mich :)

Edit: Noch einmal für dich geuppt - Beispiel und Skript
 
Zuletzt bearbeitet:
@Nord-Süd-Richtung

es funktioniert leider nicht man wird garnicht auf die index.html geschickt sondern kommt ohne enter zu klicken auf index.php
ich nehme an da ist was falsch:
Code:
<?php
if (isset($_COOKIE['Name']))
{
?>
<script type="text/javascript">
window.location = "index.php";
</script>

kann mir jemand helfen und es mal richtig schreiben?

MFG
Linyx
 
Hmm, wenn man dir zwei Möglichkeiten bietet und eine davon nicht funktionieren möchte, dann (...)?
Merkst du, dass ich etwas eifersüchtig auf Nord-Süd-Richtung bin, weil du seine Möglichkeit gewählt hast? ^^
 
@l0c4lh05t

sorry, aber ich habe mehrere seite und weiß nun nicht wie ich das mit deinem code machen soll damit immer erst die index.html angezeigt wird. wenn man auf enter geklickt hat kann man auch die anderen seiten sehen. deswegen konnte ich deinen nicht nehmen :(

LG
Linyx
 
Indem du auf jede deiner Seiten folgendes schreibst, bevor du die erste Rückgabe an den Client sendest:
PHP:
<?php
if(!$_COOKIE['Geklickt']){
  header('Location: http://url.zur.lo/gin/seite.php');
}
?>
Wobei du http://url.zur.lo/gin/seite.php durch die URL zum Login-Skript ersetzen musst.

Edit: Beim Login-Skript (meins, von oben) ersetzt du
PHP:
echo("Hier k&auml;me nun die Seite :)");
durch
PHP:
header('Location: http://url.zur.ha/upt/seite.php');
und die URL müsstest du dann wieder anpassen.
 
Zuletzt bearbeitet:
@l0c4lh05t

irgendwie klappt das nicht :(

schau mal in den anhang so sieht die seite bei mir aus und wenn man auf enter klickt passiert auch nichts.

MFG
Linyx
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    34,4 KB · Aufrufe: 15
Zurück