Создать ответ 
Не получается получить данные с БД в img
Автор Сообщение
by_haskell Не на форуме
Ефрейтор
*

Сообщений: 11
У нас с: Jan 2014
Сообщение: #1
Не получается получить данные с БД в img
Возможно немного не понятное название темы, просто как назвать с такой точностью, что бы понять суть - не смог.


Суть такова, в БД таблице пользователей есть столбец "team" там хранятся цифры 1,2,3 и т.д. мне нужно вставить (для каждого юзера свой номер предпочитается) картинку. Более понятно в коде.

Код:
<?php
include_once("bd.php");

$resultat = mysql_query("SELECT * FROM users WHERE id='$_GET[id]'");
$array = mysql_fetch_array($resultat);
?>
<?php
  get_page()->begin_left_side();
              

if(empty($login) and empty($password)){
echo "<div class='data'><table>
<b>Авторизация</b>
<form action='login.php' method='POST'>
<tr>
<td>Логин:</td>
      <td><input type='text' maxlength='10' size='10'  name='login'></td>
      </tr>
      <tr>
      <td>Пароль:</td>
      <td><input type='password' size='10' name='password'></td>
      </tr>
      <tr>
      <td colspan='2'><center><input type='submit' value='Войти' name='submit'></center></td>
      </tr>
      </form>
</table>        
<center><a href='registration.php'>Регистрация</a> <br> <a href='password.php'>Забыл пароль</a></center></div>";
}
else{
echo "<div class='data'><center>$login | <a href='exit.php'>Выход</a><br> <img src='emblems/".$team.".png'> <br><a href='profile.php?id=".$id_user."'>Профиль</a> ( <a href='edit.php?id=".$id_user."'>Изменить</a> )</center></div>";
}

  echo "<div class='data'><a href='./'>Главная</a> </div>";
  echo "<div class='data'>Блок информации слева 2</div>";
  echo "<div class='data'>Блок информации слева 3</div>";

  get_page()->end_left_side();
?>

Но именно вот этот код: <img src='emblems/".$team.".png'> не принимает вместо .$team. значение написанное в столбце team. Как можно это исправить, работа над своим проектом стала из-за этой ерунды казалось бы..
27.01.2014 03:30:58
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #2
RE: Не получается получить данные с БД в img
В строчке $array = mysql_fetch_array($resultat); Вы получили результат SQL запроса в виде массива, а $team - переменная, которая не описана ранее и следовательно пустая.

Правильно будет использовать $array[team] вместо $team.

P.S. Так же у Вас в строке $resultat = mysql_query("SELECT * FROM users WHERE id='$_GET[id]'"); содержится уязвимость.

Необходимо фильтровать полученные данные из $_GET[id], чтобы злоумышленники не могли сделать SQL инъекцию. Например так:
if (is_numeric($_GET[id])) $id=$_GET[id];
else $id='';
А в $resultat = mysql_query("SELECT * FROM users WHERE id='$id'"); подставлять уже не $_GET[id], а $id.
27.01.2014 18:34:34
Найти все сообщения Цитировать это сообщение
by_haskell Не на форуме
Ефрейтор
*

Сообщений: 11
У нас с: Jan 2014
Сообщение: #3
RE: Не получается получить данные с БД в img
(27.01.2014 18:34:34)Admin писал(а):  В строчке $array = mysql_fetch_array($resultat); Вы получили результат SQL запроса в виде массива, а $team - переменная, которая не описана ранее и следовательно пустая.

Правильно будет использовать $array[team] вместо $team.

P.S. Так же у Вас в строке $resultat = mysql_query("SELECT * FROM users WHERE id='$_GET[id]'"); содержится уязвимость.

Необходимо фильтровать полученные данные из $_GET[id], чтобы злоумышленники не могли сделать SQL инъекцию. Например так:
if (is_numeric($_GET[id])) $id=$_GET[id];
else $id='';
А в $resultat = mysql_query("SELECT * FROM users WHERE id='$id'"); подставлять уже не $_GET[id], а $id.

Спасибо за весьма подробный ответ и совет, сейчас все это обработаю.

Ну вот пробовал, код страницы не буду вылаживать нет необходимости от уязвимости уже поставил - еще раз спасибо))
<img src='emblems/".$array[team].".png'>
Пробовал без ". ." все равно не берет.
(Последний раз сообщение было отредактировано 27.01.2014 в 18:45:15, отредактировал пользователь by_haskell.)
27.01.2014 18:37:21
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #4
RE: Не получается получить данные с БД в img
А у Вас точно SQL запрос что-то выдает?

Добавьте после строки $resultat = mysql_query("SELECT * FROM users WHERE id='$_GET[id]'"); строчку echo '***'.mysqli_num_rows($resultat).'***';

Какая цифра у Вас между звездочками? Если 1, то SQL запрос вернул данные, если 0 - то нет.
27.01.2014 18:58:58
Найти все сообщения Цитировать это сообщение
by_haskell Не на форуме
Ефрейтор
*

Сообщений: 11
У нас с: Jan 2014
Сообщение: #5
RE: Не получается получить данные с БД в img
(27.01.2014 18:58:58)Admin писал(а):  А у Вас точно SQL запрос что-то выдает?

Добавьте после строки $resultat = mysql_query("SELECT * FROM users WHERE id='$_GET[id]'"); строчку echo '***'.mysqli_num_rows($resultat).'***';

Какая цифра у Вас между звездочками? Если 1, то SQL запрос вернул данные, если 0 - то нет.

Звездочки и выводит, сами вот посмотрите *** не думаю что реклама.. все же сайт еще нулевой.

Admin: Ссылку на сайт удалил.
27.01.2014 19:10:43
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #6
RE: Не получается получить данные с БД в img
Не знаю, что Вам посоветовать, т.к. SQL запрос вернул 0 строк. Возможно, в базе нет нужного id либо вообще пусто...
27.01.2014 19:15:55
Найти все сообщения Цитировать это сообщение
by_haskell Не на форуме
Ефрейтор
*

Сообщений: 11
У нас с: Jan 2014
Сообщение: #7
RE: Не получается получить данные с БД в img
(27.01.2014 19:15:55)Admin писал(а):  Не знаю, что Вам посоветовать, т.к. SQL запрос вернул 0 строк. Возможно, в базе нет нужного id либо вообще пусто...

Ну спасибо и на этом, буду дальше копать, вы немного сподвинули с меня))

Нашел ответ, вылож сюда вдруг у кого будет подобное))
Добавил еще вот что:
$resultat1 = mysql_query("SELECT * FROM users");
$array1 = mysql_fetch_array($resultat1);

Так как там было WHERE id='$_GET[$id]'
И вывел через $array1

Вывелось замечательно, только вот что думаю не уязвимо ли? Ну здесь просто не очень разбираюсь в этом пункте пока что))
(Последний раз сообщение было отредактировано 27.01.2014 в 19:53:29, отредактировал пользователь by_haskell.)
27.01.2014 19:20:41
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru