Ответы пользователя по тегу PHP
  • Почему PHP не даёт ошибки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    учимся базовой отладке (ну и элементарной логике):
    var_dump($_FILES); exit(); //проверяем есть ли вообще файл, и что там с ним происходит
    if ($_FILES && $_FILES['filename']['error'] == UPLOAD_ERR_OK) { //где else к этому ифу???
    // по уму надо отдельно проверять $_FILES['filename']['error'], так как скорее всего лажа где-то в нем
    // вангую что размер upload_max_filesize или max_post_size слишком мал
        if (isset($_POST['authorname'] ) && isset($_POST['songname'])) { //здесь больше подходит !empty, 
    //и надо бы как-то проверить подходят ли поля под стандарты, длина, символы левые...
    // дальше в принципе нет смысла пояснять, так как первый if скорее всего тупо не работает
            $file_type = $_FILES['filename']['type'];
            $maxsize = 10485760;
            if ($_FILES['filename']['size'] >= $maxsize) {
                $log = "Max file size is 10mb";
            } else {
                $hash = "";
                $string = $_FILES['filename']['name']; // song_name.mp3
                $songname = str_replace('.mp3', '', $string); //song_name
                $song_name = str_replace('_', ' ', $songname); // song name
                $name = str_replace(' ', '%20', $string); // song%20name
                move_uploaded_file($_FILES['filename']['tmp_name'], "song/$songname.mp3");
                $size = round($_FILES['filename']['size'] / 1024 / 1024, 2);
                $song = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."song/";
                $cur = str_replace('upload.php', '', $song) . $name;
                $query = $db->prepare("INSERT INTO songs (name, authorID, authorName, size, download, hash)
                VALUES (:name, '9', :author, :size, :download, :hash)");
                $query->execute([':name' => $song_name, ':download' => $cur, ':author' => "", ':size' => $size, ':hash' => $hash]);
                $log = "Success! ID: <b>". $db->lastInsertId() ."</b>";
            }
        } else {
            $log = "Provide a song name and an author name.";
        }    
    }
    Ответ написан
    9 комментариев
  • При нажатии на кнопку нужно сделать переход на другую страницу на PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    да занефиг:
    <?php 
    echo '<a href="/gobuhati" class="button beer-button-blue">Пивка?</a>';
    ?>
    Ответ написан
    Комментировать
  • Почему сайты не подключаются к SMTP яндекса?

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

    Можно попробовать налюбить систему, включить отладку в пхпмэйлере через вербоуз, посмотреть что не нарвится серверу, и попробовать что-то подшаманить, но в целом это не надежно и такое себе решение, рано или поздно айпи внесут в бан и весь ваш сервис превратится в тыкву. Свой сервер настроить и запустить гораздо проще и на порядок надежнее.
    Ответ написан
    Комментировать
  • Почему при require происходит ошибка 500?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.php.net/manual/ru/filesystem.configura...

    Кроме того надо учитывать, что скорее всего у вас будет включен результат выполнения скрипта с хоста example.com, а не его содержимое (то есть по сути просто пустота).

    Но после того, как я открываю страницу у меня пишет ошибку 500.
    500 ошибка выдается если возник фатал ерор, но вывод ошибок скрыт. Либо смотрите лог ошибок пхп, либо включите вывод ошибок соответствующими директивами.
    Ответ написан
    1 комментарий
  • Почему долго загружается страница при подключении к базе данных?

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

    Может, есть какие-нибудь методы или способы, которые помогли бы найти проблему?
    Для начала - попробовать на другой машине, например на самом дешевом хостинге. Вангую, что там будет все ок, и проблема в локальной машине.
    Что можно сделать:
    1) Сменить драйвер на PDO
    2) Переставить пхп и мускуль, вполне возможно что у тебя какой-нибудь кривоватый опенсервер со старыми версиями всего на свете, пробуй нормальную установку компонент из официальных источников.
    3) Тест железа, но это крайний случай, скорее всего проблема чисто софтовая.
    Ответ написан
    4 комментария
  • Почему не отправляется письмо из php?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    if($request->ajax()){
       echo $request->orderBy; // ретурн тут до жопы, кому ты его возвращаешь?
       exit(); // иначе дальше выполнение идет и как раз получаешь всю страницу.
    }

    Естественно надо проверить что условие выполняется, а $request->orderBy не пустой и содержит строку/жсон.
    Ответ написан
  • Yii2 как скачать файл?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $file = \Yii::getAlias('@web' . '/doc/'); Во первых зачем там конкатенация?
    Во вторых - это же папка, а не файл, что вы там скачиваете?
    Ответ написан
  • Почему сервер не даёт получить file_get_contents() с самого себя?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) нахрена, а главное - зачем тянуть внутренние файлы через веб? документ_рут + вашфайл.тхт его замечательно откроют
    1) Скорее всего на хосте стоит файервол и маршрутизация, настроенные на исключение циклических линков внутрь сайта (что нормально).
    Ответ написан
    1 комментарий
  • Оптимальное хранение данных в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    похоже что вам надо eav, но с такой нечеткой постановкой задачи это все гадание на хэшах...
    Ответ написан
    Комментировать
  • Как объединить запись в базу?

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

    Во вторых - даже если такая беда приключилась - что мешает проверять наличие файлов в разделе добавления текстовых полей, перед инсертом?

    Ну и в третьих - какие-то проверки неплохо бы сделать перед вставкой, if (isset($_POST["name"])) это вообще смешно, я туда могу пробел вставить, или просто прислать пустое значение, как и в описание кстати... про сплошные дыры через инжекции вообще молчу, никаких проверок, про подготовленные выражения тоже никто никогда не слышал...
    Ответ написан
    Комментировать
  • Как настроить корректное отображение кириллицы с бд в YII?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    USE your_database_name;
    show variables like "character_set_database";
    Ответ написан
    2 комментария
  • Как исправить ошибку Uncaught Error: Call to a member function fetch_assoc()?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вылезла такая ошибка после переноса сайта:
    1) Первое что надо проверить - правильность данных для подключения на новом хостинге.
    2) Далее,
    <?php
    $conn = mysqli_connect("localhost", "root", "pass", "table");
    if ($conn === false) {
      die("Ошибка: " . mysqli_connect_error());
    } 
    mysqli_close($conn);
    ?>

    Если это полный код, и он как-то относится к коду в вопросе, то во первых $conn и $link - что-то одно неверно названо или используется, во вторых mysqli_close($conn); закрывает только что открытое соединение, и тогда вопрос - какой упоротый пингвин это писал?

    3) После require_once 'connect.php'; сделайте var_dump($link ); exit();, будет понятно установилось ли соединение, хотя по уму конечно же надо переписать подключение нормально. Ну и проверить какую переменную вы на самом деле должны использовать - $conn или $link ...
    Ответ написан
    Комментировать
  • Не проходит авторизация?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Прочитайте внимательно про биндинг, а точнее про именованные и неименованные псевдопеременные, а то у вас каша получилась.
    Ответ написан
    Комментировать
  • Почему выдает ошибку Uncaught Error: Call to a member function prepare() on null при передаче данных через ссылку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Call to a member function prepare() on null
    Из ошибки очевидно что $db->dbs у вас нулл (не существует), дальше рассказывать или сами догадаетесь?
    Ответ написан
    6 комментариев
  • Почему при добавлении в одну таблицу, информация добавляется в обе?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    он добавляется и в первую и во вторую таблицу , как исправить чтобы добавлялся только во 2 ?
    во первых нормально организовать код, логика сверху, хтмл разметка снизу. в идеале все это разнести по шаблонам, но думаю для вас это что-то за гранью... во вторых нормально организовать проверки, у вас там 2 условия могут срабатывать при пост запросе, так как там тупо елс выполняется без проверки.
    Ответ написан
    Комментировать
  • Как правильно отобразить showalert?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что я делаю не так?
    1) Не используете подготовленные выражения в SQL
    2) Не приводите текст ошибки, как и код, который ее вызывает
    3) $LANG, $FORM, $isunexist и скорее всего еще куча криво названных переменных
    4) Скорее всего, не используете конкатенацию
    $_SESSION['dotoaster'] = "toastr.error('".
    $LANG['n_error'].
    " <strong>Invalid input format!</strong>', 'Error');";
    Ответ написан
    Комментировать
  • Как решить проблему с кодировкой?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего дело в настройках сервера, в частности default_charset в настроечном файле пхп.
    для точного обхода данной проблемы можно сделать так:
    if (ini_get('default_charset') == 'utf-8' || !ini_set('default_charset', 'utf-8')) {
       header('Content-Type: text/html; charset=UTF-8');
    }

    Делай так два раза в день и спина не будет болетьПишем это в начале индексного файла, и все должно работать. Другое дело что это костыль для серверов где нельзя что-то настроить, в большинстве случаев все решается одной строкой в конфиге.

    Открываю проект на том веб-сервере, а там нотисы.
    А тут скорее всего ваш косяк, по тому как при разработке рекомендуется выставить уровень оповещения в E_ALL. Добавьте туда же
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);
    Ответ написан
    3 комментария
  • Как передать массив из input в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Зачем там цикл, если после первой итерации скрипт завершает работу по редиректу?
    2)
    $q = "INSERT INTO `zakaz` (`id`, `name`, `price`, `quantity`) VALUES (NULL, '$names', '$prices, '$quantities')";
    echo $q; // вставляем руками в пхпмайадмин или из консоли, смотрим все ли на месте или есть ошибки
    mysqli_query($connect, $q);
    Ответ написан
    Комментировать