Vorgeschaltete Seite

Begonnen von Phisker, 13 Dezember 2007, 01:36:15

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Phisker

ich habe mal eine Frage und zwar,

wie ist es möglich eine seite als eine "Vorgeschaltete Seite" zu machen?

Also es ist egal ob ein user z.B

http://www.phisker-produkt.de/main
oder
http://www.phisker-produkt.de/main/News.html

u.s.w

anklickt.

Der User landet immer auf www.phisker-produkt.de, wie ist das möglich? Also es soll so sein.

Wenn ich heute noch nicht auf der Seite war, werde ich auf die http://www.phisker-produkt.de geleitet, also zu der vorgeschalteten. Dies soll 3 Stunden andauern, dass heisst wenn ich nun auf http://www.phisker-produkt.de/main/News.html klicke, gelange ich auch dahin.

Aber nach den 3 Stunden wenn ich dann auf http://www.phisker-produkt.de/main/News.html klicke, soll ich wieder auf http://www.phisker-produkt.de gelangen!

Was ich genau meine, kann man als Beispiel auf gleich genannter Seite sehen.

Wenn ihr auf den link Klickt, kommt ihr zu der vorgeschaltenden Seite, wenn diese einmal da war, wird das in den nächsten 3 Stunden nicht mehr passieren. Klickt ihr nun wieder auf den Link von dr Seite, gelant ihr direkt in die Startseite der eigentlichen Seite. Nach 3 Stunden kommt wieder die vorgeschaltete Seite.

Das wäre die Seite zum Beispiel:
http://www.php-gfx.net

Ich hoffe das einer das verstanden hat :D

Webfan

Hallo Phisker,
das naheliegende wäre einen Cookie zu setzen:

<?php 
$t 
time();
$limit $t 10800// 60*60*3
if(!isset($_COOKIE['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit || $_SESSION['vorschaltseite'] < $limit)
  {
  
$_SESSION['vorschaltseite'] = $t;
  
$exp $t 10800;
  
setcookie("vorschaltseite",$t $exp);
  
header("Location: http://www.phisker-produkt.de");
  }
  
?>


Wenn es ganz wichtig ist kann man auch noch die IP und den Browser ... loggen, damit keiner schummelt.
Wichtig ist, daß vor dem Header senden noch keine andere Ausgabe erfolgt ist, also sollte der Code ganz am Anfang des Scripts gestzt werden, es darf auch kein Leerzeichen davor kommen.

Muß jetzt schlafen  :puzzled:

Gute Nacht
:)

Phisker

In welche Datei muss denn das rein?

Phisker

#3
Das wäre super wenn man das machen kann, so das keiner Schummeln kann.

Dazu, habe ich es nun geschafft es einzubauen :D

Also habe das in der mainfile.php gepackt.

Wenn ich nun irgend nen Link zu meiner Seite hin aufrufe, dann werde ich zur voschaltseite geleitet. Aber nun komme ich garnicht erst auf irgend einer anderen Seite von mir :D

Webfan

#4
Dieser Code sollte es tun, funktioniert nur am Ende der mainfile.php:
$t = time();
$seite= 'localhost/xampp/__pragma/html/';
$limit = $t - 10800; // 60*60*3
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite)
  {

  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 10800;
  setcookie("vorschaltseite",$t , $exp);
  header("Location: http://".$seite);
  }
  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 10800;
  setcookie("vorschaltseite",$t , $exp);
  unset($seite);


Wenn ein Benutzer keine Cookies akzeptiert oder so kann es unter Umständen passieren, daß er nur Deine Vorschaltseite besuchen kann, auch sollte dort zumindest ein Hinweis angebracht sein, daß der Benutzer erst Vorschaltseite besuchen muß um zur gewünschten $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] zu gelangen.

mfg
:)

EDIT:
$seite = mußt Du natürlich entspr. anpassen (ohne http:// )

Phisker

Super, das klappt wunderbar!

So also wenn ich das erste mal auf meiner Seite will, komme ich zur vorgeschalteten Seite, so soll e sein! Wenn ich die Seite dann wieder aufrufe, dann komme ich zur richtigen Seite!

Wie lange dauert es denn bis die vorschalt seite nach einem wiederaufruf der Seite erscheint? Wäre super wenn es besser nach einer Stunde wäre!

Webfan

10800 ersetzen durch 3600
(60*60 Sekunden)

mfg
:)


Webfan

Beachte bitte bei der ganzen Angelegenheit bitte, daß eine Suchmaschine zunächst immer Deine vorgeschaltete Seite zu sehen bekommt, sofern Du kein SUMA-spezifisches Cloaking anwendest, egal welche URL sie aufruft. Das ganze könnte verherende Auswirkungen für Deine Positionierung in den Suchmaschinen haben.
Nicht das es heißt, ich hätte Dich nicht gewarnt.

