- Home
- Categorie
- Coding e Sistemistica
- PHP
- Attesa lato server caricamento pagina php
-
Attesa lato server caricamento pagina php
Ciao ragazzi,
ho un urgente bisogno di uno script o una condizione php che dopo
tot di tempo carichi lo script php.
Se lo faccio lato client possono imbrogliare se lo faccio lato server saranno costretti ad aspettare.
VI faccio un esempio:
Se i visitatori visitano la pagina w w w .site.com/ciao.php
si aggiungono dei punti, ma questi punti devono essere assegnati
ogni 30 secondi, e loro fanno il refresh con tutto il redirect a tempo (lato client) cosi barando, non c'è un modo per farli attendere lato server?? o un modo + sicuro??
rispondetemi! grazie in anticipo!!
-
Ciao,
se utilizzi un database per i punti, memorizza insieme al punteggio anche l'ora in cui viene aggiornato incrementando i punti solo se dall'ora dell'ultimo aggiornamento sono passati 30 secondi.
A mio avviso questa è la soluzione più sicura per evitare imbrogli.Alessandro
-
Non si può fare una cosa simile?
<?php /** * login.php * * @version 1.0 * @copyright 2008 by ?????? for XNova */ define('INSIDE' , true); define('INSTALL' , false); $InLogin = true; $ugamela_root_path = './'; include($ugamela_root_path . 'extension.inc'); include($ugamela_root_path . 'common.' . $phpEx); includeLang('login'); if ($_POST) { $login = doquery("SELECT * FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['username']) . "' LIMIT 1", "users", true); if ($login) { if ($login['password'] == md5($_POST['password'])) { if (isset($_POST["rememberme"])) { $expiretime = time() + 31536000; $rememberme = 1; } else { $expiretime = 0; $rememberme = 0; } @include('config.php'); $cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme; setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0); unset($dbsettings); header("Location: ./frames.php"); exit; } else { message($lang['Login_FailPassword'], $lang['Login_Error']); } } else { message($lang['Login_FailUser'], $lang['Login_Error']); } } else { $parse = $lang; $query = doquery('SELECT username FROM {{table}} ORDER BY register_time DESC', 'users', true); $parse['last_user'] = $query['username']; $query = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE onlinetime>" . (time()-900), 'users', true); $parse['online_users'] = $query[0] + 9; $parse['users_amount'] = $game_config['users_amount']; $parse['servername'] = $game_config['game_name']; $parse['forum_url'] = $game_config['forum_url']; $parse['PasswordLost'] = $lang['PasswordLost']; $page = parsetemplate(gettemplate('login_body'), $parse); display($page, $lang['Login']); } // ----------------------------------------------------------------------------------------------------------- // History version ?>
questo è il login di un OGame chiamato XNova io ho trovato la condizione:
WHERE onlinetime>" . (time()-900), 'users', true);
infatti dopo tot di tempo username risulta disconnesso
noto che frutta i cookie e la funzione time non si può fare lo stesso senza fare casini nel db, visto che si parla circa di 40 controlli da inserire nel db??
-
Non è che ci siano grosse differenze visto che anche nello script da te proposto (e che comunque fa tutt'altra cosa) viene memorizzata sul db l'ora della connessione.
Infatti la query da te riportata controlla il campoonlinetime
della tabellauser
per verificare quanti utenti sono connessi e non il cookie.Alessandro
-
Come posso estrarre la variabile del utente connesso dai cookie?
-
I dati presenti nel cookie li ritrovi dentro l'array:
[php]
$_COOKIE
[/php]