Обучение/Помощь новичкам | Форма отправки текста в бд. помогите. туплю.
по сути форма для того чтобы пользователь мог отправить в бд ссылку нв изображение которое будет отображаться вместо аватара персонажа. При отпраке кидает на
sql
avatar_user html
/avatar/gold.php ?err=1
php
<?php $location = true; require_once($_SERVER['DOCUMENT_ROOT']."/core/func.php"); logs(); head("Смена аватара",$uid); $r = rand(100000,999999); // // if(isset($_REQUEST['ok'])){ $avatar_new = abs(intval($_POST['avatar_user'])); { header('location:?err=1'); exit(); } qry("UPDATE `users` SET `avatar_user` = ? WHERE `id` = ? LIMIT 1", array($avatar_new,$uid)); msg2("Смена прошла успешно"); header('location:?'); exit(); } // // ?> <div class="tophead"> </div> <div class="tophead cntr"> Ведите полный URL адрес картинки или фото <br> <form method="post" action="/avatar/gold.php" > <input class="" type="text" name="avatar_new" maxlength="255" value="http://" /> <br> <input type="submit" name="ok" class="" value="Сменить"> </form> </div> <a href="/shop.php" class="tophead">Вернуться назад</a> <? // // foot($uid); // // ?>
DELETED
28 марта 2021, в 1:07
Delete
1.
<input class="" type="text" name="avatar_new" maxlength="255" value="http://" />
и здесь
$avatar_new = abs(intval($_POST['avatar_user']));
Названия полей разные.
--------------------
2. И здесь не понятно что за фигурные скобки:
$avatar_new = abs(intval($_POST['avatar_user']));
{
header('location:?err=1');
exit();
}
Предполагаю что так должно быть:
if (empty($avatar_new)) {
header('location:?err=1');
exit();
}
________
посл. ред. 28.03.2021 в 01:08; всего 1 раз(а); by Мистика
Как я понимаю что-то не хватает.
php
if(проверка){ header('location:?err=1'); exit(); }
DELETED
28 марта 2021, в 1:17
Delete
Числовые фильтры здесь лишние
$avatar_new = abs(intval($_POST['avatar_user']));
Должно быть, что то наподобие:
$avatar_new = mysql_real_escape_string($_POST['avatar_user']);
Мистика , там немного больше кода я планировал и в оригинале (точнее в желаемом варианте) всё выглядит так но изза того что неполучалось убрал все ограничители лишь бы отправить данные в сейчас кажется что проблема всётаки в самой строке которая принимает инфу в бд
php
<?php $location = true; require_once($_SERVER['DOCUMENT_ROOT']."/core/func.php"); logs(); head("Смена аватара",$uid); $r = rand(100000,999999); // // if(isset($_REQUEST['ok'])){ $ava = abs(intval($_POST['ava'])); $ruby = $user['gold']; if($user['avatar_lock'] == 2){ header('location:?err=1'); msg2("Вам запрещено менять аватар по причине нарушения пользовательского соглашения"); exit(); } if($user['avatar_lock'] == 1){ header('location:?err=2'); msg2("Смена аватара доступна только с премиумом."); exit(); } if($ruby < 500){ header('location:?err=3'); msg2("У вас недостаточно рубинов"); exit(); } qry("UPDATE `users` SET `gold` = `gold` - ?, `avatar_user` = ?, `avatar` = ? WHERE `id` = ? LIMIT 1", array(500,$ava,8,$uid)); msg2("Обмен прошел успешно"); header('location:?'); exit(); } // // ?> <div class="tophead"> <li>Стоимость смены<img src="/images/ruby.png" width="17px" height="17px" alt=""> 500 рубинов</li> <li>У вас: <img src="/images/ruby.png" width="17px" height="17px" alt=""> <?=$user['gold'];?> рубинов</li> </div> <div class="tophead cntr"> Укажите ссылку изображения размещённого в сети интернет <br> <form action="/avatar/gold.php?" method="post"> <input class="" type="text" name="ava" maxlength="255" value="http://" /> <br> <input type="submit" name="ok" class="" value="Обменять"> </form> </div> <a href="/shop.php" class="tophead">Вернуться назад</a> <? // // foot($uid); // // ?> php
avatar_user php
avatar_user
DELETED
28 марта 2021, в 2:00
Delete
#4 пост смотрите.
В базу всегда 0 будет записываться. Т.к abs и intval ничего не пропускают, кроме числовых значений
________
посл. ред. 28.03.2021 в 02:01; всего 1 раз(а); by Мистика
Мистика ,
avatar_user
тип VARCHAR
длина 255
по умолчанию Нет
сравнение utf8_general_ci
NULL нет
не знаешь может быть здесь что то не верно? Кстати когда создавал выбрал дефолт 0, а уже потом отредактировал на нет и теперь у всех в avatar_user 0 валяется
avatar_user
тип VARCHAR
длина 255
по умолчанию Нет
сравнение utf8_general_ci
NULL нет
не знаешь может быть здесь что то не верно? Кстати когда создавал выбрал дефолт 0, а уже потом отредактировал на нет и теперь у всех в avatar_user 0 валяется
Мистика , это приемлимо для php7?
php
$avatar_new = mysql_real_escape_string($_POST['avatar_user']);
может быть просто qry?
DELETED
28 марта 2021, в 2:09
Delete
А с обёрткой БД "qry" я незнакома.
________
посл. ред. 28.03.2021 в 02:09; всего 1 раз(а); by Мистика