Задать вопрос
Ответы пользователя по тегу PHP
  • Как правильно, если это возможно вызвать класс внутри другого класса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) статический класс А
    тут
    class B {	
      function __construct() {
        $a->print_tst();
      }
    }
    кто и каким образом должен угадать что а это экземпляр класса А? соответственно:
    2) При обращении нужно создать экземпляр класса А, иначе такой вызов не имеет смысла.
    3) DI - передать в конструктор созданный экземпляр А
    Ответ написан
    Комментировать
  • Как сделать логику приложения на PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Конструктор для объектов может содержать неявный вызов инициализации. Например при передаче в конструктор id или имени сайта по нему загружается из базы все данные, однако обычно это делают через отдельный метод инициализации, который в конструкторе вызывают. если никаких параметров не передается - создается пустой(новй) объект.
    По поводу сессии - если в объекте нет ссылок на внешние ресурсы(например на DB), то serialize() работает, храните как строку, потом unserialize() для чтения из сессии.

    У вас в коде все же как-то все кривовато,
    1) прям в объекте сайта создается подключение к бд и фигачатся запросы,
    2) Названия классов пишутся с большой буквы
    3) тут же вывод каких то обработок... Вообще как будто не ооп а попытка писать объекты процедурным стилем.

    // конструктор объекта
    function __construct($id = ""){
      if($id==="") {do some}// создаем пустой объект
      else{ $this->initById($id);}
    }
    
    // в коде где создаем новый сайт
    $site = new Site();
    $site->add($dataset); // передаем параметры, можно отдельно каждый, можно заранее созданным массивом.
    Ответ написан
  • Следует ли закрывать подключение к MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    закрывать соединение нет необходимости, при завершении работы скрипта гарбажколлектор автоматически очищает соединение. Соответственно у вас лишний код, лишнее движение, неявное поведение, кароче все плохо. Если в будущем у вас на данной стадии скрипт не закончится, проблему с внезапной потерей связи с базой будет найти не очень просто.
    Ответ написан
    1 комментарий
  • Как правильно зиписать текст из textarea Tinymce в базу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Tinymce заменяет стандартное поле ввода, наследуя его имя. Если не можете понять как и что заменилось в хтмл смотрите var_dump($_POST) со стороны сервера.
    Ответ написан
    Комментировать
  • Удалить много таблиц из Phpmyadmin?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в теории я вижу несколько весьма извращенных методов, использующих запросы в мастер таблицу с вайлдкатами и прочей хренью, на практике - я бы не рискнул запускать где либо на своих проектах такое ... странное решение. Кроме того - явно ваш скилл еще не комильфо, если у вас сайты хранятся в одной базе "в разных таблицах". Выделите галочками что нужно удалить в структуре бд и не имейте себе мозг. Направьте вашу фантазию в другое русло, а время на обучение основам.

    PS: бэкап сначала сделайте.
    PPS: сделайте поиск по странице со всеми таблицами на "данное слово", выделите все галочки, затем снимите только подсвеченные поиском. Не всегда нужно использовать микроскоп, если есть молоток.
    Ответ написан
    1 комментарий
  • Как автоматически сгенерировать переменные из массива на выходе из цикла?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ничего менять не надо, отправляйте как есть сюда, первое место полюбому ваше!
    Ответ написан
    Комментировать
  • MVC во фреймворке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У вас крайне странное понимание паттерна mvc. Это код шаблона, который выводит хтмл. Вас смущает хтмл или наличие пхп кода?
    Мвц не просто разделяет "только код от только хтмл", он делит приложение на несколько относительно независимых частей, где:
    модель отвечает за основную логику в объектах отдельных типов(например пользователь, изображение, товар), вот в них нет (не должно быть по уму) никаих хтмл разметок, чисто логика относящаяся к описываемой сущности.
    контроллер отвечает за привязку урл и передаваемых данных к вьюшкам и шаблонам, создает объекты, выполняет их инициализацию с помощью пришедших данных и передает их в представление(читай в шаблон). Так же не должен содержать хтмл.
    вид - максимально отделенный от логики шаблон разметки. Так как в него надо все же как то передать данные, конечно же он содержит код пхп, но он не содержит(в идеале) логики сложнее чем циклический вывод и проверки.
    Ответ написан
    3 комментария
  • Не могу разобраться с GD?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Пользуйтесь нормальными редакторами кода с автокомплитом и подсветкой, тогда у вас будет гораздо меньше проблем с такими функциями как imagecreatefropmpng() например. И вообще почитать доки по гд, там все понятно написано, просто НАДО ЧИТАТЬ.
    Ответ написан
    3 комментария
  • Почему при регистрации и выходе из нее происходит ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мои глаза... Где вы этот кошмар пишете? В застенках гестапо? Кто вас так мучает? И зачем вы мучаете нас?

    написано черным по английскому: не отправляются заголовки патамучта уже начат вывод данных, который начат в dy_header.php, соответственно никакие куки
    setcookie(session_name(), '', time()-2592000, '/');
    тут уже не запишутся. Учите ну хоть какие-то основы прежде чем писать фикалокод.
    Ответ написан
    4 комментария
  • Почему данные не приходят на сервер?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как отлаживать лажу:
    1) проверить на стороне сервера что пришло куда надо, сделать ечо в первой строке(возможно тут url:'/changebase.php', или еще что -то...).
    2) проверить что метод прихода куда надо точно пост
    3) Сдeлать var_dump($_POST), посмотреть что наприходило вообще.
    4) искать неочевидные глюки аля забыли вставить форм тэг и тд.
    Ответ написан
    2 комментария
  • Как передавать пароль от браузера серверу, как его хранить на сервере и проверять корректность?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Пароль не должен отправляться в открытом виде по сети.
    где вы это прочитали? Пароль нигде не должен светиться при вводе и отправке, по этому парольное поле делают со звездочками, а для отправки используют метод post а не get, чтобы пароль не светился в строке браузера. Для защиты от атак mitm используют https, хотя при верном подходе это тоже не суперзащита, ключи могут перехватить, некоторую защиту дает, но если сессия обмена ключами поймана - уже можно забить на хттпс защиту.
    И также пароль не должен храниться в открытом виде на сервере.
    Логично, пожалуй единственная логичная строчка в посте )
    Получается, мы должны отправить не пароль, а хэш от него и соль, которым был присыпан пароль при хешировании.
    Не получается, мы отправляем пароль не зная соли, в этом вся соль )) Сервер принимает пароль от пользователя (открытый), хеширует его с солью(известной только серверу), и сравнивает с хранимым в базе. Если хеши совпали - пароль угадан верно )
    Ответ написан
  • Что значит этот код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    код явно рабочий, в исходниках мелькает куча проверок на $_POST, соответственно код явно рассчитан на исполнение чего-то через урл. Копаться в нем я конечно не буду (с), ищите антивирус для сайта в гугле. Как проникли на сайт - уйма вариантов, смотрите дату создания файлов, проверьте логи сервера(если настроены), возможно что-то найдете. Скорее всего воспользовались какой-то дырой вп или неверными настройками безопасности сервера. Скорее первое. Обновите вп, возможно это уже пофиксили в новой сборке. Файлы отсортировать по времени создания и все близкие по времени к данному проверить и если нужно удалить.
    Ответ написан
    Комментировать
  • Почему после переноса появилась ошибка синтаксиса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Код файла с ошибкой в студию, экстрасенсы все уехали на битву.
    При обфускации кода в любом случае нужно сделать перенос строки по ";", поменять ; на ; + \n\r , и тогда посмотреть в какой строке ошибка. А так - гадание на говнокоде.
    Ответ написан
    2 комментария
  • Что не так с этим PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    var_dump(class_exists(UserController)); // true
    че прям так и выдает true? и кавычки не нужны?
    пробейте сначала get_declared_classes()
    посмотрите или класс назван верно, и файл совпадает по регистру. Вроде пока больше мыслей нет )
    Ответ написан
    Комментировать
  • Почему не выполняется php код внутри js?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) алерт без пхп выполняется?
    2) Пхп без алерта выполняется?
    3) Файл вообще пхп или хтмл?
    Ответ написан
    Комментировать
  • Как сделать обработку формы без отправки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У меня есть текстовое поле. Мне нужно, что бы когда я ввожу в него текст он сразу обрабатывался,
    хм, я набираю 12.12, или 50.50.1050, что должен выдать скрипт по вашей логике? Я понимаю что вы пытаетесь имитировать автокомплит, правда не там где он подходит и не так как надо.
    Проще взять готовый элемент datapicker - выбрал дату - аяксом запросилось из базы. Там есть четкое событие заполненности поля, у вас же какая-то ерунда получится, если руками вводить, еще и дыра размером с паравоз на склинжект.
    Ответ написан
  • Какое значение переменной будет?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В пхп переменные простого типа передаются по значению, для передачи ссылки на переменную используется префикс &, начиная с пхп5 по ссылке передаются объекты, до этого объекты тоже передавались по значению(клонировались), теперь для клонирования объекта есть отдельная функция clone();
    Ответ написан
    Комментировать
  • Почему не отображаются фото?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ээ... и что? Если пропустить маты по поводу процедурщины, в коде ничего нет что бы наводило на мысль о возможных причинах. Ни ошибок из логов, ни данных в базе, ни даже вывода хтмл этого куска. То есть в данном случае это вопрос к экстрасенсам.

    Так как нормально отладить это нереально, идите по шагам.
    1) Для начала - что выдается в сырец хтмл в поле img?
    2) var_dump и print_r - полезнейшие функции в вашем случае. Проверьте что лежит в ваших переменных на всех этапах этой вакханалии.
    3) как вы проверили что файл физически присутствует на сервере и доступен снаружи по хттп? пробовали руками в браузере прописать до него путь? Открывается? В базу точно попали хоть какие-то значения?

    Как сможете ответить на эти вопросы - думаю либо найдете решение либо хотя бы поймете куда копать.

    ps:
    <img src="'.$final_image.'.jpg" class="ass"/>
    а в базе храните путь с именем, получаете 123.jpg.jpg или 123.gif.jpg, достаточно было посмотреть в браузере что вы выводите, с чего собственно и надо было начать.
    Ответ написан
    2 комментария
  • Почему не исполняется php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - вопрос легко ищется гуглом.
    Во вторых - разработчик должен знать что делает и зачем. Если по умолчанию хтмл файлы не исполняются и открываются в приоритетном порядке, значит так зачем-то нужно. Человек который хочет изучить свою область постарается прочесть и понять зачем это нужно. И подходит ли это решение для текущей задачи. А затем уже меняет настройки, если есть необходимость.
    Ответ написан
    Комментировать
  • Как сделать редирект после отправки заголовков?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    без при помощи ajax
    ? так без или при помощи?

    Если без - это условие выносится ДО вывода хтмл разметки, вообще не понятно по какому принципу у вас все написано, если сначала идет вывод хтмл, а затем какой-то код не относящийся к выводу. Так быть не должно.
    Если с аякс - на клиенте уже должна быть функция, которая перенаправляет яваскриптом на другую страничку, она вызывается по возврату от аяксовой функции успешного логина.
    Ответ написан