Loading...
Обучение/Помощь новичкам | Форма отправки текста в бд. помогите. туплю.
по сути форма для того чтобы пользователь мог отправить в бд
sql
   avatar_user   
ссылку нв изображение которое будет отображаться вместо аватара персонажа. При отпраке кидает на
html
   /avatar/gold.php  ?err=1     
.tap.
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); // // ?>   
136412448 ,
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(); }   
3.
Числовые фильтры здесь лишние
$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   
которая принимает инфу в бд
Алексей ,
#4 пост смотрите.

В базу всегда 0 будет записываться. Т.к abs и intval ничего не пропускают, кроме числовых значений
________
посл. ред. 28.03.2021 в 02:01; всего 1 раз(а); by Мистика
Мистика ,
avatar_user

тип VARCHAR
длина 255

по умолчанию Нет

сравнение utf8_general_ci

NULL нет

не знаешь может быть здесь что то не верно? Кстати когда создавал выбрал дефолт 0, а уже потом отредактировал на нет и теперь у всех в avatar_user 0 валяется
Мистика ,
php
   $avatar_new = mysql_real_escape_string($_POST['avatar_user']);   
это приемлимо для php7?
может быть просто qry?
Алексей , Я всего лишь пример привела. Говорю к тому, что фильтровать нужно как строку, а никак число.
А с обёрткой БД "qry" я незнакома.
________
посл. ред. 28.03.2021 в 02:09; всего 1 раз(а); by Мистика
Онлайн: 5
Время:
Gen. 0.1006
(c) Bym.Guru 2010-2026