ugrás a tartalomhoz

Meghatározott "feldolgozó" oldalakat ne lehessen megnyitni

Anonymous · 2005. Aug. 4. (Cs), 21.39
Helló!

valami.html

<html>

<head>
  <title></title>
</head>

<body>
<form action="feld.php" method="post">
<input type="text" name="a">
<input type="submit">
</body>

</html>
feldolgozo.php

<?php

echo $_POST["a"];

?>
Meg tudom azt valahogyan csinálni, hogy csak akkor hajtódjon végre a pHp kód, ha a valami.html oldal "hívta meg"? Tehát akkor ne történjen semmi (legfeljebb egy hibaüzenet), ha vki így próbálkozik: kerdes.hu/feldolgozo.php.
 
1

ellenőrizni kellene a POST adatokat

Hojtsy Gábor · 2005. Aug. 4. (Cs), 21.57
Érdemes lenne egy kezdőknek szóló űrlapfeldolgozásról szóló cikket elolvasni. Ugye neked az a fontos, hogy jöjjön adat:

<?php
if (isset($_POST['a'])) {
  // ...
}
?>
2

<Nincs cím>

Anonymous · 2005. Aug. 4. (Cs), 22.02
Jó, az rendben, hogy az isset-tel megnézem, hogy létezik-e a változó, erre én is gondoltam, de nincs más módszer? (Nem mintha ez így nagyon rossz lenne...)
3

<Nincs cím>

Fekete Ferenc GDA · 2005. Aug. 4. (Cs), 22.07
nézd meg a referer-t és ha a valami.html volt az, akkor végrehajtod.
4

nem garancia

Hojtsy Gábor · 2005. Aug. 4. (Cs), 22.25
A referer természetesen beállítható bármire a kliens oldalon a kérés elküldésekor. Az, hogy a referer az elvárt értékű, még nem jelenti azt, hogy tényleg onnan jött a felhasználó. Ha nincs beállítva, az pedig nem jelenti, hogy nem onnan jött.
5

<Nincs cím>

attlad · 2005. Aug. 4. (Cs), 22.49
Vannak akik blockedReferrer-t vagy Hidden-Referrer-t küldenek csak, gondolom van olyan tűzfal vagy víruskereső program, ami erre állítja át. Én is letiltom Firefoxban, hogy pl. localhostos referreket ne küldözgessek ki feleslegesen, ha épp külső link van egy belső oldalon. Szóval ha nincs különösebben oka, akkor nem feltétlenül ajánlott a referrer-t vizsgálni.

Néha persze hasznos lehet: http://www.alistapart.com/articles/hotlinking/

Attila
6

<Nincs cím>

Anonymous · 2005. Aug. 4. (Cs), 23.18
Én ugy szoktam, hogy a form actionbe nem kozvetlen a feldolgozo.php-t irom, hanem pl.: index.php?content=feldolgoz, a get["content"]-et vizsgálom az index.php-ben, és ennek megfelelően beincludolom a feldolgozo.php-t. A feldolgozo.php elejen pedig vizsgálom, hogy az éppen futó fájl neve index.php-e, ha nem, akkor közvetlenül a feldolgozo.php-t írták az url-be, és dobok egy die("üzenetet")-et. Remélem érthető :) (hasonló mint php-nuke-nel a modules.php)

üdv.: Zsolt