pragmaMx Support Forum

pragmaMx => Allgemeines => Thema gestartet von: Phisker am 13 Dezember 2007, 01:36:15

Titel: Vorgeschaltete Seite
Beitrag von: Phisker am 13 Dezember 2007, 01:36:15
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 13 Dezember 2007, 01:59:54
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
:)
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 13 Dezember 2007, 03:50:38
In welche Datei muss denn das rein?
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 13 Dezember 2007, 04:45:07
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 14 Dezember 2007, 12:27:29
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:// )
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 15 Dezember 2007, 03:43:31
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!
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 15 Dezember 2007, 06:52:46
10800 ersetzen durch 3600
(60*60 Sekunden)

mfg
:)
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 15 Dezember 2007, 07:26:37
Supi, danke dir!
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 16 Dezember 2007, 15:59:10
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
:)
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 16 Dezember 2007, 19:15:08
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 "......  ????
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 16 Dezember 2007, 19:46:47
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...
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 17 Dezember 2007, 11:28:46
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 18 Dezember 2007, 14:08:29
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Webfan am 18 Dezember 2007, 15:59:16
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 18 Dezember 2007, 17:51:42
Leider nichts zu machen!
Irgendwie klappt das nicht!

Ps.: Ja habe Cookies gelöscht!
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 21 Dezember 2007, 10:25:44
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
Titel: Re: Vorgeschaltete Seite
Beitrag von: Phisker am 21 Dezember 2007, 22:46:32
Ist es noch irgendwie möglich?