За последние 24 часа нас посетили 21712 программистов и 1054 робота. Сейчас ищут 597 программистов ...

Нужна помощь по "Warning: Illegal string offset"

Тема в разделе "PHP для новичков", создана пользователем coonskin, 14 дек 2017.

  1. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Всем привет
    Когда ввожу правильный ключ в ссылке buy.php?key=0buGoYsQ, то всё хорошо и отображается,
    а когда не правильный который не в базе данных то пишет ошибку где key, group и time, вот такую: Illegal string offset
    хотелось бы исправить данную проблему.
    и надо чтобы писало "Ключ не найден"
    Всем спасибо кто откликнется.
    Warning: Illegal string offset 'group' in путь on line 41
    PHP:
    1. <?php
    2. $key=isset($_GET['key'])?$_GET['key']:1;
    3. $link = mysqli_connect ('хост','логин','пароль','база ключей');
    4. echo "<h2><center>Ваш ключ:</h2>";
    5. ?>
    6. <h2>Привилегия: <?php echo $data['group'] ?></h2>
    7. <h2>Время окончания действия: <?php echo $data['time'] ?></h2>
    8. <h2>
    9. Чтобы получить привилегию нужно ввести<br>
    10. В чат: !vipkey <?php echo $data['key'] ?><br>              
    11. Оставьте пожалуйста отзыв, он очень важен для нас <a href=""></a><br>
    12. Доступные команды: !admin ,!vip<br>
    13. Спасибо за покупку!<br><br>
    14. Бинды для паутинки<br>
    15. bind "z" "+hook" //Паутинка <br>
    16. bind "x" "+grab" //Граб<br>
    17. </h2>
     
    #1 coonskin, 14 дек 2017
    Последнее редактирование: 14 дек 2017
  2. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    41 это 6 строчка в том что я прикрепил.
     
  3. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Вот что выдало,
    Код (Text):
    1. Notice: Uninitialized string offset: 0 in C:\buy.php on line 41
     
  4. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Простите(
    PHP:
    1. $sql = "SELECT * FROM `vip_keys` WHERE `key`='$key'";
    2. $result = mysqli_query($link,$sql);
    3. $data = mysqli_fetch_assoc($result);
    Вот
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Пожалуйста без самоделятельности. Не надо показывать одно, а тестировать другое. Ты сам себе вредишь. Написано:
    offset: 0
    а в твоём коде в той строке, что якобы №41, индекс массива/строки не 0, а 'group'!
    --- Добавлено ---
    http://php.net/mysqli_fetch_assoc
    понимаешь, что происходит? если $key в твоём запросе ошибочный, то вместо массива, в $data будет NULL. что ты там делаешь за кадром мы хз. ты всё спрятал, партизан ))) но рецепт такой:
    проверяй, вдруг переменная $data пустая. например так:
    PHP:
    1. ...
    2. $data = mysqli_fetch_assoc(...);
    3. if ($empty(data)) {
    4.   die('Ключ не найден');
    5. }
     
    coonskin нравится это.
  6. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    А я сам додумал, вот так уже
    PHP:
    1. $non = "Not found";
    2. if(empty($data))
    3. {
    4.     echo '<h6>' . $non . '</h6>';
    5.     return;
    6. }
     
  7. coonskin

    coonskin Новичок

    С нами с:
    14 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Спасибо вам )
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Для "спасибо" есть кнопка с пальцем вверх. Когда кто-то её жмёт, я испытываю микро-оргазм.
     
    coonskin нравится это.
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    418 микро-оргазмов испытал , улет.