Запись значений с JavaScript в mysql при помощи php?
? уж больно интересна ... значения в javascript'e через каждые 30 сек меняются и каждые нада записывать не обновляя страницу ...
Создавай нулевой(по размерам) фрейм, копируй в него данные и отправляй. Ну или кури xml.
зы-Где-то на webmascon`e было нечто подобное.
combats.ru
скрип с бк который выводит хп из чела :) тут он считает жизни и показывает а как делается это на стороне сервера ? мне проста интересна вот мля гложит меня уже дней 6 ... никак понять не могу? ну что они делают на стороне сервака? дайти хоть теорию ...
да вот ожуеваю от скриптеров
Код:
var rnd = Math.random();
//-- Смена хитпоинтов
var delay = 18; // Каждые 18сек. увеличение HP на 1%
var redHP = 0.33; // меньше 30% красный цвет
var yellowHP = 0.66;// меньше 60% желтый цвет, иначе зеленый
var TimerOn = -1; // id таймера
var tkHP, maxHP;
var speed=100;
var mspeed=100;
function setHP(value, max, newspeed) {
tkHP=value; maxHP=max;
if (TimerOn>=0) { clearTimeout(TimerOn); TimerOn=-1; }
speed=newspeed;
setHPlocal();
}
function setHPlocal() {
if (tkHP>maxHP) { tkHP=maxHP; }
var le=Math.round(tkHP)+"/"+maxHP;
le=218 - (le.length + 2)*7;
var sz1 = Math.round(((le-1)/maxHP)*tkHP);
var sz2 = le - sz1;
if (document.all("HP")) {
document.HP1.width=sz1;
document.HP2.width=sz2;
if (tkHP/maxHP < redHP) { document.HP1.src='./i/life_red.gif'; }
else {
if (tkHP/maxHP < yellowHP) { document.HP1.src='./i/life_yellow.gif'; }
else { document.HP1.src='./i/life_green.gif'; }
}
var s = document.all("HP").innerHTML;
document.all("HP").innerHTML = Math.round(tkHP)+"/"+maxHP;
}
tkHP = (tkHP+(maxHP/100)*speed/1000);
if (tkHP<maxHP) { TimerOn=setTimeout('setHPlocal()', delay*100); }
else { TimerOn=-1; }
}
//-- Смена хитпоинтов
var delay = 18; // Каждые 18сек. увеличение HP на 1%
var redHP = 0.33; // меньше 30% красный цвет
var yellowHP = 0.66;// меньше 60% желтый цвет, иначе зеленый
var TimerOn = -1; // id таймера
var tkHP, maxHP;
var speed=100;
var mspeed=100;
function setHP(value, max, newspeed) {
tkHP=value; maxHP=max;
if (TimerOn>=0) { clearTimeout(TimerOn); TimerOn=-1; }
speed=newspeed;
setHPlocal();
}
function setHPlocal() {
if (tkHP>maxHP) { tkHP=maxHP; }
var le=Math.round(tkHP)+"/"+maxHP;
le=218 - (le.length + 2)*7;
var sz1 = Math.round(((le-1)/maxHP)*tkHP);
var sz2 = le - sz1;
if (document.all("HP")) {
document.HP1.width=sz1;
document.HP2.width=sz2;
if (tkHP/maxHP < redHP) { document.HP1.src='./i/life_red.gif'; }
else {
if (tkHP/maxHP < yellowHP) { document.HP1.src='./i/life_yellow.gif'; }
else { document.HP1.src='./i/life_green.gif'; }
}
var s = document.all("HP").innerHTML;
document.all("HP").innerHTML = Math.round(tkHP)+"/"+maxHP;
}
tkHP = (tkHP+(maxHP/100)*speed/1000);
if (tkHP<maxHP) { TimerOn=setTimeout('setHPlocal()', delay*100); }
else { TimerOn=-1; }
}
скрип с бк который выводит хп из чела :) тут он считает жизни и показывает а как делается это на стороне сервера ? мне проста интересна вот мля гложит меня уже дней 6 ... никак понять не могу? ну что они делают на стороне сервака? дайти хоть теорию ...
Нифига не понял про что ты. Вижу js скрипт, делающий более-менее понятные вещи, а причем здесь серверная часть? Если ты про апдейт жизней, то может они их в кукисы пишут, а при релоде читают и записывают в базу. Может еще чего...зачем тебе это? имхо, лучше самому сделать чем чужое переваривать.
хе :) все онлай игры похожи у всех регинирация жизней а предели 30 минут и за них все регенится :) вот мне интересно как на серваке сделать это без крона на чистом php, без таймира ... я вот не знаю как и остается тока переворить их решения ...
Попробуй покурить по этому поводу статью на webmascon.com в разделе технологии под названием "Сверхдинамичные веб-интерфейсы".
Код:
<?php
session_start();
define("ABSOLUTEPATH", dirname(__FILE__) . "/");
require_once ABSOLUTEPATH . "includes/smarty.inc";
require_once ABSOLUTEPATH . "includes/config.inc";
require_once ABSOLUTEPATH . "includes/mysql.inc";
$login_id = "$_SESSION[login_id]";
$iplast = "$_SESSION[iplast]";
// main.php
$datelife = date("Ymd");
$timeG = date("G");
$timei = date("i");
$times = date("s");
$result = mysql_query("SELECT * FROM user_account WHERE login_id = '$login_id' LIMIT 1");
while ($row = mysql_fetch_array($result))
{
$tpl["TEMPLATE"]->assign("name", $row[name]);
$tpl["TEMPLATE"]->assign("ip", $row[ip]);
$tpl["TEMPLATE"]->assign("sysmsg", $row[sysmsg]);
$tpl["TEMPLATE"]->assign("avatar", $row[avatar]);
$tpl["TEMPLATE"]->assign("dr", $row[dr]);
$tpl["TEMPLATE"]->assign("clan", $row[clan]);
$tpl["TEMPLATE"]->assign("plvl", $row[plvl]);
}
mysql_free_result($result);
$result = mysql_query("SELECT * FROM user_static WHERE login_id = '$login_id' LIMIT 1");
while ($row = mysql_fetch_array($result))
{
$tpl["TEMPLATE"]->assign("max_hp", $row[max_hp]);
$tpl["TEMPLATE"]->assign("str", $row[str]);
$tpl["TEMPLATE"]->assign("dex", $row[dex]);
$tpl["TEMPLATE"]->assign("vit", $row[vit]);
$tpl["TEMPLATE"]->assign("gold", $row[gold]);
$tpl["TEMPLATE"]->assign("win", $row[win]);
$tpl["TEMPLATE"]->assign("win_nid", $row[win_nid]);
$tpl["TEMPLATE"]->assign("lost", $row[lost]);
$tpl["TEMPLATE"]->assign("nich", $row[nich]);
$tpl["TEMPLATE"]->assign("armor_head", $row[armor_head]);
$tpl["TEMPLATE"]->assign("armor_ryk", $row[armor_ryk]);
$tpl["TEMPLATE"]->assign("armor_armor", $row[armor_armor]);
$tpl["TEMPLATE"]->assign("armor_legs", $row[armor_legs]);
$tpl["TEMPLATE"]->assign("lvl", $row[lvl]);
if ($datelife > $row[datedaid] && $min_hp < $row[max_hp])
{
$tmpQuery = "UPDATE user_static SET min_hp = '$row[max_hp]', timeGd = '00', timeid = '00' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
}
if ($datelife == $row[datedaid] && $row[timeGd] != "00" && $row[timeid] != "00" && $min_hp < $row[max_hp])
{
$min_hp = ((($timeG * 3600 + $timei * 60 + $times) - ($row[timeGd] * 3600 + $row[timeid] * 60 + $row[timesd])) / 18) * ($row[max_hp] / 100) + $row[min_hp];
$min_hp = round($min_hp, 0);
if ($min_hp > $row[max_hp])
{
$tmpQuery = "UPDATE user_static SET min_hp = '$row[max_hp]', timeGd = '00', timeid = '00', timesd = '00' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
} else {
$tmpQuery = "UPDATE user_static SET min_hp = '$min_hp', timeGd = '$timeG', timeid = '$timei', timesd = '$times' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
}
$tpl["TEMPLATE"]->assign("min_hp", $min_hp);
}
$tpl["TEMPLATE"]->assign("min_hp", $row[min_hp]);
}
mysql_free_result($result);
session_start();
define("ABSOLUTEPATH", dirname(__FILE__) . "/");
require_once ABSOLUTEPATH . "includes/smarty.inc";
require_once ABSOLUTEPATH . "includes/config.inc";
require_once ABSOLUTEPATH . "includes/mysql.inc";
$login_id = "$_SESSION[login_id]";
$iplast = "$_SESSION[iplast]";
// main.php
$datelife = date("Ymd");
$timeG = date("G");
$timei = date("i");
$times = date("s");
$result = mysql_query("SELECT * FROM user_account WHERE login_id = '$login_id' LIMIT 1");
while ($row = mysql_fetch_array($result))
{
$tpl["TEMPLATE"]->assign("name", $row[name]);
$tpl["TEMPLATE"]->assign("ip", $row[ip]);
$tpl["TEMPLATE"]->assign("sysmsg", $row[sysmsg]);
$tpl["TEMPLATE"]->assign("avatar", $row[avatar]);
$tpl["TEMPLATE"]->assign("dr", $row[dr]);
$tpl["TEMPLATE"]->assign("clan", $row[clan]);
$tpl["TEMPLATE"]->assign("plvl", $row[plvl]);
}
mysql_free_result($result);
$result = mysql_query("SELECT * FROM user_static WHERE login_id = '$login_id' LIMIT 1");
while ($row = mysql_fetch_array($result))
{
$tpl["TEMPLATE"]->assign("max_hp", $row[max_hp]);
$tpl["TEMPLATE"]->assign("str", $row[str]);
$tpl["TEMPLATE"]->assign("dex", $row[dex]);
$tpl["TEMPLATE"]->assign("vit", $row[vit]);
$tpl["TEMPLATE"]->assign("gold", $row[gold]);
$tpl["TEMPLATE"]->assign("win", $row[win]);
$tpl["TEMPLATE"]->assign("win_nid", $row[win_nid]);
$tpl["TEMPLATE"]->assign("lost", $row[lost]);
$tpl["TEMPLATE"]->assign("nich", $row[nich]);
$tpl["TEMPLATE"]->assign("armor_head", $row[armor_head]);
$tpl["TEMPLATE"]->assign("armor_ryk", $row[armor_ryk]);
$tpl["TEMPLATE"]->assign("armor_armor", $row[armor_armor]);
$tpl["TEMPLATE"]->assign("armor_legs", $row[armor_legs]);
$tpl["TEMPLATE"]->assign("lvl", $row[lvl]);
if ($datelife > $row[datedaid] && $min_hp < $row[max_hp])
{
$tmpQuery = "UPDATE user_static SET min_hp = '$row[max_hp]', timeGd = '00', timeid = '00' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
}
if ($datelife == $row[datedaid] && $row[timeGd] != "00" && $row[timeid] != "00" && $min_hp < $row[max_hp])
{
$min_hp = ((($timeG * 3600 + $timei * 60 + $times) - ($row[timeGd] * 3600 + $row[timeid] * 60 + $row[timesd])) / 18) * ($row[max_hp] / 100) + $row[min_hp];
$min_hp = round($min_hp, 0);
if ($min_hp > $row[max_hp])
{
$tmpQuery = "UPDATE user_static SET min_hp = '$row[max_hp]', timeGd = '00', timeid = '00', timesd = '00' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
} else {
$tmpQuery = "UPDATE user_static SET min_hp = '$min_hp', timeGd = '$timeG', timeid = '$timei', timesd = '$times' WHERE login_id = '$login_id' LIMIT 1";
mysql_query($tmpQuery);
}
$tpl["TEMPLATE"]->assign("min_hp", $min_hp);
}
$tpl["TEMPLATE"]->assign("min_hp", $row[min_hp]);
}
mysql_free_result($result);
обьеснить не будду сорри :(
A gde mozno skochat etot igr source :???: