Aynı sayfada çalıştırdığınızda, atıyorum index.php?islem=guncelle diyerek post edebilirsiniz. Ancak bunda küçük bir eksik olur. Yani sitenize zarar vermek isteyen biri "index.php?islem=guncelle" sayfasına farklı bir formdan post işlemi gerçekleştirebilir. Ne kadar işe yarar bilmiyorum ama ben genelde bu tür sayfalarda şu fonksiyonu kullanıyorum.
<?php
function ajax_securty(){
if (empty($_SERVER['HTTP_REFERER'])){
exit;
}else{
$control = strpos($_SERVER['HTTP_REFERER'],'http://www.siteadresi.com');
$control2 = strpos($_SERVER['HTTP_REFERER'],'http://siteadresi.com');
if ($control === false and $control2 === false){
exit;
}
}
}
?>bu fonksiyonu şu şekilde kullanabilirsiniz.
if (isset ($_GET['islem']) ) {
$islem = $_GET['islem'];
if($islem=="guncelle"){
ajax_securty();
// işlemler
}
}
bu fonksiyon sayesinde post edilen sayfa yani referer adresi sizin siteniz dışından geliyorsa sayfanın çalışmasını durduracak ve post işlemi gerçekleştirmeyecek.
Yani güzel bir deneme.php sayfası yazarsak şöyle olur
<?php
function ajax_securty(){
if (empty($_SERVER['HTTP_REFERER'])){
exit;
}else{
$control = strpos($_SERVER['HTTP_REFERER'],'http://www.siteadresi.com');
$control2 = strpos($_SERVER['HTTP_REFERER'],'http://siteadresi.com');
if ($control === false and $control2 === false){
exit;
}
}
}
if (isset($_GET['islem'])){
if ($_GET['islem'] == 'guncelle'){
ajax_securty();
// yapılacak işlemler
}
}
?>
<html>
<head>
<script type="text/javascript">
function deneme() {
$.ajax({
type:"POST",
url:"deneme.php?islem=guncelle",
data:$('#deneme_form').serialize(),
success: function(sonuc){
if(sonuc=='ok'){
alert("Başarıyla eklendi");
}else if(sonuc=='hata'){
alert("Bir hata oluştu");
}
}
});
}
</script>
</head>
<body>
<form id="deneme_form" onsubmit="return false;" method="post">
<input type="text" name="k_adi" />
<input type="submit" value="gönder" onClick="deneme()" />
</form>
</body>
</html>