Забрана на бутон

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

haus

Registered
Искам да попитам за код които забранява цъкането рефреша със F5 ако може някои да ми даде такъв код
 
ето ти javascript-a -> http://www.openjs.com/scripts/events/keyboard_shortcuts/#

а кода за забраняване на f5 е:
Код:
shortcut.add("F5" ,function() {
alert("This key is disabled!");
});
 
hpstuff каза:
Защо ти е да правиш такова нещо. :shock:

И аз се зачудих... сигурно има някакъв ajax app и някакви стъпки и не е добре да се рефрешва, но това определено не е добър подход. В край на сметка винаги мога да цъкна с мишката или да излеза от страницата.
 
Така е има още сумата му и начини да презаредиш страницата и се самнявам че 100% от хората ползват F5 много дори не ползват и backspace.
 
искам да направя това нещо защото правя игра във която се напада и като цъкнеш F5 се рефрешва и ти качва определени точки и за това искам да го премахна или пък ако може някой да ми каже как да го оправя това да не ти дава точки като рефрешваш
 
haus каза:
искам да направя това нещо защото правя игра във която се напада и като цъкнеш F5 се рефрешва и ти качва определени точки и за това искам да го премахна или пък ако може някой да ми каже как да го оправя това да не ти дава точки като рефрешваш

Правиш нова таблица и записваш ИП адреса на човека посетил вече потребителя и след това проверяваш дали ИП-то на човека го има в таблицата и ако го има не му дава точки ако го няма му дава :]

Успех
 
да но играта не е такава със линк то се цъка на хора и сгради и то ти дава точки
 
Това не се прави на front-end ниво а на back-end незнам как е най удачния начин а и не съм запознат много с твоя случаи ,но нека ти дам един пример. При теб примерно на определено време или поради някакъво друго условия (ако нямаш е хубаво да имаш) когато кликаш на сгради ти дава точки. Е моето предложение е правиш си още едно поле в базата което ще ти бъде за това дали си кликнал на сградата или не ( със стойност true или 1 за начало както ти е удобно) след това когато кликнеш правиш проверка какво е полето и дали може да изпращаш заявка ако да пращаш заявка с точките и UPDATE-тваш полето като му даваш стойност false или 0. И на края когато ти изтече времето (или условието) поради което неможеш да получаваш точки променяш полето в базата. Така колкото и да кликаш ще ти даде точки само 1 път ( в определения интервал или условие).
 
ето ти го примерният код:
Код:
<html>
<head>
	<title>test</title>
	<script type="text/javascript" src="http://www.openjs.com/scripts/events/keyboard_shortcuts/shortcut.js"></script>
	<script type="text/javascript">
		shortcut.add("F5" ,function() {
			alert("This key is disabled!");
		}),{
		'type':'keydown',
		'propagate':false,
		'disable_in_input':true,
		'target':document,
		'keycode':116
		}
	</script>
</head>
<body>
Test of disabling F5!
</body>
</html>

но както другите са ти написали - това въобще не е подходящ начин, за това което искаш ти :)
 
Точно така трябва да се направи с php откадето и да го погледнеш иначе ако е с javascrupt може просто да си го изключа и да си нацъкам точко колкото си искам.
 
Иначе с php става по следният начин...

Правиш си една нова таблица в база данни чрез следната SQL команда:
Код:
CREATE TABLE `tablica` (
	`id` int(11) NOT NULL auto_increment,
	`userid` int(255) NOT NULL,
	`time` int(255) NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

след това си настройваш този код така, че да работи с твоята системка, за да не може през по-малко от 24 часа да се обновява тази информация :)

Код:
<?php
header("Content-Type: text/html; charset=UTF-8");
include("config.php"); //Инклудваш конфигурационният файл, с който се свързваш към базата данни.

$user = $_SESSION['id']; //Чрез сесията взимаш id-то на потребителя, с който си се логнал.

$query = "SELECT * FROM `tablica` WHERE `usedid`=$id"; //Това е заявката, с която ще взимаш стойноста на полето time, за последният път когато потребителя е изпълнил този скрипт.
$result = mysql_query($query) OR die(mysql_error());
$row = mysql_fetch_array($result};

$time = time(); //С тази променлива взимаш времето в момента
$oldtime = $row['time']; //С тази пък взимаш часа и датата в time() формат, кога за последно е гласувал потребителя.

if($oldtime+86400 > $time) { //Проверка, дали в последните 24 часа е изпълняван скрипта
echo "През последните 24 часа сте изпълнявали този скрипт!";
}
else {
echo "Успешно изпълнихте скрипта!";
$update = mysql_query("Update `tablica` set `time`='$time' WHERE `userid`='$id'"); //Заявката, която ще опресни информацията в tablica, за да не може да се изпълни скрипта повторно преди да са минали 24 часа
//Тук слагаш твоята update заявка, която ще обновява новите стойности на всеки потребител през 24 часа.
}
?>

сложил съм ти коментари почти навсякъде по скрипта и съм гледал да ти ги обясня максимално просто, но ако все пак има някакви проблеми пиши, ще ти помогна :)
 
мерси на всички кадето ми помагат но тази игра не е да получаваш точки след определено време а можеш колкото си искаш пъти и то ти се добавя сила от това цъкане по фигурките аз искам да направя така че като натиснеш F5 и като рефрешне не искам да ми даде отново сила искам да се цъка на фигурата и така да ми добавя силата
 
вече ти дадох код, за забрана на f5 ;)

t0m3kk каза:
ето ти го примерният код:
Код:
<html>
<head>
	<title>test</title>
	<script type="text/javascript" src="http://www.openjs.com/scripts/events/keyboard_shortcuts/shortcut.js"></script>
	<script type="text/javascript">
		shortcut.add("F5" ,function() {
			alert("This key is disabled!");
		}),{
		'type':'keydown',
		'propagate':false,
		'disable_in_input':true,
		'target':document,
		'keycode':116
		}
	</script>
</head>
<body>
Test of disabling F5!
</body>
</html>

но както другите са ти написали - това въобще не е подходящ начин, за това което искаш ти :)
 
а искам да попитам сложих кода всичко е 'ок' но как да го направя да не ми изписва това съобщение
 
haus каза:
а искам да попитам сложих кода всичко е 'ок' но как да го направя да не ми изписва това съобщение
Махни алерт-а.
 

Back
Горе