Какво да променя в кода ?

  • Автор Автор JeRrY
  • Начална дата Начална дата

JeRrY

Registered
Здравейте! :)

Какво трябва да променя в този код, за да се гласува на всеки 24 часа, а не както е сега, колкото пъти си искаш ?

<?php
/** ./rating.php (c) Lavrik 2009 */

require "lgsl_files/lgsl_class.php";
lgsl_database();
$id = intval( @$_GET['id']);
if( $_GET['add'] == '+1' ) {
$rating_status = ' + 1 ';
}
elseif( $_GET['add'] == '-1' ) {
$rating_status = ' - 1 ';
}
else {
$rating_status = '';
}
$result = mysql_query("SELECT * FROM voting WHERE server_id = '{$id}' AND vote_ip = '{$_SERVER['REMOTE_ADDR']}' AND time > '" . ( time() - ( 60 * 60 * 24 ) ) . "'");
if( !mysql_num_rows( $result ) ) {
$result = mysql_query("SELECT * FROM e107_lgsl WHERE id = '{$id}'");
if( mysql_fetch_array( $result ) ) {
mysql_query( "INSERT INTO voting VALUES ( NULL, '{$id}', '{$_SERVER['REMOTE_ADDR']}', " . time() . ")" );
mysql_query( "UPDATE e107_lgsl SET rating = rating {$rating_status} WHERE id = '{$id}'" );
}
}
else {
@header( "Location: index.php?vote=err" );
exit;
}
@header( "Location: index.php" );
?>
 
$result = mysql_query("SELECT * FROM voting WHERE server_id = '{$id}' AND vote_ip = '{$_SERVER['REMOTE_ADDR']}' AND time > '" . ( time() - ( 24 * 00 * 00 ) ) . "'");

Мисля че трябва да стане така
 
$result = mysql_query("SELECT * FROM voting WHERE server_id = '{$id}' AND vote_ip = '{$_SERVER['REMOTE_ADDR']}' AND time > '" . ( time()+ ( 24 * 00 * 00 ) ) . "'");
Това така и горе в файла проверяваш, че ако тайма от базата данни е по-голям от тайма (time()) значи е гласувал последните 24 часа :?:
 
Добре, а този (time()) трябва ли да го задавам някъде или той си е автоматично зададен и ако може предположете параметрите на таблиците : ' vote_ip ', ' server_id ' и ' time ' за да ги свиря, да видя, дали правилно съм ги сложил ?
 
Тогава int 255 за time и всичко друго varchar 255 . Но това едва ли ще го спаси от евентуално отоко, а аз не мисля друго какво му пречи да си остане varchar,ноо..
 
rosko каза:
Тогава int 255 за time и всичко друго varchar 255 . Но това едва ли ще го спаси от евентуално отоко, а аз не мисля друго какво му пречи да си остане varchar,ноо..

Няма да споря няма значение и според мене, но щом хората са направили varchar за всички символи и са направили int само за числа явно има някаква мисъл :] Затова както си реши потребителят.

По неговия въпрос просто си отвори страничката с stranicata.php?id=номера на сървъра добави си там +1 или -1 и то само ще ти добави параметрите в базата данни :?:
 
Ми то и за ' vote_ip ' също трябва да е INT . Това добре, но защо пак не става на 24 часа да се гласува, а си е пак колкото пъти си искаш. И това (time()) трябва ли да го задавам някъде ( използвам е107, но не мисля, че това е някакъв особен проблем ) ?
 
JeRrY каза:
Ми то и за ' vote_ip ' също трябва да е INT . Това добре, но защо пак не става на 24 часа да се гласува, а си е пак колкото пъти си искаш. И това (time()) трябва ли да го задавам някъде ( използвам е107, но не мисля, че това е някакъв особен проблем ) ?

Принципно не помагам за готови системи, даже неща да чувам за тях, но ще ти помогна с обеснението :] Това ако не се лъжа е урока на @HunteR който във файла config.php слага TIME нещо си и ако е на 0 тогава може да се гласува веднът трябва да има такова нещо: define("TIMESTAMP_VOTE", 0);. Относно IP-то трябва да е на varchar, защото в него се съдържат не само цифри но и точки(.) в int полето няма да ги приема и няма да ти хареса резултата на IP-то без точки :]
 
Добре, а това къде трябва да го напиша в lgsl_config.php ли ? и защо, нали давам гласува, но след даването на глас, не ме извежда на страницата ' index.php ', а се появява бяла страница и трябва да върна назад с браузъра, за да се върна, а не ме отвежда на ' index.php ' страницата ?

Нмаери ме, ако искаш на скайп zhelio11 да ти обясня повече :)
 
Не ми се занимава с скайпове и работи тей като постояно ме притеснявате :]

По темата: Слагаш това в lgsl_config.php щом го include в страницата с гласувате, следователно за да те извежда на index.php просто си сложи променливата след натискането на гласа и отчитането мисля,че добре ще му паднес точно след втората заявка mysql_query("UPDATE... едно header('Location: index.php');
 
Аха, но виж това за ' index.php ' си е така май, но не ме извежда, кажи как мислиш ти, къде трябва да го сложа ? Един път си ме беше извело на ' index.php ', ама незнам после какво стана и спря да ме извежда :idea:
 

Back
Горе