Php Dersleri
PHP
Forum
Haber ve Duyurular
Tanışma Bölümü
Acemilerin Soru bölümü
Web Sitesi Dersleri
Temel Web dersleri
Html Dersleri
Css Dersleri
Javascript Dersleri
Php Dersleri
Mysql Dersleri
Php Kodları ve Paylaşım
Php Functions
Mysql Komutları
Hazır Php Scriptler
Hazır CSS Kodları
Para Kazanma Yolları
İnternetten para kazanmak
Seo Teknikleri
Adsense
Adwords
Adtech
Diğer Reklam Sistemleri
Web Hosting
Domain Tescil Firmaları
Web Hosting Firmaları
Dedicated Hosting
Üye Bilgileri
Nick:
Spider_hip
İsim:
Dogan
Web sayfası:
Cinsiyet:
Erkek
İmza:
Konu sayısı:
1
Cevap sayısı:
1
Kaç günlük üye
4
Son yazdığı Php kodları mesajları
İlgilenip cevap yazdığınız için çok teşekkür ederim. Koca internet dünyasında anlayıpta ilgilenen insan bulamamıştım 1 haftadır. Php de debug olayını bilmiyordum. Aslında kodları daha iyi anlamaya yardımcı olabilir diye düşünüyorum. Class çağrıları ile -> ile yapılan çağrıları kastediyorsanız evet ne yazıkki hiçbir bilgim yok. Zaten bu kodlarda en çok aklımı karıştıranda onlar oldu. Mesela
$frontend->data->pollid ,
frontend le başlıyor, poll id ile bitiyor. Sanırım sınıf üyelerini alt klasör olayı gibi çağırıyor. Yani system32 mesela, hangi system32 programfiles ın altındaki windows un elemanı system32 gibi.
Check vote ile kontrol eden bir fonskiyon, sonrasında eğerki voted ise diyor. Burada voted işleminde sanırım iş bitiyor ama çözemedim.
Bu arada kodları editlediğim haliyle paste yapmışım. Şimdi düzelttim. O iki kısımdada sadece if voted yazıyordu. Ben if voted >0 olarak deneme yapmıştım. Ama hiçbir değişiklik olmamıştı.
Zaman
2010-08-29 22:39:34
Php
İyi Günler Sitemde kullandığım bir anket kodlaması var. Gayet güzel ve basit gözüken bir sistem. Her yeni oluşturulan anket bir poll id si alıyor. Oylama yapılınca bir cookie gönderiliyor, bu cookide anladığım kadarıyla pollid(anketkimliği) ve oylama saati ve dilenirse ip numarası saklanıyor. Oylamadan sonra eğerki multivote(çoklu oy atma) kapalı ise saklanan verilere göre kişinin tekrar oy atması engelleniyor. Ama tabi sırf o id deki anket için. Bugüne kadar birçok kodlama diliyle ufak tefek çalıştım. c++, visual basic, action script. Ve hemen hemen hepsi birbiriyle çok benzer kodlamalara sahip oluyor. Ama bu php deki birçok komutu ilkkez görüyorum. Bu sebepten inanın 1 haftadır 2 paragraflık kodu anlamak için çok uğraştım ama başaramadım.
İstediğim şu, sitemde 5 tane anket olsun. Ama eğer bir üye, ya da ziyaretci, bir ankete oy kullanırsa, diğer anketlere oy kullanamasın.
Şimdi bu anketler cookie göndermesine rağmen, bir yerde bu cookie yi geri okuduğunda cookie deki id ile , o anki anketin id sini karşılaştırıyor olmalı. Her anket için ayrı cookie ya da aynı cookide ayrı yerde barındırılıyor olmalı. Ama bir türlü çözemedim ki kodlara bakınca sanki insanın dilinin ucuna gelmesi gibi, gözünün önünde birşey. Yardımcı olursanız çok sevinirim, lütfen doğruluğundan emin olmasanız dahi birşey yazın, ben denemesini yaparım, şuan çok çaresizim. Kodları veriyorum (kod içinde çok karışık göründüğü için renk değiştirerek veriyorum)
/*------------------------------------------------------------------------------
Check if user already voted for that poll
------------------------------------------------------------------------------*/
function checkVote($poll, $email = null) {
$database = JFactory::getDBO();
$my = JFactory::getUser();
$conf = new pollxtConfig();
$conf->pollid = $poll->id;
$conf->load();
$result = "";
//check date and time
$now = date("Y-m-d");
$nowtime = date("H:i:s");
if (
($poll->datefrom > $now && $poll->datefrom != "0000-00-00")
OR ($poll->datefrom == $now AND $poll->timefrom < $nowtime)
OR ($poll->dateto < $now && $poll->dateto != "0000-00-00")
OR ($poll->dateto == $now AND $poll->timeto < $nowtime)
)
return true;
$cookiename = "voted$poll->id";
$vcookie = JRequest::getVar($cookiename, '0', 'COOKIE');
$scookie = false;
$now = strtotime(date("Y-m-d G:i:s"));
//cookie check
if ($conf-> ;seccookie==1 && $vcookie != 0) {
if (!$poll->multivote)
$scookie = true;
elseif ((strtotime($vcookie)+ $poll->lag*60) > $now)
$scookie = true;
}
$ip = $conf->ip;
if (!$my->id && $poll->logon) return true;
if (!$my->id)
$logonQuery = "AND p.logon=0";
else
$logonQuery = "";
$where = "";
$id = intval ($poll->id);
//
if ($my->id) $uname = $my->username;
elseif ($email) $uname = $email;
else $uname = null;
// if logged on check username else check IP
if (($uname) and $conf->secuname and $conf->secip) {
$where = " AND (d.user = \"".$uname."\" OR d.ip = \"".$ip."\" )";
}
elseif ($conf->secip) $where = " AND d.ip = \"".$ip."\"";
elseif (($uname) and $conf->secuname) $where = " AND d.user = \"".$uname."\"";
if (!$where=="") {
$query = "SELECT d.*
FROM #__pollsxt_questions AS q
LEFT JOIN #__pollsxt_options AS o ON o.quid = q.id
LEFT JOIN #__pollxt_data AS d ON d.optid = o.id
WHERE q.pollid =\"".$id."\"".$where."ORDER BY d.datu DESC
LIMIT 1";
$database->setQuery($query);
$result = $database->loadObject();
echo $database->getErrorMsg();
}
$sip = false;
if (isset($result->datu)) {
if (!$poll->multivote )
$sip = true;
elseif (strtotime($result->datu)+ $poll->lag*60 > $now)
$sip = true;
}
return ($scookie or $sip);
}
Diğer bir dosyada ise şu kodlar mevcut ama bir kısmının başında */ var nedense, bu kodları geçersiz (okunmayan kılmalı) yinede yazıyorum
// get IP
$ip = $frontend->conf->ip;
// get the selection
$voteArray = $frontend->data->votes;
$poll = $frontend->poll;
// Plugin check
$plugin = new configPlugin($poll->id);
if ($message = $plugin->checkVote($frontend->plug)) {
$frontend->error = true;
$frontend->message = $message;
return;
}
// Poll exists (visible for user)?
if (!$poll->load($frontend->data->pollid)) {
$frontend->error = true;
$frontend->message = JText::_('POLLXT_NOT_AUTH');
return;
}
// check for email
if ($poll->email == "1" && !$my->id) {
$email = $frontend->data->email;
}
else $email = null;
// already voted?
/* $cookiename = "voted$poll->id";
$vcookie = JRequest::getVar($cookiename, '0', 'COOKIE');
$now = strtotime(date("Y-m-d G:i:s"));
$voted = checkVote($poll, $email);
if (!$poll->multivote == 1) {
if ($voted || ((strtotime($vcookie)+ $poll->lag*60) > $now)) {
$frontend->error = true;
$frontend->message = JText::_('POLLXT_ALREADY_VOTE');
return;
}
}
*/
// already voted?
$voted = checkVote($poll, $email);
if ($voted ) {
$frontend->error = true;
$frontend->message = JText::_('POLLXT_ALREADY_VOTE');
return;
}
// something selected?
// empty text fields of type 5 do not count
foreach ($voteArray as $v) {
$query = "SELECT quid FROM #__pollsxt_options WHERE id = '$v'";
$database->setQuery($query);
$quid = $database->loadResult();
$query = "SELECT type FROM #__pollsxt_questions WHERE id = '$quid'";
$database->setQuery($query);
$type = $database->loadResult();
if ($type <> "5") {
$selArray[] = $v;
}
else {
foreach ($frontend->data->texts as $t) {
if ($t[0] == $v && $t[1] != "") {
$selArray[] = $v;
}
}
}
}
if (!isset($selArray) || count($selArray)==0) {
$frontend->error = true;
$frontend->message = JText::_('POLLXT_NO_SELECTION');
return;
}
$voteid = array ();
$i = 0;
foreach ($voteArray as $v) {
$voteid[$i] = $v;
$i ++;
}
$now = $now = date("Y-m-d G:i:s");
$user = $frontend->conf->user;
Zaman
2010-08-29 13:39:11
Php Anket Kodları - Cookie
phpkodlari.com © 2009
Herkes
Php
öğrenecek
Web tasarım ve eğitim kaynağınız.