помощь промокоде

🗑️
♻️
💰
⚡ Симулятор
DUMP
🎮 ИГРА
Симулятор бизнеса на свалке: собирай мусор → перерабатывай в материалы → производи товары → продавай и развивайся!
🎮 Симулятор
⚙️ Оборудование
🆓 Бесплатно
Это не
экономический
проект
⚡ Просто симулятор
Играть

stalkervu

*
1 год на форуме !!! 1-й лайк !!!
Регистрация
6 Янв 2025
Сообщения
9
Реакции
1
Возраст
31
Coin
156
Нет меня
ребята помогите с модулем создаю сам на fastcore ну когда открываю раздель промок пишет 404 страница не найдена почему так я все сделал правильно поставил роутел и тд ну все ровно пишет
<?php
if (!defined('FastCore')) exit('Access denied');

$opt['title'] = 'Промокоды';

$uid = $user['id'];
$login = $user['login'];

$msg = '';

if (isset($_POST['activate'])) {
$code = trim($_POST['code']);

if ($code == '') {
$msg = '<div class="alert alert-danger">Заполните поле Промокод!</div>';
} else {

$promo = $db->query("SELECT * FROM db_promocode WHERE code = ? AND status = 0", [$code])->fetchArray();

if (!$promo) {
$msg = '<div class="alert alert-danger">Промокод недействителен!</div>';
} else {

$sum = $promo['sum'];

if ($promo['type'] == 1) {
$db->query("UPDATE db_users SET money_p = money_p + '$sum' WHERE id = '$uid'");
} else {
$db->query("UPDATE db_users SET money_w = money_w + '$sum' WHERE id = '$uid'");
}

$db->query("
UPDATE db_promocode
SET status = 1, uid = '$uid', login = '$login'
WHERE id = '{$promo['id']}'
");

$msg = '<div class="alert alert-success">Вы получили '.$sum.' рублей!</div>';
}
}
}
?>

<div class="alert alert-info text-center">
В этом разделе Вы можете активировать промокод и получить средства.<br>
Каждый промокод можно активировать <b>только один раз</b>.
</div>

<div class="row">
<div class="col-md-6">
<div class="card p-3 shadow">

<h5 class="text-success">Активировать промокод</h5>

<?=$msg?>

<form method="post">
<input type="text" name="code" class="form-control mb-2" placeholder="Промокод">
<button class="btn btn-primary w-100" name="activate">АКТИВИРОВАТЬ</button>
</form>

</div>
</div>

<div class="col-md-6">
<div class="card p-3 shadow">

<h5>Последние 10 активаций</h5>

<table class="table table-sm text-center">
<tr>
<th>ID</th><th>Промокод</th><th>Сумма</th><th>Пользователь</th>
</tr>

<?php
$list = $db->query("SELECT * FROM db_promocode WHERE status = 1 ORDER BY id DESC LIMIT 10")->fetchAll();
foreach ($list as $p):
?>
<tr>
<td><?=$p['id']?></td>
<td><span class="text-success"><?=$p['code']?></span></td>
<td><?=$p['sum']?> ₽</td>
<td><?=$p['login']?></td>
</tr>
<?php endforeach; ?>

</table>

</div>
</div>
</div>
и роутер
'/user/promocode' => 'promocode.php', // Промокоды
 
тут на сайте надо смотреть может все таки правила доступа неправильно прописал
Сообщение автоматически объединено:

И файл сам куда залил в папку юзверя?
 
тут на сайте надо смотреть может все таки правила доступа неправильно прописал
Сообщение автоматически объединено:

И файл сам куда залил в папку юзверя?
да папку user
 
Ну тут без пациента не разобраться)))
 
что ещо скинут вам
 
косяк где то в скрипте,файл рабочий. и routes без ошибки
'/user/promocode' => 'promocode.php', //

1770117011803.png
 
все спс ребята понял чем причина
Сообщение автоматически объединено:

при активация у меня такой ошибка емае помогите уже 3 дня не могу справиться
Сообщение автоматически объединено:

<?php
if (!defined('FastCore')) exit('Access denied');

$opt['title'] = 'Управление промокодами';

/* Создание промокода */
if (isset($_POST['create'])) {

$sum = round((float)$_POST['sum'], 2);
$type = (int)$_POST['type'];

if ($sum <= 0) {
echo '<div class="alert alert-danger">Введите корректную сумму</div>';
} else {

// Генерация кода
$code = strtoupper(bin2hex(random_bytes(4)));

// Вставка
$db->query("
INSERT INTO db_promocode
(code, sum, type, status, add)
VALUES (?, ?, ?, 1, ?)
", [
$code,
$sum,
$type,
time()
]);

echo '<div class="alert alert-success">
Промокод создан: <b>' . htmlspecialchars($code) . '</b>
</div>';
}
}

/* Удаление промокода */
if (isset($_GET['delete'])) {
$id = (int)$_GET['delete'];
$db->query("DELETE FROM db_promocode WHERE id = ?", [$id]);
echo '<div class="alert alert-info">Промокод удалён</div>';
}
?>

