|
Oddawanie g?osu raz dziennie.
|
| adams1692 |
Dodany dnia 24.06.2013 22:47:05
|

Pocz?tkuj?cy

Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
Witam,
Mam taki kod: <?php
if(isset($_POST['ocen'])){ // sprawdzamy czy klikni?to na przycisk do wysy?ania formularza.
if(!empty($nazwa) and !empty($ocena) and !empty($user)){ // sprawdzamy czy zosta?y wype?nione wszystkie pola
$zapytanie = "INSERT INTO oceny SET nazwa='$nazwa', ocena='$ocena', user='$user'";
$wykonaj = mysql_query($zapytanie); // dodajemy rekord do bazy
if($wykonaj == 'TRUE'){
echo '<center><strong>Oceniono!</strong></center>'; // wy?wietlamy komunikat o poprawnym dodaniu rekordu do bazy
}
} else {
echo '<center><strong>Nie wype?ni?e? wszystkich pól!</strong></center>'; // wy?wietlamy komunikat o b??dnym wype?nieniu formularza
}
}
?>
<?php
global $userdata;
$result1 = dbquery("SELECT page_id, page_title FROM fusionda41f_custom_pages WHERE page_id='".$_GET['page_id']."'");
$data1 = mysql_fetch_assoc($result1);
$result = dbquery("SELECT nazwa, AVG(ocena) as srednia FROM oceny WHERE nazwa='".$data1['page_title']."'");
$data = mysql_fetch_assoc($result);
echo "<center><font size='2'><b>Ocena zawodnika: ".number_format($data['srednia'], 2, ".", "")."</b></font></center>"
?>
<br />
<?php
if (iMEMBER) {
echo "<form method='POST' action='/viewpage.php?page_id=".$data1['page_id']."'>
<input name='nazwa' type='hidden' value='".$data1['page_title']."'>
<input name='user' type='hidden' value='".$userdata['user_name']."'>
<center><font size='2'><b>Oce? zawodnika:</b></font> <select name='ocena' class='textbox'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input class='button' type='submit' name='ocen' value='Oce?'>
</form></center>";
} else {
echo "<strong><center><font size='2'><b>G?osowanie tylko dla zarejestrowanych!<br><a href='http://mglks.pl/login.php' target='_blank'>Zaloguj si?</a> lub <a href='http://mglks.pl/register.php' target='_bank'>zarejestruj</a>.</b></font></strong>";
}
?>
I chodzi mi o to ?eby po przes?aniu do bazy danych nazwy u?ytkownika móg? on zag?osowa? tylko raz dziennie na danego zawodnika poniewa? ten kod jest przypisany do 29 zawodników. Widz? to tak ?e przycisk wy?lij b?dzie zablokowany a poni?ej b?dzie komunikat: Ju? dzisiaj odda?e? g?os na tego zawodnika. Czy mo?e mi kto? pomóc?
PW od moderatora:
- Przeniesienie tematu - bogdan 25.06.2013 10:17
|
| |
|
|
| W?cibski Go?? |
Dodany dnia 24.10.2025 21:19:02
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
| IP: localhost |
|
|
| Piotrroger |
Dodany dnia 25.06.2013 19:29:26
|

Bywalec

Postów: 998 Pomógł: 19
v7.02.03 Data rejestracji: 27.04.2006 18:29
|
Dwie mo?liwo?ci:
1. Ciasteczka (ma?o bezpieczne - wystarczy usun?? ciasteczko, ?eby zag?osowa? ponownie, ale stosunkowo najprostsze do wykonania).
2. Zapisywanie IP w bazie (bardziej bezpieczne - ale te? nie w 100%, wymaga utworzenia pola w bazie danych).
Polecam numer pierwszy.
<?php
if(isset($_POST['ocen'])){ // sprawdzamy czy klikni?to na przycisk do wysy?ania formularza.
if(!empty($nazwa) and !empty($ocena) and !empty($user)){ // sprawdzamy czy zosta?y wype?nione wszystkie pola
$zapytanie = "INSERT INTO oceny SET nazwa='$nazwa', ocena='$ocena', user='$user'";
$wykonaj = mysql_query($zapytanie); // dodajemy rekord do bazy
if($wykonaj == 'TRUE'){
echo '<center><strong>Oceniono!</strong></center>'; // wy?wietlamy komunikat o poprawnym dodaniu rekordu do bazy
setcookie('oddano_glos', '1', time()+3600*24); // dodaje cookies na 24h
}
} else {
echo '<center><strong>Nie wype?ni?e? wszystkich pól!</strong></center>'; // wy?wietlamy komunikat o b??dnym wype?nieniu formularza
}
}
?>
<?php
global $userdata;
$result1 = dbquery("SELECT page_id, page_title FROM fusionda41f_custom_pages WHERE page_id='".$_GET['page_id']."'");
$data1 = mysql_fetch_assoc($result1);
$result = dbquery("SELECT nazwa, AVG(ocena) as srednia FROM oceny WHERE nazwa='".$data1['page_title']."'");
$data = mysql_fetch_assoc($result);
echo "<center><font size='2'><b>Ocena zawodnika: ".number_format($data['srednia'], 2, ".", "")."</b></font></center>"
?>
<br />
<?php
if (iMEMBER) {
echo "<form method='POST' action='/viewpage.php?page_id=".$data1['page_id']."'>
<input name='nazwa' type='hidden' value='".$data1['page_title']."'>
<input name='user' type='hidden' value='".$userdata['user_name']."'>
<center><font size='2'><b>Oce? zawodnika:</b></font> <select name='ocena' class='textbox'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
";
if(isset($_COOKIE['oddano_glos'])) // sprawdza czy cookies istnieje
echo "<input class='button' type='submit' name='ocen' value='Dzi? ocenia?e?!'>";
else echo "<input class='button' type='submit' name='ocen' value='Oce?'>";
echo "
</form></center>";
} else {
echo "<strong><center><font size='2'><b>G?osowanie tylko dla zarejestrowanych!<br><a href='http://mglks.pl/login.php' target='_blank'>Zaloguj si?</a> lub <a href='http://mglks.pl/register.php' target='_bank'>zarejestruj</a>.</b></font></strong>";
}
?>
Tak na szybko - nie wiem czy dzia?a - nie testowa?em, a dodatkowo dawno ju? nie kodzi?em.
|
| |
|
|
| adams1692 |
Dodany dnia 26.06.2013 16:23:31
|

