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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $data = "<?php define('DSN', 'mysql:dbname={$_POST['db_name']};host={$_POST['host_mysql']}'); define('DBUSER', '{$_POST['login_mysql']}'); define('DBPASS', '{$_POST['password_mysql']}');";
    $mysql_string = file_get_contents( 'class/mysql.php' );
    $new_mysql = $data . ' ' . $mysql_string;
    if ( !file_put_contents( 'class/mysql.php', $new_mysql ) ) {
    	errorMessage( "Не удалось сохранить файлы конфигураций, пожалуйста обратитесь в службу технической поддержки клиентов" );
    }

    install.php

    Запостил: kindofbear, 15 Июля 2014

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

    • $data = "<?php define('DSN'


      а на чем это написано, простите?
      или php вызывает php ?
      Ответить
      • Не вызывает, а дописывает php код в начало файла, где определён класс объекта базы данных :) эпичнейший метод работы с конфигами
        Ответить
        • Имхо пользоваться шаблонизатором в данном случае будет более ресурсоемко, ввиду количества заполняемой информации.
          Ответить
          • А вас не смущает, что если выполнить два раза install, то будет....?)
            Ответить
            • > если выполнить два раза install, то будет....?
              что будет? новый конфиг перепишет старый?
              Ответить
              • Ничего не будет. Т.к. install.php на последнем шаге установки, как правило, самовыпиливается.
                Ответить
                • У них не выпиливается и
                  $mysql_string = file_get_contents( 'class/mysql.php' );
                  $new_mysql = $data . ' ' . $mysql_string;

                  репитит данные до бесокнечности
                  <?php ... <?php ... <?php
                  Ответить
          • В любом случае, это слегка костыльный способ, не гоже так конфиги хранить, можно было бы завести отдельный файл и перезаписывать его содержимое полностью (хотя бы)
            Ответить
    • Емаксеры одобряют
      Ответить
    • Пользователь базы данных "'); do_something_nasty();"
      Ответить

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