"PHP" / Говнокод #1382 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 guest, (Updated )

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

  • Иван:
    > Второе - он совершенно ничего не знает об 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/> - заебали "академики"((((
    Ответить
  • да тут все академики куда ни плюнь, свой код выложите а мы всей толпой посмотрим и разберем по косточкам, а потом и в каментах выебывайтесь... от собственной злобы дристос еще не пробрал? По ебалу они тут друг дружку херачат, хе хе
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8