Pocz?tkuj?cy

Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
Niestety nie dzia?a mo?na g?osowa? ca?y czas.
|
| |
|
|
| hoopak |
Dodany dnia 26.06.2013 16:32:54
|

Bywalec

Postów: 639 Pomógł: 21
v7.02.04 Data rejestracji: 05.02.2008 21:16
|
Pojawiaj? si? jakie? komunikaty, b??dy? |
| |
|
|
| adams1692 |
Dodany dnia 26.06.2013 16:39:31
|

Pocz?tkuj?cy

Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
Teraz po cz??ci dzia?a, zmodyfikowa?em ten kod: if(isset($_COOKIE['oddano_glos'])) { // sprawdza czy cookies istnieje
echo "<input class='button' type='submit' name='ocen' value='Dzi? ocenia?e?!' disabled>";
} else {
echo "<input class='button' type='submit' name='ocen' value='Oce?'>";
}
Lecz pisa?em ?e ten kod jest przypisany do 29 zawodników i chodzi o to ?eby mo?na by?o g?osowa? na ka?dego raz dziennie a jak zag?osuj? teraz na jednego to ju? na kolejnego nie mog?. Zawodnicy zapisuj? si? w tabeli "nazwa".
A mo?e jest mo?liwo?? zrobienia tego tak ?eby ciasteczka dzia?a?y na konkretnego u?ytkownika? Poniewa? w tym formularzu przesy?am te? nazw? u?ytkownika.
|
| |
|
|
Creeper |
Dodany dnia 26.06.2013 18:50:39
|

Pocz?tkuj?cy

