Ответы пользователя по тегу PHP
  • Как создать изображение с помощью imagecreatefrompng() и вывести его тут же в html img tag?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Во-первых, в PHP-коде генерации HTML, в строке с комментарием есть лишняя одиночная кавычка, из-за которой код не должен исполняться.
    Во-вторых, в Javascript-е полученная картинка не всовывается в HTML, а логируется в консоль.
    В-третьих, вам надо не сохранять изображение на диск, а отдавать его в STDOUT через imagepng($full).
    P.S. Еще и </body> отсутствует!
    Ответ написан
  • Как сделать проверку на наличие пользователя в базе данных?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Переменная $user не определена внутри функции addUser(), в момент первого использования конечно. Кстати, это ошибка, PHP должен был об этом настойчиво сообщить.
    Ответ написан
  • Как изменить строку из БД?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Поскольку у вас в определении формы в action не вписан никакой id (например action="/vendor/wall.php?id=111"), то и переменная $_GET['id'] во время исполнения PHP-скрипта не определена, не существует, не назначена, поэтому и код внутри if (isset($_GET['id'])) не должен отрабатываться.

    Но лучше не вписывать id внутрь action, а добавить в форму скрытую переменную <input type=hidden name=id value='{$row['id']}'>, и поменять в скрипте на $_POST['id'].
    Ответ написан
  • Как изменить размер картинки и загрузить в папку?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Использование getimagesize($filename)$filename = $image_tmp;) ПОСЛЕ исполнения move_uploaded_file($image_tmp, ...)... Серьёзно? Вы переносите файл в другую директорию (возможно с переименованием), а потом пытаетесь работать с ним по старому пути/имени $image_tmp?

    P.S. move_uploaded_file($thumb, $album_dir); тоже некорректно, так как $thumb - это не файл на диске, это GD-объект в оперативной памяти, и он точно не находится в UPLOAD-директории.
    Ответ написан
    Комментировать
  • Как правильно передать куки в php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Как выглядит строка $cook в функции open()?
    В ней должен быть только текст "PHPSESSID=kg0m06ko0p1fi3aipi4g3jbb44", исключительно и только, и ничего более.
    Ответ написан
  • Как запретить локальное редактирование input значения перед отправкой формы?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если нужно передать какие-то данные немодифицируемыми - шифруйте их на сервере, запихивайте в форму, при получении данных формы - расшифровывайте и пользуётесь неизменёнными данными. Вуаля, профит!

    Но есть способ проще и лучше - храните данные в сессии на стороне сервера, а клиенту передавайте только ID этой сессии, и пускай пытается что-нибудь модифицировать...
    Ответ написан
    1 комментарий
  • Почему функция записывает по 2 раза?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Во-первых замените dirname() на realpath(). Во-вторых, второй DIRECTORY_SEPARATOR перенесите внутрь круглых скобок realpath(). И в-третьих, не создавайте новых файлов в директории, из которой как раз читаете. Собирайте вывод в переменную, а уже после окончания сканирования директории (т.е. снаружи foreach (scandir($dir) as $node) {}) создавайте файл в сканируемой директории.
    Ответ написан
    Комментировать
  • Какая это кодировка?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Судя по всему, это UTF-8, который без перекодирования выводят на страничку с кодировкой Win-1251.
    Используйте перекодировку: $txt = @iconv("UTF-8", "CP1251", $txt);
    Ответ написан
    Комментировать
  • Почему получаю неправильное количество столбцов в цикле?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Потому что снаружи второго foreach() нет обрамляющих "<tr>" и "</tr>".
    Ответ написан
  • Как настроить парсинг через ssh php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В сторону запуска реального, настоящего SOCKS4 или SOCKS5 прокси на свободном (например 8080) порту вместо 22-го, который используется по умолчанию для SSH.
    Если нет у вас SOCKS5 PROXY на локальном 22-ом порту, то зачем в него стучаться?
    Ответ написан
  • Почему не устанавливаются cookie?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Видимо ДО вызова setcookie() у вас уже делается какой-нибудь вывод страницы.
    Из-за этого не успевают передаться данные (cookies), которые должны быть выведены в header HTTP-ответа.
    PHP конечно ругается об опоздавшем применении setcookie(), но у вас подавлен вывод ошибок на страницу, их не видно. Загляните в error.log WEB-сервера, там этих ошибок 'Cannot modify header information' будет...

    Хотя нет, WP все ошибки складывает в своём лог-файле, смотрите там. А может это WP перестраивает всю логику работы, и нужно пользоваться исключительно его функциями управления cookie-сами...

    Резюмируя: перенесите setcookie() в index.php первой строкой, что бы уж точно срабатывало раньше любого вывода.
    Ответ написан
    Комментировать
  • Как парсить данные в таком случае?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вообще-то AJAX-запросы всегда сгенерированы JavaScript-ом, в этом их суть.

    А так, надо разбирать эти JS, удостоверяться, что токены генерируются именно в них, и повторять JS-генерацию средствами PHP.
    Ответ написан
  • Почему cURL возвращает страницу без стилей?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вообще-то cURL скачивает страницу в том виде, в каком её отдаёт источник.
    Если на странице указаны ссылки на отдельные файлы со стилями, JavaScript-скриптами, картинками, iframe-страницами, и т.д. - то любой браузер скачивает их дополнительными запросами именно к этим файлам.
    Вам нужно нужно вытаскивать ссылки из HTML и запрашивать эти файлы через cURL, и тогда вы их получите...
    Ответ написан
    Комментировать
  • Uncaught SyntaxError: Unexpected end of JSON input?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Согласно коду, если пользователь существует - будет ошибка, и будет JSON с этой ошибкой.
    А если такой пользователь НЕ существует - будет пустой вывод, вообще без какого-либо JSON, как у вас на втором скриншоте, так? Ну так сделайте какой-нибудь
    else:
    $errors['success']="Пользователь радостно создан. Аллилуя!";
    Ответ написан
    1 комментарий
  • Как сделать отправку формы на почту без перезагрузки при помощи AJAX?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ой сомневаюсь я, что почтовый сервер Yandex пропустит к себе письмо, присланное НЕ напрямую с почтового сервера GMail-а, поскольку такая отправка письма в путь является чисто поддельно-спамерской.

    Для того, что-бы корректно прошло письмо с ящика на GMail-е, вы должны подключаться к серверу GMail с логином/паролям этого ящика, и отправлять письмо перез почтовую систему GMail. Только тогда Yandex его примет как легитимное...

    Проще использовать свой почтовый адрес, который просто обязан существовать на вашем WEB-сервере/у вашего хостера.
    Ответ написан
  • Как сделать форму при помощи get запросов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну тогда ваша форма должна выглядеть так:
    <form method="get" action="http://127.0.0.1:6605/spawned/AuthSrv.1.612051978/test/create_account">
               <input type=hidden name='userCenter' value='17'>
               <input type=hidden name='effectiveUntil' value=''>
               <input type=hidden name='loginNameValidated' value='1'>
               <div class="form-group">
                    <label>User *</label>
                    <input type="text" name="userName" class="form-control" required="">
                </div>
    
                <div class="form-group">
                    <label>E-Mail *</label>
                    <input type="text" name="loginName" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" required="">
                </div>
    
                <div class="form-group">
                    <label>Password *</label>
                    <input type="password" name="password" class="form-control" required="">
                </div>
    
                <div class="form-group">
                    <label>Repeat Password *</label>
                    <input type="password" name="cPassword" class="form-control" id="exampleInputPassword1" required="">
                </div>
    
                <div class="row" id="button">
                    <div class="col">
                        <button id="signup" type="submit" class="btn btn-success my-2">REGISTER</button>
                    </div>
                </div>
            </form>


    Смущает только адрес 127.0.0.1:6605, для пользователей из Интернета он работать не будет.

    P.S. А PHP тут совсем не нужен.
    Ответ написан
  • Почему данные не выгружаются из базы на сайт?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Эммм, мда. Должно быть так:
    $connect = mysqli_connect($db_host,$db_user,$db_password,$db_base);
    if ($connect->connect_error) {
        die('Ошибка: ('. $connect->connect_errno .') '. $connect->connect_error);
    }
        
    $result = mysqli_query($connect, "SELECT id,rent,current FROM electriciti ORDER BY id");
    $n = mysqli_num_rows($result);
      
    echo "<table border=1>\n<tr><th>ID</th><th>Тариф</th><th>Текущие показания</th></tr>\n"; 
      
    while ($i = mysqli_fetch_assoc($result)){
          echo "<tr><td>{$i['id']}</td><td>{$i['rent']}</td><td>{$i['current']}</td></tr>\n";
    }
    echo "</table>\n";
    Ответ написан
  • Как построить график обращений к php файлу?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Самое элементарное, но неполное из-за блокировшиков баннеров - это счётчик от LiveInternet и ему подобных.
    Самое точное - какой-нибудь анализатор логов HTTP-сервера типа AWStats или Apache Log Analizer.
    Ответ написан
    Комментировать
  • Как передать RЕFЕRЕR PНP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Всё зависит от того, каким способом скрипт собственно обращается.
    Если используется curl_exec() - referer указывается в curl_setopt($ch, CURLOPT_REFERER, $referer_string).
    Если используется встроенный wrapper PHP типа file_get_contents() - то уже через stream_context_create().
    А если всё делается кошерно через fsockopen() - вы же сами HTTP-запрос формируете...
    Ответ написан
  • Выборка элементов из таблицы. Как осуществить правильно?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Наипростейший наитупейший, но рабочий вариант:
    SELECT serial.serial_name, genre.genre_name
    FROM serial
    LEFT JOIN serial_genre ON serial_genre.serial_id = serial.serial_id
    LEFT JOIN genre ON genre.genre_id = serial_genre.genre_id
    Ответ написан
    Комментировать