1. PHP / Говнокод #19960

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    <? require 'config/bd.php'; ?>
    <?
    if($_POST["title"]){
    $id = intval($_POST["id"]);
    $title = intval($_POST["title"]);
    $num = mysql_num_rows(mysql_query("SELECT id FROM banner WHERE id = '".$id."'"));
    if($num>0){
    mysql_query("UPDATE banner SET url = '$url', img = '$img', title = '$title', day = '$day', active = '".$_POST["active"]."', active_to = '$active_to' WHERE id = '".$id."'");
    ?>
    <div class="color='red'">Баннер отредактирован</div>
    <?
    }
    }
    if($_POST["id"]){
    $id = intval($_POST["id"]);
    $title = intval($_POST["title"]);
    $num = mysql_num_rows(mysql_query("SELECT id FROM banner WHERE id = '".$id."'"));
    if($num>0){
    $row = mysql_fetch_array(mysql_query("SELECT * FROM banner WHERE id = '".$id."'"));
    ?>
    <form method="post" action="">
    <strong>ID:</strong> <?=$row['id'];?><br>
    <strong>Ссылка перехода:</strong> <?=$row['url'];?><br>
    <strong>Ссылка на баннер:</strong> <?=$row['img'];?><br>
    <strong>Заголовок:</strong> <?=$row['title'];?><br>
    <strong>Дней:</strong> <input type="text" size="5" name="id" value="<?=$row['day'];?>">
    <strong>Активен?:</strong><select name="active"><option value="1" <? if($row["active"]==1){?>selected="selected"<? }?>>Да</option><option value="0" <? if($row["active"]==0){?>selected="selected"<? }?>>Нет</option></select><br>
    <strong>Активен до:</strong> <input type="text" size="10" name="id" value="<?=$row['active_to'];?>">
    <input type="hidden" name="id" value="<?=$row['id'];?>">
    <input type="submit" value="Сохранить">
    </form>
    <?
    }else{
    ?>
    Баннер не найден
    <?
    }
    }?>
    <form method="post" action="">
    Введите ID баннера: <input type="text" name="id">
    <input type="submit" value="Поиск">
    </form>

    Что здесь не так? Первую часть поиск по ID проходит! Дале выскакивает форма редактирования, ввел данные нажимаю Сохранить но ничего не происходит! Просто игнор! Исправьте пж!

    Запостил: Andriu, 07 Мая 2016

    Комментарии (22) RSS

    • Сам исправляйте, ГК тебе не форум с кучей дибилов которые помогают друг другу, здесь совсем другие дибилы которых объединяет говно
      Ответить
    • 1. Отступы.
      2. Отделение вёрстки от логики.
      3. По возможности использовать подготовленные выражения (prepared statements) в SQL.

      Попытаемся разобрать, что тут происходит:
      <? if($_POST["title"]){
          // какой-то код
          if($num>0){
              mysql_query("UPDATE ...");
              ?><div class="color='red'">Баннер отредактирован</div><?
          }
      }
      
      if($_POST["id"]){
          // какой-то код
          if($num>0){
              $row = mysql_fetch_array(mysql_query("SELECT * FROM banner WHERE id = '".$id."'"));
              // форма сохранения
          }else{
              ?>Баннер не найден<?
          }
      }?>
      <!-- форма поиска -->


      Обе формы делают запрос к тому же самому URL, на котором находятся. Обе формы отправляют единственный параметр id (форма сохранения отправляет id, полученный из базы, который в случае уникального индекса совпадает с ранее полученным).

      Сохранение будет происходить, только если кто-то отправит параметр title.

      Вывод: автор сам не знает, что хочет сделать.
      Ответить
      • бинго!!! проблема этого кода конечно в отступе
        Ответить
    • Вот здесь есть всё по твоей проблеме: http://goo.gl/QT6qLC
      Ответить
    • Мужик, ты бы хотя бы код отформатировал

      А то так рак мозга не долго получить
      Ответить
    • тут плохо буквально все

      этот код надо обоссать и сжечь
      а тебе нужно никогда (никогда!!!!) даже не пытаться стать программистом
      Ответить
      • Ну, зачем же так категорично. Может, автор учится классе в шестом, для такого возраста это нормально.
        Ответить
        • автор только учица, а его уже научили

          1) мешать HTML, логику и SQL
          2) завязывать код на худшую из БД
          3) делать SQL инъекции

          какой язык кроме ПХП мог научить этому сразу?
          Ответить
          • VisualBasic. Ну или C#.
            Ответить
          • > SQL
            > БД
            JS конечно
            Ответить
          • А чо сразу MySql? Нормальная БД.
            Ответить
            • плохо даже не то, что это mysql (для toy project пойдет)
              а плохо что к ней привязали
              Ответить
              • > а плохо что к ней привязали

                Что значит "привязали"? Не пишут запросы через 2 слоя абстрагирования от БД?
                Ответить
                • > Что значит "привязали"?
                  Заюзали устаревшие mysql_* функции, которые даже подготовленные запросы не умеют.

                  З.Ы. `Ну` `хоть` `не` `волосатый` `код`, `и` `то` `cчастье`.
                  Ответить
                  • `Чем` `плох` `волосатый` `код`? [Как] [будто] [квадратные] [скобки] [лучше].
                    Ответить
      • Если обоссать, плохо гореть будет. Может быть, наоборот, сначала сжечь, а потом обоссать пепел?
        Ответить
    • >> <? require 'config/bd.php'; ?>

      Узнаю почерк адептов Жопова и пРуссакова.
      Ответить

    Добавить комментарий