hur gör man för att det endast skall gå att skicka ett formulär, det skall vara något liknande det nedan fast i PHP.
<%
If NOT Request.ServerVariables("HTTP_REFERER") = "http://www.minsida.com/" Then
Response.Redirect("http://www.enannansida.com/")
Else
'skriver koden här
End If
%>
------------------
// David - Probably the best guy in the world
Finns ett annat inlägg bara nån dag gammalt som visar hur man gör.
Du bör nog dock vara försiktig med att
använda HTTP_REFERER, du kan inte vara
säker på att den är satt.
Om personen som använder formuläret
har ett program som till exempel
Norton Personal Firewall som blockerar
HTTP_REFERER så buggar formuläret ut eller hur ?
Det kan bli trixigt om du vill begränsa
formuläret på det sättet.
Jag antar att du bara vill se till att
ingen använder formuläret från en annan
sajt ? Isåfall skulle du kunna spara ett
värde i ett hidden fält, till exempel
sessions id ( helst krypterat ) och sedan jämföra sessions id i scriptet
som hanterar formuläret.
Detta skulle garantera att personen
åtminstone kommer från samma server
när han använder formuläret.
Annars kan du helt enkelt använda referer metoden men skriva att vissa firewall program kan eventuellt störa fuktionen av formuläret och att du
rekommenderar att de stänger av programmet om problem skulle uppstå.
eftersom ingen annan har tillgång till servern så låter det där med hidden fält bra, men eftersom jag knappt har nån kunskap om PHP alls så skulle jag behöva lite hjälp.
------------------
// David - Probably the best guy in the world
Om du först går till formulär sidan
får du ju ett session id, om du nu
sparar sidan ( komplett med hidden fältet ) håller browsern uppe och sedan
dubbel klickar på den sparade sidan och
skickar formuläret så har du ju fortfarande samma sessions id eftersom ett browser fönster är uppe.
Jag testade detta på min lokala server
och det funkade, möjligtvis är mina
säkerhets inställningar ändrade för
localhost, man tycker annars att ett
nytt browser fönster borde generera
ett nytt sessions id på servern.
Måste säga att jag blev lite förvånad,
detta var IE 5.5 jag testade med.
Kanske en kombination av metoderna vore
bäst ? Om referer är blockerad ( dvs inte satt ) så kolla hidden fältet.
Njee den ska va med på alla sidor som använder sessions :)
Vet dock inte om den ändrar session_id() men det bör den inte göra... Det skulle betyda att den lagrar en ny session ju, vilket den inte gör.
Är inte säker på att den inte ändrar, men jag tror inte det :)