Witam. Robię sklep internetowy a w nim mam dodawanie do koszyka. Odbywa się to za pomocą AJAXa(kod:
<script type="text/javascript"> function getXMLHttpRequestObject(){
try{
return new XMLHttpRequest();
}
catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
return false;
}
}
}
function buy(){
var XMLHttpRequestObject = getXMLHttpRequestObject();
if(XMLHttpRequestObject){
var th = document.getElementById("idbuy");
var url = "http://194.63.135.234/~sklep/buy.php?id=1";
XMLHttpRequestObject.open("GET", url);
XMLHttpRequestObject.onreadystatechange = function(){
if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
th.innerHTML = XMLHttpRequestObject.responseText;
delete XMLHttpRequestObject;
XMLHttpRequestObject = false
}
}
XMLHttpRequestObject.send(null)
}
}
)
czyli ktoś klika na dodaj do koszyka i w komórkę idbuy jest wczytywana strona buy.php?id=1(kod:
<?php
include('config.php');
$zapyt = query('koszyk', \"`id_produktu` = '\".$_GET['id'].\"'\");
$ilosc = mnr($zapyt);
$row = mfa($zapyt);
//print_r($row);
if($_SESSION['zalogowany']){
if($ilosc == 1){
$alert = '<font color=\"red\">'.RESERVED.'';
}
else{
$dodaj = mysql_query(\"INSERT INTO `koszyk` ( `ID` , `id_usera` , `id_produktu` , `data` , `ip` , `status`) VALUES( '',
'\".$_SESSION['ID'].\"',
'\".$_GET['id'].\"',
'\".date(\"Y.m.d H:i\").\"',
'\".$_SERVER['REMOTE_ADDR'].\"',
'0'
)\");
if($dodaj){
$alert = '<font color=\"green\">'.ADDED_TO_BASKET.'';
}
else{
$alert = '<font color=\"red\">'.ERR_ADDED_TO_BASKET.'';
}
}
}
?>
)
Mój problem polega na tym, że ktoś widzi jaka strona jest wczytywana i może bezpośrednio wejść na nią, a jak wejdzie to odrazu doda się do koszyka. Chcę to zabezpieczyć, że dodać tylko można ze strony produktu. Próbowałem przez $_SERVER['PHP_SELF']; ale to ma wartość buy.php. Czy ktoś ma jakiś pomysł

</font color=\"red\"></font color=\"green\"></font color=\"red\">
Ten post edytował Mlodycompany 19.07.2008, 09:26:01