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

    +163

    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
    $param='72,pId,kladez;79,item,conf'; //Настройки скрипта
    $temp=explode(';',$param);
    $param=array();
    foreach($temp as $item){
     $tmp=explode(',',$item);
     $param[$tmp[0]]=array('mode'=>$tmp[2],'get'=>$tmp[1]);
    }
    //$param=Array ( [72] => Array ( [mode] => kladez [get] => pId ) [79] => Array ( [mode] => conf [get] => item ) )
    
    $field=array();
    if(isset($_POST['redactor'])){if($_POST['redactor']!=''){if(isset($_GET['id']) && (int)$_GET['id']>0 && isset($param[(int)$_GET['id']]) && isset($_SESSION['user']['id']) && (int)$_SESSION['user']['id']>0){ //вот это место меня выжигает просто
    	$field['user']=(int)$_SESSION['user']['id'];
    	$field['date']=date("Y-m-d H:i:s");
    	$field['comment']=$_POST['redactor'];
    	$field['mode']=$_GET[$param[(int)$_GET['id']]['mode']]
    	$field['id_page']=$_GET[$param[(int)$_GET['id']]['get']]
    	$field['parent']=0;
    }else{
     //Нас хакнуть попробовали
    }}else{
    //пустая форма ошибка
    }}
    //что-то дальше делаем

    Имеются ссылки вида http://example.com/index.php?id=72&pId=21 и http://example.com/index.php?id=79&item=2 где pId и item идентификаторы конкретной статьи.

    Запостил: Agel_Nash, 03 Августа 2011

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

    • $param='72,pId,kladez;79,item,conf'; //Настройки скрипта

      Достойный способ хранить настройки, чо. Читабельно, удобно, что пиздец.
      Видимо в отличии от индусов автору не платят за большее количество строк кода, а наоборот, штрафуют.
      Ответить
      • Данный скрипт работает в рамках CMS Modx и настройки передаются сниппету. под тип [!Ditto? &startID=`52` &tpl=`asd`!]
        Чтобы не засорять мозг строка из параметра была вынесена в переменную.
        Ответить
      • Да и на настройки не обращай внимание. по другому их просто нельзя было скрипту передать. Запись вида 72:pId=kladez|79:item=conf съест парсер CMS. Массив тоже не получится передать (только строка или число), да и то, в строке можно использовать только: "," и ";" Поэтому такое и разделение
        Ответить
        • Почему не обращать внимание? По-моему это пиздецовое задание параметров самое смешное в данном ГК, контекст не важен.

          Или ты не для поржать сюда код выложил?
          Ответить
        • > Запись вида 72:pId=kladez|79:item=conf съест парсер CMS
          > да и то, в строке можно использовать только: "," и ";"
          Это почему это? То же Ditto берём:
          [[Ditto? &startId=`123` &filter=`template,8,2|template,9,2|menut itle,fuck,8`]]
          Ответить
      • > kladez
        ты ничего не понимаешь, это же кладезь настроек!
        Ответить
    • Меня умилило написание redactor через c, а не k, как можно было бы ожидать. Типа по-аглицки.
      Ответить
    • isset($_SESSION['user']['id']) && (int)$_SESSION['user']['id']>0 /// Да, автора, пхп точно не обманет!!!
      Ответить
    • показать все, что скрытоvanished
      Ответить

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