mfg
:)

Phisker

Ach, das ist nicht weiter schlimm!

Ich versuche das mit dieser Optimierung zu ändern, dabei frage ich aber "WIE GEHEEET DAS" ? ;)

geht das nicht auch mit:

<meta "......  ????

Webfan

#10
ZitatAch, das ist nicht weiter schlimm!
Wenn Du meinst.

Zitat"WIE GEHEEET DAS" ?

Ungetestet:
$suma = 0;
$crawlers = array(
                  'googlebot',
                  'yahoo',
                  // usw...
                  );

$visitorhost = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$visitorhost = parse_url($visitorhost);
$visitorhost = $visitorhost['host'];
$subs = explode( ".", $visitorhost );
foreach($subs as $key => $value){
                                if(array_key_exists($value, $crawlers) )
                                 $suma = 1;
                                }

$t = time();
$seite= 'localhost/xampp/__pragma/html/';
$limit = $t - 10800; // 60*60*3
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1 )
  {

  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 10800;
  setcookie("vorschaltseite",$t , $exp);
  header("Location: http://".$seite);
  }
  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 10800;
  setcookie("vorschaltseite",$t , $exp);
  unset($seite,$suma,$crawlers,$limit);


mfg

EDIT:
- Ist is_inarray vielleicht besser hier !?
Ich verwechsel das immer mit array_key_exists... mußt Du mal schauen...

Webfan

Hallo,
um den Fehler (aus dem anderen Thread) zu vermeiden kann die if-Bedingung erweitert werden (schauen ob Modul geladen):
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1  && isset($modfile) )

oder
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1 && isset($_GET['name']) && !empty($_GET['name']) )


ZitatAber wenn ich include, dann so oder?

<?
include("SEITE.php");
?>

und das ganz am Anfang der Datei dann, wo die Seite kommen soll oder?

Aber das wird ja krass ^^ lol, gib es keine Lösung das es dennoch klappt?
Wenn Du das so in etwa am Anfang der Index Datei der entsprechenden Module machst sollte es klappen.
Die obenstehende(n) Lösunge(n) sind natürlich weniger Arbeit, jedoch will ich jetzt nicht garantieren, daß nicht noch ein Fall auftreten kann (so wie beim Captcha) und irgendeine Datei ausversehen vor Direktaufruf geschützt wird. (Wobei $_GET['name'] eigentlich ziemlich eindeutig auf ein Modul hinweisen würde.)

mfg

Phisker

Hy,

hab heute mal geschafft, das zu testen, habe folgenden Code nun in die mainfile.php gepackt:

$suma = 0;
$crawlers = array(
                  'googlebot',
                  'msnbot',
                  'yahoo',
                  'Yahoo! Slurp',
                  );

$visitorhost = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$visitorhost = parse_url($visitorhost);
$visitorhost = $visitorhost['host'];
$subs = explode( ".", $visitorhost );
foreach($subs as $key => $value){
                                if(array_key_exists($value, $crawlers) )
                                 $suma = 1;
                                }

$t = time();
$seite= 'www.phisker-produkt.de';
$limit = $t - 3600; // 60*60*3

if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1  && isset($modfile) )
   
  {

  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 3600;
  setcookie("vorschaltseite",$t , $exp);
  header("Location: http://".$seite);
  }
  $_SESSION['vorschaltseite'] = $t;
  $exp = $t + 3600;
  setcookie("vorschaltseite",$t , $exp);
  unset($seite,$suma,$crawlers,$limit);


Trotzdem wird aber die vorschaltseite nicht angezeigt, es kommt immer die normale Seite.....

habe auch den Code ausprobiert:

if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1 && isset($_GET['name']) && !empty($_GET['name']) )


geht auch nicht!

Kann mir einer weiter helfen?

Gruß
Benny

Webfan

Dann teste mal mit:
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
    &&  $suma!=1  && mxModFileLoaded == 1 )

oder
if( (empty($_COOKIE['vorschaltseite']) || !isset($_SESSION['vorschaltseite']) || $_COOKIE['vorschaltseite'] < $limit
    || $_SESSION['vorschaltseite'] < $limit )&& $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] != $seite
      && mxModFileLoaded == 1 )

fasl der Suma-Code falsch ist.

mfg

EDIT:
Und natürlich Cookies/Browsercache löschen

Phisker

Leider nichts zu machen!
Irgendwie klappt das nicht!

Ps.: Ja habe Cookies gelöscht!

Phisker

Ist da noch etwas zu machen? Oder geht das absolut nicht anders? Also das klappt irgendwie mit dem neuen Code nicht ganz!

Wäre dankbar für weitere Hilfe!

Gruß
Benny

Phisker

Ist es noch irgendwie möglich?