[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код заточки как в lineage2 где ошибка?
zikworld
Здравствуйте!
Я начинающий кодер, решил тут написать небольшой скрипт по заточению оружия как в линейке2, работает нормально, только при обновлении страницы заточение происходит так же как и при нажатии кнопки что не желательно...как исправить? данные хранятся в текстовом документе ench.txt....вот код:

<?php
$enchfile = 'ench.txt';
$sila = file_get_contents($enchfile);

$enchant = rand(1, 100);
if($_POST['enchant']){
if ($enchant>25){
$sila=$sila+1; file_put_contents($enchfile, $sila); echo 'Заточилось! Оружие стало +'.$sila. "<br />";
}
else { $sila = 0; file_put_contents($enchfile, $sila); echo 'Поламалось! Оружие стало +'.$sila. "<br />"; }

}

?>
<form action="" method="post">
<input type="submit" value="Точнуть" name="enchant">


</form>



Спустя 15 минут, 44 секунды (29.03.2011 - 22:18) PiratXXX написал(а):
zikworld
ридерект

header

а вообще google, там дофига инфы

Спустя 5 минут, 49 секунд (29.03.2011 - 22:23) zikworld написал(а):
что за редирект?
ну я искал там толку 0
правда находил там подобное но тоже ссылку давали на гугл, да и вообще щас что не ищи в гугле находишь только слова "гугл тебе в помощь"))

Спустя 2 минуты, 58 секунд (29.03.2011 - 22:26) PiratXXX написал(а):
zikworld

функция header

http://php.su/functions/?f=header&choice=info

Спустя 24 минуты, 6 секунд (29.03.2011 - 22:50) Winston написал(а):
<?php
$enchfile = 'ench.txt';
$sila = file_get_contents($enchfile);
$enchant = rand(1, 100);
if($_POST['enchant']){
if ($enchant>25){
$sila=$sila+1; file_put_contents($enchfile, $sila);
header('Location:' . $_SERVER['PHP_SELF']);
}
else {
$sila = 0; file_put_contents($enchfile, $sila);
header('Location:' . $_SERVER['PHP_SELF']);
}
}

И пользуйтесь тегами [PHP] !

Спустя 30 минут, 22 секунды (29.03.2011 - 23:21) inpost написал(а):
zikworld
редирект через header("Location: url");
Но данный способ не спасёт тебя, если кто-то захочет вручную обновлять данную страницу, поэтому данные о неуспешном усилении стоит записывать в файл тоже.

Спустя 6 минут, 50 секунд (29.03.2011 - 23:28) Winston написал(а):
inpost
Цитата (inpost @ 29.03.2011 - 22:21)
Но данный способ не спасёт тебя

Почему ?
Цитата (inpost @ 29.03.2011 - 22:21)
если кто-то захочет вручную обновлять данную страницу

Что-то я не въехал в это.
Цитата (inpost @ 29.03.2011 - 22:21)
данные о неуспешном усилении стоит записывать в файл тоже.

Зачем? Лишь размер будет расти.

Спустя 8 минут, 31 секунда (29.03.2011 - 23:36) inpost написал(а):
PHPprogramer
Отключи через мозиллу автоматический редирект. Тогда он не произойдет, и ты можешь очень просто нажать F5 и POST данные снова будут переданы.

Спустя 12 минут, 15 секунд (29.03.2011 - 23:48) Winston написал(а):
Цитата (inpost @ 29.03.2011 - 22:36)
Отключи через мозиллу автоматический редирект.

Отключил. Все нормально после обработки формы редиректится успешно.

Спустя 19 минут, 27 секунд (30.03.2011 - 00:08) inpost написал(а):
PHPprogramer
Ты что отключил хоть? Там редиректа не будет, а откроется надпись, что у Вас отключен браузером автоматический редирект, и будет кнопка: "нажмите сюда для редиректа". Если интересно, могу скинуть скрин-шот. Или поищи в гугле как это отключается.

Спустя 7 часов, 15 минут, 35 секунд (30.03.2011 - 07:23) PiratXXX написал(а):
inpost
Цитата
Отключи через мозиллу автоматический редирект. Тогда он не произойдет, и ты можешь очень просто нажать F5 и POST данные снова будут переданы.


блин сильно много возможностей для пользователя!)

можно еще через сессию попробовать, но опять же отключение куков.

zikworld
и того лучший вариант запись как удачи(оружее заточилось) так и не удачи(пистоль сломался)))!

Спустя 4 часа, 47 минут, 41 секунда (30.03.2011 - 12:11) inpost написал(а):
PiratXXX
Сессия пропадает, кукисы не резиновые, а предметов может быть очень много, тоже не выход. Пока я вижу единственный вариант самый верный только "и того лучший вариант запись как удачи(оружее заточилось) так и не удачи(пистоль сломался или ничего не произошло)))!".
Вот такая беда, а раньше так верил этим редиректам =) Даже оплата с платежки должна была быть в безопасности, а на деле оказалось по другому, пришлось переписывать скрипт. Хотя меня ещё не взломали, но страшно оставлять, когда знаю, что там можно взломать самого себя =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.