Postów: 290 Pomógł: 45
v7.02.06 Data rejestracji: 24.10.2011 14:51
|
Mo?na zrobi? to na zasadzie dodatkowego pola w bazie z dat?. Stwórz pole poprzez takie zapytanie:
<?php
$result = mysql_result("ALTER TABLE oceny ADD data INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER user");
?>
Teraz u?yj kodu w takiej formie (mog? by? b??dy, nie mia?em jak przetestowa?):
<?php
if(isset($_POST['ocen'])){ // sprawdzamy czy klikni?to na przycisk do wysy?ania formularza.
if(!empty($nazwa) and !empty($ocena) and !empty($user)){ // sprawdzamy czy zosta?y wype?nione wszystkie pola
if (date("j", mysql_result(mysql_query("SELECT data FROM oceny WHERE ocena='$ocena' AND user='$user' ORDER BY data DESC LIMIT 1"), 0)) != date("j", time())) {
$zapytanie = "INSERT INTO oceny SET nazwa='$nazwa', ocena='$ocena', user='$user', data='".time()."'";
$wykonaj = mysql_query($zapytanie); // dodajemy rekord do bazy
if($wykonaj == 'TRUE'){
echo '<center><strong>Oceniono!</strong></center>'; // wy?wietlamy komunikat o poprawnym dodaniu rekordu do bazy
}
} else {
echo "Odda?e? ju? g?os na tego zawodnika!";
}
} else {
echo '<center><strong>Nie wype?ni?e? wszystkich pól!</strong></center>'; // wy?wietlamy komunikat o b??dnym wype?nieniu formularza
}
}
?>
<?php
global $userdata;
$result1 = dbquery("SELECT page_id, page_title FROM fusionda41f_custom_pages WHERE page_id='".$_GET['page_id']."'");
$data1 = mysql_fetch_assoc($result1);
$result = dbquery("SELECT nazwa, AVG(ocena) as srednia FROM oceny WHERE nazwa='".$data1['page_title']."'");
$data = mysql_fetch_assoc($result);
echo "<center><font size='2'><b>Ocena zawodnika: ".number_format($data['srednia'], 2, ".", "")."</b></font></center>"
?>
<br />
<?php
if (iMEMBER) {
echo "<form method='POST' action='/viewpage.php?page_id=".$data1['page_id']."'>
<input name='nazwa' type='hidden' value='".$data1['page_title']."'>
<input name='user' type='hidden' value='".$userdata['user_name']."'>
<center><font size='2'><b>Oce? zawodnika:</b></font> <select name='ocena' class='textbox'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input class='button' type='submit' name='ocen' value='Oce?'>
</form></center>";
} else {
echo "<strong><center><font size='2'><b>G?osowanie tylko dla zarejestrowanych!<br><a href='http://mglks.pl/login.php' target='_blank'>Zaloguj si?</a> lub <a href='http://mglks.pl/register.php' target='_bank'>zarejestruj</a>.</b></font></strong>";
}
?>
Doda?em tak? linijk?:
if (date("j", mysql_result(mysql_query("SELECT data FROM oceny WHERE ocena='$ocena' AND user='$user' ORDER BY data DESC LIMIT 1"), 0)) != date("j", time())) {
Pobiera ona ostatnio dodany wpis i sprawdza, czy aktualny dzie? jest równy temu pobranemu z bazy. |
| |
|
|
| adams1692 |
Dodany dnia 26.06.2013 20:53:42
|

Pocz?tkuj?cy

Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
Niestety tabela data pobiera takie warto?ci: 1372272701, mo?na oddawa? g?osy ca?y czas.
|
| |
|
|
| kefirek |
Dodany dnia 30.06.2013 21:43:36
|

Zaawansowany

Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
adams1692 napisa?(a):
Niestety tabela data pobiera takie warto?ci: 1372272701, mo?na oddawa? g?osy ca?y czas.
Jak masz ju? w bazie dat? to zobacz mo?e tak
<?php
$result1 = dbquery("SELECT page_id, page_title FROM fusionda41f_custom_pages WHERE page_id='" . $_GET['page_id'] . "'");
$data1 = mysql_fetch_assoc($result1);
$result = dbquery("SELECT nazwa, AVG(ocena) as srednia FROM oceny WHERE nazwa='" . $data1['page_title'] . "'");
$data = mysql_fetch_assoc($result);
echo "<center><font size='2'><b>Ocena zawodnika: ".number_format($data['srednia'], 2, ".", "")."</b></font></center>";
if (iMEMBER) {
if (isset($_POST['ocen'])) {
if (!empty($_POST['nazwa']) and !empty($_POST['ocena'])) {
// sprawdzamy czy juz oddano glos
$rows = mysql_result("SELECT COUNT(*) FROM oceny WHERE nazwa='" . $_POST['nazwa'] . "' AND user='" . $userdata['user_name'] . "' AND DATE(FROM_UNIXTIME(data))=CURDATE()", 0);
if ($rows) {
echo "Odda?e? ju? dzi? g?os na tego zawodnika!";
} else {
$wykonaj = mysql_query("INSERT INTO oceny SET nazwa='" . $_POST['nazwa'] . "', ocena='" . $_POST['ocena'] . "', user='" . $userdata['user_name'] . "', data='" . time() . "'");
echo '<center><strong>Oceniono!</strong></center>';
}
} else {
echo '<center><strong>Nie wype?ni?e? wszystkich pól!</strong></center>'; // wy?wietlamy komunikat o b??dnym wype?nieniu formularza
}
} else {
// formularz
echo "<form method='POST' action='/viewpage.php?page_id=" . $data1['page_id'] . "'>
<input name='nazwa' type='hidden' value='" . $data1['page_title'] . "'>
<center><font size='2'><b>Oce? zawodnika:</b></font> <select name='ocena' class='textbox'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
<input class='button' type='submit' name='ocen' value='Oce?'>
</form></center>";
}
} else {
echo "<strong><center><font size='2'><b>G?osowanie tylko dla zarejestrowanych!<br><a href='http://mglks.pl/login.php' target='_blank'>Zaloguj si?</a> lub <a href='http://mglks.pl/register.php' target='_bank'>zarejestruj</a>.</b></font></strong>";
}
?>
|
| |
|
|
| adams1692 |
Dodany dnia 10.08.2013 15:14:11
|

Pocz?tkuj?cy

Postów: 105 Ostrzeżeń: 2
v7.02.07 Data rejestracji: 05.12.2008 17:27
|
kefirek, nie dzia?a po zag?osowaniu wywala taki b??d: mysql_result(): supplied argument is not a valid MySQL result resource Linia: 21 dodatkowo po zag?osowaniu znika przycisk wy?lij ale jak tylko od?wie?? stron? to mo?na g?osowa? dalej. Kto? ma jaki? pomys? jeszcze?
Edytowane przez adams1692 dnia 10.08.2013 16:54:11
|
| |
|