# Zugriff NUR über index.html...



## prysma (23. Februar 2008)

Hallo 

Ich betreibe seit Jahren ein kleines Anzeigen-Portal. 
Bisher war es mir ziemlich egal, wie Leser dieses Portal betreten - entweder mir dem Aufruf der Hauptseite ( /root/index.html ), oder direkt das Herstück des Portals anwählen ( /root/anzeigen/anzeigen.cgi
Nun werden die Zugriffe auf das Portal jedoch Häufiger und ich möchte Werbung auf der Hauptseite placieren, die jeder Besucher sehen soll.

Wie ist es programmiertechnisch möglich, dass ein Besucher grundsätzlich immer über die index.html geleitet wird und keinen direkten Zugriff auf das "anzeigen.cgi" erhält?

Ich würde mich über einen Ratschlag freuen.

Jürgen


----------



## ROXON (1. März 2008)

Naja ich würde es mit php machen, weiß nicht ob es die beste Lösung ist und ob du php benutzen darfst/kannst da du index.*html* gesagt hast .

Auf index.php eine session stellen und auf den anderen Seiten prüfen ob es diese session gibt.
Eigentlich ganz einfach.


----------



## prysma (1. März 2008)

Hi ROXON,
erst mal herzlichen Dank für Deine Hilfe.

Ich bin leider kein Programmierer und schiebe lediglich einige Code-Teile zusammen, die mir logisch erscheinen. Wie man also so eine Session über PHP realisiert, ist mir daher gänzlich unbekannt. Ich müsste mich sicher erst einmal in die Sprache einlesen. 

Ich dachte daran, dass hier vielleicht jemand ein ähnliches Problem schon mal gelöst hat, und einige Code-Schnipsel bereit stehen.

Nochmals danke...


----------



## ROXON (2. März 2008)

Falls du php benutzen kannst mach aus deiner index.html eine index.php. Aus den anderen Seiten auf die man nur über die erste Seite zugreifen darf, musst du auch php Dateien machen.
So, dann schreib in deine index.php ganz oben:


```
<? 
session_start( );
$_SESSION['eingang'] = "ok";
?>
```
Und auf Seiten auf die man nur über index.php zugreife darf schreibst du ganz oben:


```
<? 
session_start( );
if($_SESSION['eingang'] == "ok"){
?>
```

Dazwischen kommt deine Seite.
Am Schluss:


```
<?
}else{echo "Sie müssen über die <a href=’index.php’>Hauptseite</a> ";}
?>
```

Aber wie gesagt, *nur wen du php benutzen darfst*.


----------



## prysma (2. März 2008)

Hi ROXON,
danke, dass Du so schnell hilfst  Ich habe jetzt also gemäß Deiner Anleitung oben in meiner index.cgi Deinen ersten Code eingefügt. Das sieht dann so aus:

#!/usr/local/bin/perl

*<? 
session_start( );
$_SESSION['eingang'] = „ok“;
?>* 

unless ($noheader eq "on") {
print "Content-type: text/html\n\n";
}

$os = $^O;

if (($os eq "MSWin32") || ($os eq "Windows_NT") || ($os =~ /win/i)) { $os = "nt"; }
else { $os = "unix"; }

*usw.....
und am Ende*

<?
}else{echo "Sie müssen über die <a href=’index.php’>Hauptseite</a> ";}
?> 


*Meine Index.html sieht nun entprechend so aus:*


*<? 
session_start( );
$_SESSION['eingang'] = „ok“;
?> *

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta name="keywords"
        content=Schlüsselworte ...
  <meta name="description"
...


*Leider führt das aber zu einem Server-Error 500.*

Alle anderen Dateine habe ich unverändert gelassen,
da sich hierüber niemand auf die Seiten einloggt.


----------

