PHP Yardım [Eregi]
-
Selam müridler,
Aynı ip´den, aynı oyuna yorum yapıldığında kabul etmemesini istiyorum.
"Daha önce bu oyuna yorum yaptınız" gibi bir uyarı..
comments tablosunun içinde yorumlar; oyun id´leri "gameid" , ip adresi ise, "ip" şeklinde kaydediliyor.
Bunun için eregi fonksiyonunu buldum ama yazamadım. Yardımınız lazım.
if ( eregi( BURAYA YAZAMADIM - AYNI IP VE OYUNID´SİNE 1 DÖNDÜRSÜN ) { echo $yorumyaptiniz; exit( ); }
-
$kisiipsi=ipsini değişkene at
$oyunidsi = burayada yorum atmaya calıstığı oyunun idsini at
$sorgu=mysql_query("select * from comments where ip=$kişiipsi && gameid=$oyunidsi");
eğer sorgu nullsa insert sorgunu çalıştır değilse
echo 'bu oyuna daha önceden yorum attınız' ;
FCN tarafından 17/May/13 18:23 tarihinde düzenlenmiştir -
FCN bunu yazdı
$kisiipsi=ipsini değişkene at
$oyunidsi = burayada yorum atmaya calıstığı oyunun idsini at
$sorgu=mysql_query("select * from comments where ip=$kişiipsi && gameid=$oyunidsi");
eğer sorgu nullsa insert sorgunu çalıştır değilse
echo 'bu oyuna daha önceden yorum attınız' ;
Yaptım hocam ama bi yerde yanlış yapıyorum heralde olmuyo,
$sorgu=mysql_query("select * from comments where ip=$ip && gameid=$gameid");
if($sorgu!="" )
{
echo 'Daha önce yorum attınız';
exit();
}
-
$sql=mysql_query("select * from comments where ip='$ip' and gameid='$gameid'");
$count=mysql_num_rows($sql);
if($count >= 1){
echo 'yazamazsin.';
}else{
echo 'yazabilirsin.';
}
edit: ters olmuş.
Hybris tarafından 17/May/13 20:02 tarihinde düzenlenmiştir -
bilenyok bunu yazdıFCN bunu yazdı
$kisiipsi=ipsini değişkene at
$oyunidsi = burayada yorum atmaya calıstığı oyunun idsini at
$sorgu=mysql_query("select * from comments where ip=$kişiipsi && gameid=$oyunidsi");
eğer sorgu nullsa insert sorgunu çalıştır değilse
echo 'bu oyuna daha önceden yorum attınız' ;
Yaptım hocam ama bi yerde yanlış yapıyorum heralde olmuyo,
$sorgu=mysql_query("select * from comments where ip=$ip && gameid=$gameid");
if($sorgu!="" )
{
echo 'Daha önce yorum attınız';
exit();
}
mysql_affected_rows dönen satır sayısını alır.
$sonucsayisi = mysql_num_rows ($sorgu)
if ($sonucsayisi > 0)
{
die ("daha önce yorum attınız");
}
EDIT : Num Rows muş.. :(
SerYolcu tarafından 17/May/13 20:03 tarihinde düzenlenmiştir -
$gameid=sec($_POST["gameid"]);
$ip=$_SERVER['REMOTE_ADDR'];
$sorgu=mysql_query("select * from comments where ip=$ip && gameid=$gameid");
if($sorgu!="" )
{
echo 'Daha önce yorum attınız';
exit();
}
------------------------
Yukarıdaki kodun bi yerinde sıkıntı var büyük ihtimal ama bulamadım, sorgu´yu null döndürüyor aynı ip ve id olduğunda da çünkü...
-
Beyler eregi php´nin bi sürümü sonrası iptal edilmiş. onun yerine preg_match kullanılıyomus ama simdide buna çeviremiyorum!!
if ( eregi( $oyunid, $_SESSION[yorumlar] ) )
Bunun pregh_match fonksiyonu ile yazılımı nasıl olacak?
-
$sorgu=mysql_query("select * from comments where ip=$ip && gameid=$gameid");
bu sorgu hatalı..
$sorgu=mysql_query("select * from comments where ip=$ip and gameid=$gameid");
olmalı..
bir de sayfa başına error_reporting () koyarsan hatayı daha rahat bulursun...
-
Hocam sorgularını bu şekilde yaparsan SQL INJECTION a maruz kalabilirsin.Prepared SQL Statement kullan ya da mysql real escape string ve strip tags gibi fonksiyonlar ile kullandığın değişkenleri ön işlemden geçir.
DrKill tarafından 17/May/13 20:57 tarihinde düzenlenmiştir -
DrKill bunu yazdı
Hocam sorgularını bu şekilde yaparsan SQL INJECTION a maruz kalabilirsin.Prepared SQL Statement kullan ya da mysql real escape string ve strip tags gibi fonksiyonlar ile kullandığın değişkenleri ön işlemden geçir.
Tamamdır hocam, zaten beceremedim :)
----------------------
eregi( $oyunid, $_SESSION[yorumlar] )
Bunu preg_match fonksiyonuna bir dönüştürsem halledicem ama beceremedim
bilenyok tarafından 17/May/13 21:02 tarihinde düzenlenmiştir -
up