Задать вопрос
Ответы пользователя по тегу PHP
  • Как в цикле редактировать БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    вариант 1:
    Каждый из блоков заключить в тег <form></form>, внутри создать соответствующие скрытые поля. При субмите будете получать весь набор данных, согласно которым уже можно что-то в базу писать. У вас же судя по всему одна форма на весь список. По этому в обработчик попадают все данные, но та как поля дублируются по имени - учитываются последние полученные данные, то есть самые нижние поля. Что и происходит у вас, последний набор меняет состояние.
    Вариант 2: принцип как у варианта 1, только через яваскрипт отлавливать нажатую кнопку и от этого уже делать субмит нужных полей, например используя аякс. Вариант более сложный для новичка, и в целом не слишком популярный.
    Вариант 3: смесь 1 и 2 - при субмите формы отлавливать событие яваскриптом и отправлять данные аяксом на сервер в виде сериализованных данных. По результату ответа от сервера менять состояние кнопки яваскриптом на "готово", или как там у вас, и кнопку дизэйблить.
    Ответ написан
    Комментировать
  • Почему не отрабатывает php-скрипт по обращению из крона?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На будущее: PHP при вызове из крона(и из консоли вообще) использует настройки, отличные от пхп настроенного "наружу" через Апач.
    По этому:
    1) Все пути должны быть абсолютные, как к скрипту, так и внутри него
    2) Такие глобальные переменные как $_SERVER, $_GET, $_POST и прочие скорее всего будут пустыми.
    3) Для отладки норм будет ">> somepath/log.txt 2>&1", но если скрипт не выполнится ничего естественно туда не запишется(не забываем что и здесь нужно указать полный абсолютный путь).
    4) Ничего не мешает использовать вполне вменяемое мвц и объекты, достаточно сделать настроечный файл с инициализацией глобальных переменных "вручную" и, в некоторых случаях, подправить автозагрузку. Для такого у меня используется отдельный clibootstrap и cliController, в который можно только из консоли )
    Ответ написан
    Комментировать
  • Как делать INSERT по кнопке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    чета мало кода, ну да смысл примерно понятен...

    Хинт: инпут вида
    <input type='text' name='username[]' value='somename'>
    вставленный многократно, на стороне сервера будет интерпретирован как массив, который можно перебрать и получить весь список из ваших 100 строк. Если форма методом post, то соответственно на сервере будет $_POST['username'][0] = 'somename';
    Ответ написан
  • Как обратиться к объекту класса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в общем случае никак, нужно передать объект(читай ссылку) $data1 в метод класса 2.
    типа такого:
    $data1  = new Class1();
    $data2 = new Class2()
    $data2->funct1($data1);
    Ответ написан
    Комментировать
  • Какой php-фреймворк посоветуете изучить новичку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) CI, Laravel - низкий порог, простая архитектура, однако располагает к "небрежному" и "неклассическому" коду.
    Yii, Symphony, Zend - сложнее, хорошо структурированы, достаточно "чистый" код, более строгий подход к коду и архитектуре.

    Нужно быстро стартануть и устроиться - учите 1(лучше ларавель, свежее и популярнее), хотите роста и сложных задач вкупе с привычкой к качеству кода выше среднего - выбирайте из 2.
    Ответ написан
    Комментировать
  • Как решить проблему "Notice: Trying to get property of non-object"?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Больше похоже на ошибку в вашей нумерации, при пустом/ошибочном запросе $query будет не объектом.
    На всякий случай проверьте
    ...
    var_dump($this->db);
    $query = $this->db->query($sql);
    var_dump($query);
    ...
    Ответ написан
    1 комментарий
  • PHP mail с вложеним файла. Почему не приходят файлы 30-40 мегабайт? А только мелкие вложения?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ждем таких же вопросов про стринг и инт.
    Ответ написан
    3 комментария
  • Не могу отправить страницу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Для начала, уберите кучу тегов не относящихся к вопросу.

    header("Location: " . $_SERVER['DOCUMENT_ROOT'] . "/reg.php"); 
    // кавычки при конкатенации с переменными не нужны
    Ответ написан
    3 комментария
  • Оптимальна ли реализация чата?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если это не продакшн, а скажем, учебно-развлекательный проект, то пойдет. Можно увеличить интервал до 5 сек, а в базе выбирать по времени больше времени последнего полученного сообщения, это сократит нагрузку. Время надо отсылать при запросе к серверу. Все прочитанные получателем (т.е. отосланные в ответ на аякс запрос) записи чата помечаются в отдельном поле в таблице(например `readed` = 1), и в дальнейшем не выбираются. В идеале переписать на сокеты, ибо аякс интервалы не лучший способ реализации.
    Ответ написан
    Комментировать
  • Как реализовать отправку почты при помощи AJAX?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) data['message'] это что за нотация для жс? Может data.message?
    2) что пишет консоль браузера? Кучу ошибок?
    3) Для начала смотрите что в нетворк вам вернул пхп скрипт, ну и что отправилось тоже надо бы посмотреть
    4)
    var name = $('#name').val();
        var email = $('#email').val();
        var subject = $('#subject').val();
        var msg = $('#msg').val();
        var postData = 'name='+name+'&email='+email+'&subject=' +subject+'&msg=' +msg;

    можно заменить на var postData = $('.form-horizontal').serialize();

    UPD: Автор повесил на кнопку субмит инлайновый вызов функции, который я проморгал. Так как запрос аякса вызывается параллельно с субмитом формы(по клику на кнопку типа субмит), то ясное дело яваскрипт отработать не успевал, а форма субмитилась на свой же урл. Такие вот косяки.
    Для тех кто наткнется в будущем на подобное:
    1) НЕ ВЕШАТЬ ИНЛАЙН ФУНКЦИИ НА ЭЛЕМЕНТЫ, ИСПОЛЬЗУЙТЕ МЕХАНИЗМ ЛИСТЕНЕРОВ.
    2) Если страница перегружается - значит форма сработала явно, без аяксовой отправки(это можно было понять еще при упоминании того, что данные из нетворк отладчика "пропадают при отсылке аякса", но я опять же протупил)
    3) не вешать события на клик, если это обработчик формы, это плохо во всех смыслах, мешает нормальной валидации, мешает предотвращению оправки формы через код, и вообще - это плохо.
    Ответ написан
    5 комментариев
  • Как подставить значение из ТЕЧЕ в sql php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Юноша, этому коду (ну или источнику кода) лет больше чем вам.
    1) где вы это г откопали?
    2) Зачем вы занимаетесь некрофилиейфигней по древним манускриптам? Что хорошо для магии плохо для программирования.
    Ответ написан
    2 комментария
  • В чем может быть ошибка при загрузке изображения на сервер?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    //loadFile.exists() - true
    это вы проверили и выводит true, или так должно быть, но значение вы не проверяли?
    move_uploaded_file возвращает булево свойство, его надо обрабатывать.
    Я бы еще сделал var_dump($_FILE) первой строчкой, это дает понимание где отвалилось и пришло ли что-либо вообще на сервер, и если пришло то в каком виде.
    Ответ написан
  • Как предотвратить повторное сохранение изображений на сервере?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    перенаправлять заголовком обратно после добавления данных. Так у вас не будет повторно отправляться POST запрос.
    Ответ написан
    Комментировать
  • Как проверить если форма отправляется и на какой адрес?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Выключить лишние поля. Без кода, чисто алгоритм:
    - по субмиту формы делаем превентдефаулт,
    - выбираем все поля формы, проверяем их на непустое val(),
    - если пустое - проп(дизэйблед,тру),
    - после всего форм.субмит().
    Ответ написан
    5 комментариев
  • Как сделать это с точки зерния MVC?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    то есть тыкать 14к раз в чекбокс вы считаете нормально для этой задачи? А как бэ, просто запустить скрипт в консоли который все это отконвертирует по порядку религия не позволяет?
    Ну или как вообще лучше поступить что бы не завис сервер, вдруг там гигабайтная картинка попадется...?
    проверяй те картинки на размер перед конвертацией, очень большие пропускайте, пишите в базу что пропущены(или в лог, как удобнее). Потом их отдельно обработать руками там, или скриптом под контролем. 14к - пусть 1 секунду будет обрабатываться 1 картинка, ~4 часа работы скрипта на дохлой машине, подозреваю на нормальном сервере займет от силы час.
    PS: представляю сколько времени тыкать чекбоксы надо будет ))
    Ответ написан
  • Генератор уникальных изображений?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    gd, imagemagick, да даже на канвасе с жс можно решения найти.
    Ответ написан
    Комментировать
  • Как победить ошибку Unknown SSL protocol error in connection to?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    версия ос, пхп, курл и включено ли для окружения php_openssl в php.ini (и есть ли оно вообще в либах)?
    Ответ написан
    Комментировать