Обучение/Помощь новичкам | Форма отправки текста в бд. помогите. туплю.
по сути форма для того чтобы пользователь мог отправить в бд ссылку нв изображение которое будет отображаться вместо аватара персонажа. При отпраке кидает на
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 Мистика