<div class="d-flex justify-content-between align-items-center mb-4">
<h4>Управление промокодами</h4>
<a href="/admin" class="btn btn-secondary">← Назад</a>
</div>

<form method="post" class="card p-3 mb-4">
<div class="row">
<div class="col-md-4">
<label>Тип баланса</label>
<select name="type" class="form-control">
<option value="1">Для покупок</option>
<option value="2">Для вывода</option>
</select>
</div>

<div class="col-md-4">
<label>Сумма</label>
<input type="number" step="0.01" name="sum" class="form-control" required>
</div>

<div class="col-md-4 d-flex align-items-end">
<button name="create" class="btn btn-success w-100">
Создать промокод
</button>
</div>
</div>
</form>

<div class="card">
<table class="table table-bordered mb-0 text-center">
<thead>
<tr>
<th>ID</th>
<th>Код</th>
<th>Сумма</th>
<th>Тип</th>
<th>Пользователь</th>
<th>Создан</th>
<th>Активирован</th>
<th>Статус</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$list = $db->query("SELECT * FROM db_promocode ORDER BY id DESC");

if ($list) {
foreach ($list as $p) {
?>
<tr>
<td><?= $p['id'] ?></td>
<td><code><?= $p['code'] ?></code></td>
<td><?= number_format($p['sum'], 2) ?> ₽</td>
<td><?= $p['type'] == 1 ? 'Покупки' : 'Вывод' ?></td>
<td><?= $p['login'] ?: '—' ?></td>
<td><?= date('d.m.Y H:i', $p['add']) ?></td>
<td><?= $p['activated'] ? date('d.m.Y H:i', $p['activated']) : '—' ?></td>
<td><?= $p['status'] ? 'Активен' : 'Использован' ?></td>
<td>
<?php if ($p['status']): ?>
<a href="?delete=<?= $p['id'] ?>" class="btn btn-sm btn-danger">Удалить</a>
<?php endif; ?>
</td>
</tr>
<?php
}
} else {
echo '<tr><td colspan="9">Промокодов нет</td></tr>';
}
?>
</tbody>
</table>
</div>
Сообщение автоматически объединено:

<?php
if (!defined('FastCore')) exit;

$opt['title'] = 'Промокод';

/* Проверка авторизации */
if (!isset($user['id'])) {
echo '<div class="alert alert-danger">Авторизуйтесь</div>';
return;
}

/* Активация */
if (isset($_POST['activate'])) {

$code = strtoupper(trim($_POST['code']));
$uid = (int)$user['id'];
$login = $user['login'];

$promo = $db->query("
SELECT * FROM db_promocode
WHERE code = ? AND status = 1
LIMIT 1
", [$code]);

if (!$promo || !isset($promo[0])) {

echo '<div class="alert alert-danger">
Промокод недействителен
</div>';

} else {

$promo = $promo[0];

if ((int)$promo['type'] === 1) {
$db->query(
"UPDATE db_users SET balance = balance + ? WHERE id = ?",
[$promo['sum'], $uid]
);
} else {
$db->query(
"UPDATE db_users SET balance_out = balance_out + ? WHERE id = ?",
[$promo['sum'], $uid]
);
}

$db->query("
UPDATE db_promocode
SET status = 0,
login = ?,
uid = ?,
activated = ?
WHERE id = ?
", [
$login,
$uid,
time(),
$promo['id']
]);

echo '<div class="alert alert-success">
Промокод успешно активирован
</div>';
}
}
?>

<form method="post" class="card p-3 mt-3">
<label>Введите промокод</label>
<input type="text" name="code" class="form-control mb-2" required>

<button name="activate" class="btn btn-success">
Активировать
</button>
</form>
Сообщение автоматически объединено:

[td]
[/td]
[td]
1
[/td]
[th]id
Первичный
[/th][td]int[/td][td]Нет[/td][td]Нет[/td][td]AUTO_INCREMENT[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
2
[/td]
[th]code
Индекс
[/th][td]varchar(64)[/td][td]utf8_general_ci[/td][td]Нет[/td][td]Нет[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
3
[/td]
[th]sum[/th][td]float(10,2)[/td][td]Нет[/td][td]Нет[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
4
[/td]
[th]type[/th][td]tinyint(1)[/td][td]Нет[/td][td]1[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
5
[/td]
[th]uid[/th][td]int[/td][td]Да[/td][td]NULL[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
6
[/td]
[th]login[/th][td]varchar(50)[/td][td]utf8_general_ci[/td][td]Да[/td][td]NULL[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
7
[/td]
[th]status[/th][td]tinyint(1)[/td][td]Нет[/td][td]1[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
8
[/td]
[th]activated[/th][td]int[/td][td]Да[/td][td]NULL[/td]
[td][/td][td][/td]
[td]
[/td]
[td]
9
[/td]
[th]add[/th]
 

Вложения

  • Снимок экрана 2026-02-09 163257.png
    Снимок экрана 2026-02-09 163257.png
    18.5 КБ · Просмотры: 0
Последнее редактирование:
  • Like
Реакции: Exp
Назад
Верх Низ