Обучение/Помощь новичкам | Вопрос касаемо php-форм.
Здравствуйте, форумчане.
В общем проблема в следующем, я пишу игру и есть система которая зачисляет +100 к деньгам, и есть кнопка "Добавить деньги" сделана через форму пост, на той же странице в начале проверка нажата ли кнопка, и зачисление денег.
Но вот нужно сделать чтобы нажал "Добавить деньги" и деньги добавились и вывелось сообщение (+100 монет).
Казалось бы легко, в условие вставил текст, но потом после обновления той же страницы, запрос отправляется повторно из-за браузера. Было бы легко сделать это на другой странице, но нужно на одной.
Подскажите что-то?
Вот код:
Вот этот:
<?php
include ("header.php");
echo '<div class="block">'.$user['money'].' <span style="float: right">'.$_COOKIE['login'].'</span></div>';
if(isset($_POST['MoneyPlus'])){
mysql_query("UPDATE `users`SET `money` = `money`+'100' WHERE `login`='".$_COOKIE["login"]."'");
echo 'Успешно добавили +100';
}
?>
<form method="POST" name="form_add">
<input type="submit" name="MoneyPlus" value="Добавить 100 монет" />
</form>
В общем проблема в следующем, я пишу игру и есть система которая зачисляет +100 к деньгам, и есть кнопка "Добавить деньги" сделана через форму пост, на той же странице в начале проверка нажата ли кнопка, и зачисление денег.
Но вот нужно сделать чтобы нажал "Добавить деньги" и деньги добавились и вывелось сообщение (+100 монет).
Казалось бы легко, в условие вставил текст, но потом после обновления той же страницы, запрос отправляется повторно из-за браузера. Было бы легко сделать это на другой странице, но нужно на одной.
Подскажите что-то?
Вот код:
Вот этот:
<?php
include ("header.php");
echo '<div class="block">'.$user['money'].' <span style="float: right">'.$_COOKIE['login'].'</span></div>';
if(isset($_POST['MoneyPlus'])){
mysql_query("UPDATE `users`SET `money` = `money`+'100' WHERE `login`='".$_COOKIE["login"]."'");
echo 'Успешно добавили +100';
}
?>
<form method="POST" name="form_add">
<input type="submit" name="MoneyPlus" value="Добавить 100 монет" />
</form>
Holter ,
________
посл. ред. 02.02.2018 в 13:37; всего 1 раз(а); by zooomby
<?php
include ("header.php");
echo '<div class="block">'.$user['money'].' <span style="float: right">'.htmlspecialchars($_COOKIE['login']).'</span></div>';
if(isset($_REGUEST['MoneyPlus']) && !empty($_POST['Moneyplus'])){
mysql_query("UPDATE `users`SET `money` = `money`+'100' WHERE `login`='".htmlspecialchars($_COOKIE["login"])."'");
echo 'Успешно добавили +100';
}
?>
<form method="POST" action="">
<input type="submit" name="MoneyPlus" value="Добавить 100 монет" />
</form>
________
посл. ред. 02.02.2018 в 13:37; всего 1 раз(а); by zooomby
zooomby , теперь деньги не зачисляет.
Holter ,
вот так вот сделайте!
<?php
include ("header.php");
echo '<div class="block">'.$user['money'].' <span style="float: right">'.htmlspecialchars($_COOKIE['login']).'</span></div>';
if(isset($_REGUEST['MoneyPlus'])){
mysql_query("UPDATE `users` SET `money` = `money`+'100' WHERE `login`='".htmlspecialchars($_COOKIE["login"])."'");
echo 'Успешно добавили +100';
}
?>
<form method="POST" action="">
<input type="submit" name="MoneyPlus" value="Добавить 100 монет" />
</form>
вот так вот сделайте!
zooomby , Это не отличается от того что у меня по функционалу. Если бы не нужно было выводить сообщение, я бы вставил header(Location/), тут бы все обновилось, но нужно сообщение.
Мне это нужно для системы боя, будет появляться рандомный противник, его убивают кнопкой, и сразу появляется другой противник уже, но сверху написано о результатах прошлого боя, может это можно сделать другим способом?
Как в битве титанов нужно, но там после каждогобоя в адреснойстроке какие-то цифры регенерируются
Мне это нужно для системы боя, будет появляться рандомный противник, его убивают кнопкой, и сразу появляется другой противник уже, но сверху написано о результатах прошлого боя, может это можно сделать другим способом?
Как в битве титанов нужно, но там после каждогобоя в адреснойстроке какие-то цифры регенерируются
Holter , можно в сессию echo 'Успешно добавили +100';
Mr_Grey , думаю есть проще способ.
Holter , if(isset($_SESSION['reward'])){
echo success($_SESSION['reward']);
unset($_SESSION['reward']);
}
$_SESSION['reward']='Вы получили 100 зол';
header('location: /takeGold');
exit();
echo success($_SESSION['reward']);
unset($_SESSION['reward']);
}
$_SESSION['reward']='Вы получили 100 зол';
header('location: /takeGold');
exit();
Holter ,
Что-то типа. Может что-то упустил.
________
посл. ред. 02.02.2018 в 14:34; всего 1 раз(а); by CyberShot
Что-то типа. Может что-то упустил.
<?php
$_COOKIE['login'] = htmlentities($_COOKIE['login'], ENT_QUOTES, 'UTF-8');
echo '<div class="block"> ';
echo abs(intval($user['money']));
echo '<span style="float: right;"> ';
echo $_COOKIE['login'];
echo '</span> ';
echo '</div> ';
if (filter_has_var(INPUT_POST, 'moneyUpdate'))
{
$data = $_POST;
$data['money'] = (int)abs(intval($data['money']));
if (empty($data['money']))
{
echo 'Введите количество денег.<br/> ';
echo '<a href="/">На главную</a> ';
exit();
}
else
{
mysql_query("UPDATE `users` SET `money` = `money` + '". $data['money'] ."' WHERE `login` = '". mysql_real_escape_string($_COOKIE["login"]) ."'");
echo 'Деньги начислены.<br/> ';
echo '<a href="/">На главную</a> ';
exit();
}
}
echo '<form method="POST"> ';
echo '<b>Введите количество:</b><br/> ';
echo '<input type="text" name="money"><br/> ';
echo '<input type="submit" name="moneyUpdate" value="Добавить"> ';
echo '</form> ';
________
посл. ред. 02.02.2018 в 14:34; всего 1 раз(а); by CyberShot