Avatar billede kroning Nybegynder
28. september 2003 - 13:49 Der er 13 kommentarer og
1 løsning

Check om side kaldes fra index.html

Jeg har en side baseret på rammer, hoved html´en hedder index.html denne har så nogle rammer som fyldes ud med nogle php filer. Kan man i disse php filer checke om det er index filen der har kaldt eller om php siden er kaldt direkte?

Det jeg gerne vil have er at hvis den enkelte php finder ud af at den er kaldt direkte så skal der laves en redirect til index filen. Problemet opstår når diverse søge robotter laver direkte link til undersider.

Mvh
HK
Avatar billede avminarm Juniormester
28. september 2003 - 13:54 #1
du kan lave en fil: robots.txt og smide i den hvad de ikke skal finde:

User-agent: *
Disallow: admin.php
Disallow: top.php

osv.
Avatar billede roenving Novice
28. september 2003 - 13:56 #2
Du kan se min metode i html/javascript på:
http://roenving.users.whitehat.dk/WD3Input.html

-- bemærk adresselinjen efter ankomst og se koden og forklaringen ved at trykke på teksten forneden til venstre (om framing !-)
Avatar billede avminarm Juniormester
28. september 2003 - 13:58 #3
hov robots.txt skal selvfølgelig ligge i roden.

evt. kan du smide denne stump i toppen af dine php-filer

if(!eregi("index.html", $_SERVER['PHP_SELF'])) {
    die ("nallerne væk du - gå via index...");
}
Avatar billede kroning Nybegynder
28. september 2003 - 14:48 #4
Jeg har kikket på $_SERVER['PHP_SELF'], men værdien er den samme uanset om php´en kaldes fra min index fil eller den kaldes direkte.
Avatar billede sukos Juniormester
28. september 2003 - 16:54 #5
html filer plejer ikke at kunne bruge PHP koder.

En usikker måde, er at bruge $_SERVER["HTTP_REFERER"]

if(!preg_match("/index.html/", $_SERVER["HTTP_REFERER"])) {
header("Location:/");
exit;

En anden måde jeg nok ville bruge, er med sessions.
D.v.s tjekke om en session er sat, og hvis ikke, sæt den lig med 0 og ellers opdatere den hver load:

if(!isset($_SESSION["start"])) {
$_SESSION["start"] = 0;
header("Location:/");
exit;
}else{
$_SESSION["start"]++;
}
Avatar billede sukos Juniormester
28. september 2003 - 16:56 #6
hmm, som det første på dine PHP-sider:

<?php
sessions_start();

if(!isset($_SESSION["start"])) {
$_SESSION["start"] = 0;
header("Location:/");
exit;
}else{
$_SESSION["start"]++;
}
?>
resten af dine PHP-sider......................

Kan jo så osse bruges til lidt statistik? :O)
Avatar billede kroning Nybegynder
28. september 2003 - 17:48 #7
Ser ikke ud til at virke, jeg tror at der sker det at når header("Location:/"); kaldes så loades hele siden i den ramme som php´en nu befinder sig i.
Men betyder det ikke at hvis jeg benytter denne metode så vil hele siden blive genindlæst 1 gang selv om en bruger går ind korrekt via index siden.
Avatar billede sukos Juniormester
28. september 2003 - 17:55 #8
Ja, tænkte godt onk på om du brugte frames.
Nemmeste er vist noget javascript,
Avatar billede roenving Novice
13. oktober 2003 - 05:18 #9
Tag fat i javascript-framing !-)
Avatar billede kroning Nybegynder
22. april 2005 - 11:05 #10
Luk
Avatar billede kroning Nybegynder
22. april 2005 - 11:06 #11
Luk da
Avatar billede avminarm Juniormester
22. april 2005 - 20:16 #12
:-) stadig ikke lukket
Avatar billede kroning Nybegynder
22. april 2005 - 20:26 #13
<avminarm> kan du ikke prøve at smide et svar
Avatar billede kroning Nybegynder
22. april 2005 - 20:27 #14
Glem det, nu fandt jeg ud af det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester