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

    +152.3

    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
    if($_POST[tel]=='')
    	{
    		print "<script language=\"javascript\">\n";
    		print "showmsg('tel');\n";
    		print "</script>\n";
    	}
    	if($_POST[name]=='')
    	{
    		print "<script language=\"javascript\">\n";
    		print "showmsg('name');\n";
    		print "</script>\n";
    	}
    	if(($_POST[name]!='')&&($_POST[tel]!=''))
    	{
    		print "<meta http-equiv=\"Refresh\" content=\"0;URL=send.php?name=$_POST[name]&tel=$_POST[tel]\" />\n";
    		die();
    	}

    Разбираю один движок инет-магазина. Первое что я понял - автор идиот. Второе - он совершенно ничего не знает об elseif'ах

    Запостил: guest, 18 Июля 2009

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

    • lolwho:
      Феерический бред :D
      Ответить
    • Иван:
      > Второе - он совершенно ничего не знает об elseif'ах

      Объясни тогда как с помощью elseif переписать этот код, чтобы одновременно выводилось showmsg('tel') и showmsg('name').

      Код с логической точки зрения правильный
      Ответить
    • TEHEK:
      я даж не знаю, что поставить =)

      Логика такова:
      если отсутствует телефон или имя, вывести соответствующие сообщения. если все на месте - перенаправить...

      Ельзифы тут действительно ни при чем, но сама по себе логика остается отстоем.

      Что может помешать сделать
      send.php?name=Вася+пупкин&tel=лапша
      Ответить
    • [quote]send.php?name=Вася+пупкин&tel= лапша[/quote]
      Может, то что это POST? =)
      Ответить
    • Хотя, конечно, это не даёт никаких гарантий.
      Ответить
    • O_O:
      [quote=Говногость]Может, то что это POST? =[/quote]
      с каких пор [quote]send.php?name=Вася+пупкин&tel=лапша[/quote] это пост? :)
      Ответить
    • Во-первых, запостивший идиот и сам ничего не знает о elseif'ах, они здесь не подойдут к логике. Во-вторых, код не столько говно, сколько просто некрасив, но при этом легко читается.
      Ответить
    • тут должна быть стандартная валидация.. заполняем массив errors, в конце смотрим,если он не пустой - то есть ошибки, которые и выводим.
      Ответить
    • <?php
      $e = false;
      foreach (array('name', 'tel') as $v)
        if ($_POST[$v] == '')
        {
          echo "<script type='text/javascript'>\nshowmsg('$v');\n</script>\n";
          $e = true;
        }
      if ($e)
      {
        echo '<meta http-equiv="Refresh" content="0;URL=send.php?name='.htmlspecialchars($_POST['name']).'&tel='.htmlspecialchars($_POST['tel'])."\" />\n";
        die();
      }
      ?>


      З.Ы. За вещи вроде $_POST[name], когда имя ключа массива не заключено в кавычки, надо бить по ебалу. При уровне ошибок E_NOTICE такие конструкции устраивают на страницах настоящую веселуху.
      Ответить
    • по ебалу бить не стоит - достаточно просто обьяснить.... а вот стоит бить по ебалу за <b>if ($_POST[$v] == '')<b/> (ибо эксепшн на пустом месте от долбоебизма), и за использование в данном случае <b> foreach<b/> - заебали "академики"((((
      Ответить
    • да тут все академики куда ни плюнь, свой код выложите а мы всей толпой посмотрим и разберем по косточкам, а потом и в каментах выебывайтесь... от собственной злобы дристос еще не пробрал? По ебалу они тут друг дружку херачат, хе хе
      Ответить

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