Ошибка admin header php

See How_do_I_solve_the_Headers_already_sent_warning_problem? > FAQ Troubleshooting « WordPress Codex

(This error) is usually because there are spaces, new lines, or other
stuff before an opening <?php tag or after a closing ?> tag,
typically in wp-config.php.

Open the file with a plain text editor (like Notepad or BBEdit) and clear out the white space. Check that the very first characters are <?php
and the very last characters are either NOT a PHP closing tag, or a closing tag ?> with no blank lines or spaces after it. (FYI, a PHP file can run fine without the closing ?> tag.)

When saving, be sure the file encoding is not UTF-8 BOM but plain UTF-8 or any without the BOM suffix.

And:

This could be true about some other file too, so please check the
error message, as it will list the specific file name where the error
occurred. Replacing the faulty file with one from your most recent
backup or one from a fresh WordPress download is your best bet.

If the error message states: Warning: Cannot modify header information
- headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42
,
then the problem is at line #34 of wp-config.php, not line #42 of
wp-login.php. In this scenario, line #42 of wp-login.php is the
victim. It is being affected by the excess whitespace at line #34 of
wp-config.php.

If the error message states: Warning: Cannot modify header information
- headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line
569
, then the problem is at line #8 of admin-header.php, not line #569
of post.php. In this scenario, line #569 of post.php is the victim. It
is being affected by the excess whitespace at line #8 of
admin-header.php.

К сожалению, сегодняшнее обновление Вордпресс прошло гладко не у всех. Критических ситуаций я не зафиксировал, однако обращений было больше, чем обычно. И связаны они в основном были с плагинами.

В частности, на нескольких сайтах в админке появились ошибки в ядре: plugin.php, functions.php, misc.php, admin-header.php

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/danilin.biz/wp-admin/includes/plugin.php on line 1392

Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-includes/functions.php on line 5946

Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-admin/includes/misc.php on line 1252

Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-admin/admin-header.php on line 9

Страшного тут ничего нет, но и приятного мало — проблема с каким-то из плагинов. В первую очередь нужно выяснить с каким именно. Действуем по старой схеме: отключаем все плагины, затем по одному включаем и смотрим после какого появится ошибка.

Уже поймали целую кучу, из популярных вот эти два точно вызывают ошибку.

Polylang тоже стал ругаться.

Warning: Declaration of PLL_Walker_Dropdown::walk($elements, $args = Array) should be compatible with Walker::walk($elements, $max_depth, …$args) in /var/www/danilin.biz/wp-content/plugins/polylang/include/walker-dropdown.php on line 0

Что делать

Ждать обновления проблемных плагинов или выхода Вордпресс 5.3.1, в котором обещали исправить это недоразумение.

Не забываем перед обновлением делать бэкапы. После обновления рекомендую сбросить кеш браузера, иначе могут наблюдаться проблемы с редактором.

TGM Plugin Activation (Обновлено 27 января 2019 г.)

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

Примерно так

if ( file_exists( get_template_directory() . '/admin/tgm/tgm-init.php' ) ) {
   // require_once get_template_directory() . '/admin/tgm/tgm-init.php'; 
}

Больше полезных материалов по веб-разработке на моем канале в Телеграм.
Обязательно подпишитесь.

Also refer Common WordPress Errors for the most common WordPress errors experienced by WordPress users such as

  • The White Screen
  • Internal Server Error
  • Error Establishing Database Connection
  • Failed Auto-Upgrade
  • Connection Timed Out
  • Maintenance Mode Following Upgrade
  • PHP errors or MySQL DB errors

Sometimes it may be necessary to deactivate all plugins, but you can’t access the Administration Screens to do so. One of two methods are available to deactivate all plugins.

Use phpMyAdmin to deactivate all plugins.

  1. In the table wp_options, under the option_name column (field) find the active_plugins row
  2. Change the option_value field to: a:0:{}

Or reset your plugins folder via FTP or the file manager provided in your host’s control panel. This method preserves plugin options but requires plugins be manually reactivated.

  1. Via FTP or your host’s file manager, navigate to the wp-contents folder (directory)
  2. Via FTP or your host’s file manager, rename the folder “plugins” to “plugins.hold”
  3. Login to your WordPress administration plugins page (/wp-admin/plugins.php) – this will disable any plugin that is “missing”.
  4. Via FTP or your host’s file manager, rename “plugins.hold” back to “plugins”

How to clear the “Briefly unavailable for scheduled maintenance” message after doing automatic upgrade?

As part of the automatic upgrade WordPress places a file named .maintenance in the blog base folder (folder that contains the wp-admin folder). If that file exists, then vistors will see the message Briefly unavailable for scheduled maintenance. Check back in a minute.

To stop that message from being displayed to vistors, just delete the .maintenance file. The automatic upgrade should be executed again, just in case it failed.

An update was just released, so why does my blog not recognize the update is available?

When an update is released, notification of that release is displayed at the top administration screens saying WordPress x.x.x is available! Please update now. Not every blog will see that message at the same time. Your blog is programmed to check for updates every 12 hours, but the timing of that check is purely random. So if your blog just checked for updates minutes before an update was released, you won’t see the update message until your blog checks for updates 12 hours later.

If you want your blog to check right now for updates, you can delete the update_core option name record in your wp_options table. Note that plugins and themes each have their own check and update cycle, controlled by the records update_plugins and update_themes, in wp_options.

Relevant discussion thread:

  • https://wordpress.org/support/topic/242485

Why did I lose custom changes to the WordPress Default Theme during the last automatic upgrade?

A core upgrade copies all the new files from the distribution over the old ones, so if you changed existing files in the WordPress default theme (e.g. wp-content/themes/twentysixteen/style.css), those changes got overwritten with the new version of that file.

Please note, a core upgrade goes through a list of “old files”, as defined in wp-admin/includes/update-core.php, and deletes those files. Any files not on the list, and not in the distribution, are preserved.

Remember, that before upgrades, whether automatic or manual, both the WordPress Files and database should be backed-up as explained in WordPress Backups.

A better way to modify the default theme is by using a child theme. It’s a little more work to set up, but worth the effort because your customizations will be safe when the main theme is updated.

How do you repair a MySQL database table?

Every once in a while, it may be necessary to repair one or more MySQL database tables. According to the How to Repair MyISAM Tables at dev.mysql.com there are a number of reasons to repair a table including errors such as “tbl_name.frm is locked against change”, “Can’t find file tbl_name.MYI (Errcode: nnn)”, “Unexpected end of file”, “Record file is crashed”, or “Got error nnn from table handler”.

Here are the steps to repair a table in a MySQL database using phpMyAdmin:

  1. Login to hosting account.
  2. Login to phpMyAdmin.
  3. Choose the affected database. If you only have one database, it should choose it by default so you don’t need to do anything.
  4. In the main panel, you should see a list of your database tables. Check the boxes by the tables that need repair.
  5. At the bottom of the window just below the list of tables, there is a drop down menu. Choose “Repair Table”

Remember, that it is advisable to have a current backup of your database at all times. See also WordPress Backups

How do I empty a database table?

Refer Emptying a Database Table

Emailed passwords are not being received

Description: When users try to register with your blog or change their passwords by entering their username and/or email, WordPress indicates that their password has been emailed to them, but it is never received.

Reason and Solutions: WordPress uses the standard PHP mail() function, which uses sendmail. No account information is needed. This is not generally a problem if you are using a hosting service, but if you are using your own box and do not have an SMTP server, the mail will never send. If you are using a *NIX box, you should have either postfix or sendmail on your machine; you will just need to set them up (search the Internet for how-to’s). If you do not want to go through setting up a complete mail server on your *NIX box you may find msmtp useful — it provides “A secure, effective and simple way of getting mail off a system to your mail hub”. On a Windows machine, try a sendmail emulator like Glob SendMail.

More help can be found on this thread of the WordPress Support Forums: https://wordpress.org/support/topic.php?id=24981.

Windows Host Server Specific: Check your “Relay” settings on the SMTP Virtual Server. Grant access to 127.0.0.1 . Then in your php.inifile, set the SMTP setting to the same IP address. Also set smtp_port to 25.

Ensure Proper Return Address is Used: By default, the WordPress mailer fills in the From: field with wordpress@yourdomain.com and the From: name as WordPress.

This is fine if this is a valid e-mail address. For example, if your real e-mail is wordpress@yourdomain.com, your host should pass the email on for delivery. It will probably send your mail as long as yourdomain.com is setup to send and receive mail, even if wordpress is not a valid mail box. But if you set you real email as the From: address and it’s something like wpgod@gmail.com, the mail may not send because gmail.com is not a domain handled by the mail server.

Treated as Spam: Your email message may have been routed to a spam folder or even worse, simply discarded as malicious. There are a couple measures you can use to convince recipient’s mail servers that your message is legitimate and should be delivered as addressed.

SPF: (Sender Policy Framework) This is the most common anti-spam measure used. If you are on a hosted system, there is a good chance your host has set this up for the mail server you are using. Have WordPress email you and check the message headers for evidence that the message passed the SPF check. You can get a message sent by following the Forgot Password link on the login page. To keep your old password, do not follow the link in the message.
If your system email failed the SPF check, you can set up the credentials if you have access to your DNS records and your mail server’s domain belongs to you. Check the return path of the email your system sent. If the mail server listed there has your domain name, you can set up SPF credentials. There are several how-tos on the Internet.

DKIM: (Domain Key Identified Mail) This system is also used. You can use both SPF and DKIM in the same message. Again, just as with SPF, you can check if your receiving mailserver verified your host’s domain key by examining the mail header. There is a fair chance no signature key was provided, indicating your host chose to not use this protocol. Also as with SPF, if you can edit your DNS records and the mail server belongs to your domain, you can set up DKIM credentials yourself. Some how-tos exist if you search the Internet.

Why can’t I see my posts? All I see is Sorry, no posts match your criteria?

Clearing your browser cache and cookies may resolve this problem. See also I Make Changes and Nothing Happens

Description: You got a warning message on your browser that says:

Warning: Cannot modify header information - headers already sent by
(output started at

Reason and Solution:

It is usually because there are spaces, new lines, or other stuff before an opening <?php tag or after a closing ?> tag, typically in wp-config.php. This can also happen in other edited PHP files that are not theme templates, so please check the error message, as it will list the specific file name where the error occurred (see “Interpreting the Error Message” below). Replacing the faulty file with one from your most recent backup or one from a fresh WordPress download is your best bet, but if neither of those are an option, please follow the steps below.

Just because you cannot see anything does not mean that PHP sees the same.

  1. Download the file mentioned in the error message via FTP or the file manager provided in your host’s control panel.
  2. Open that file in a plain text editor (NOT Microsoft Word or similar. Notepad or BBEdit are fine).
  3. Check that the very first characters are with no blank lines or spaces after it.
  4. Before saving, or use the Save as dialog, ensure the file encoding is not UTF-8 BOM but plain UTF-8 or any without the BOM suffix.

To be sure about the end of the file, do this:

  1. Place the cursor between the ? and >
  2. Now press the DELETE key on your computer
    Note to MAC users: The “DELETE” key on a PC deletes characters to the right of the cursor. That is the key noted here.
  3. Keep that key pressed
  4. For at least 15 seconds
  5. Now type > and
  6. save without pressing any other key at all.
  7. If you press another key, you will bring the problem back.
  8. DO NOT PUT CODE IN UNNECESSARY CODE BLOCKS, PUT THEM IN A SINGLE PHP BLOCK.

Wrong:

<?php some code; ?> <?php some other codes; ?> 

Correct:

<?php code; some other code; ?> 

Upload the file back to your server after editing and saving the file.

Note: Also check the encoding of the file. If the file is encoded as UTF-8 with BOM, the BOM is seen as a character which starts the output.

Interpreting the Error Message:

If the error message states: Warning: Cannot modify header information - headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42, then the problem is at line #34 of wp-config.php, not line #42 of wp-login.php. In this scenario, line #42 of wp-login.php is the victim. It is being affected by the excess whitespace at line #34 of wp-config.php.

If the error message states: Warning: Cannot modify header information - headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line 569, then the problem is at line #8 of admin-header.php, not line #569 of post.php. In this scenario, line #569 of post.php is the victim. It is being affected by the excess whitespace at line #8 of admin-header.php.

Why doesn’t my “Publish” or “Save Draft” button work?

To resolve this and similar issues, disable your plugins one at a time until you find the source of the issue. Generally, this will be due to two or more plugins trying to use the same resources (for example, JQuery or other Java-based tools).

In addition, it could be that there is a problem with your browser. A common resolution is to empty the browser’s cache. Please consult the documentation for your preferred browser to learn how to do this.

How to fix 404 error when using Pretty Permalinks?

If an error 404 occurs when using the Pretty Permalink choices such as Day and Name in Administration > Settings > Settings_Permalinks_Screen it could be a result of the mod_rewrite module not being activated/installed. The solution is to activate mod_rewrite for the Apache web-server. Check the apacheconfhttpd.conf file for the line # LoadModule rewrite_module modules/mod_rewrite.so
and delete the # in front of the line. Then stop Apache and start it again. Note: you may have to ask your host to activate mod_rewrite.

See also Using Permalinks. Relevant discussion thread is https://wordpress.org/support/topic/234726

Not sure why this problem happens, but here’s a couple of things to try one of these two solutions.

This usually fixes the problem:

  1. Create new admin user (e.g. newadmin) with Administrator Role
  2. Login as ‘newadmin’
  3. Degrade the old ‘admin’ user to Role of Subscriber and Save
  4. Promote the old ‘admin’ back to Administrator Role and Save
  5. Login as the old ‘admin’

If that doesn’t work, try:

  1. Create a new admin user (e.g. newadmin) with Administrator Role
  2. Login as ‘newadmin’
  3. Delete the old ‘admin’ user and assign any posts to ‘newadmin’
  4. Create ‘admin’ user with Administrator Role
  5. Login as ‘admin’
  6. Delete ‘newadmin’ user and assign posts to ‘admin’

Why is the wrong author name displayed for a post on a blog?

This problem is usually solved by the same solution as is presented in the question right before this one:
Why isn’t the admin user listed as an author when editing posts?

How do I find more help?

There are various resources that will help you find more help with WordPress, in addition to these FAQ.

  • Troubleshooting
  • Finding WordPress Help
  • Using the Support Forums
  • Resources and Technical Articles about WordPress
  • Installation Problems

Содержание

  1. После обновления WP до 6 нет доступ в админку
  2. После обновления WP до 6 нет доступ в админку
  3. Как избавиться от /wordpress/ в адресе сайта на WordPress
  4. Fatal Error wp-blog-header.php

После обновления WP до 6 нет доступ в админку

Посмотрел различные решения.
Ни плагины ни тема не виноваты, в логах админки следующая запись:

Файлы в голове public_html присутствуют.

  • Тема изменена 7 месяцев, 1 неделя назад пользователем std31 .

Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Failed opening required ‘wp-admin/wp-blog-header.php’

wp-admin/index.php on line 6

  • В WordPress нет файла wp-admin/wp-blog-header.php , он есть только в корневом каталоге.
  • Ни в wp-admin/index.php ни в index.php в строке 6 нет подключения файла wp-blog-header.php .

Сергей, Спасибо за рекомендации

Скачал wordpress 6 с оф сайта, распаковал и взял из папки ..wp-adminindex.php и заменил его на сервере. И обнаружил, что содержимое файла превратилось вот в это

Так ведь не должно быть?
Наверное буду следовать совету из статьи если вас взломали.

  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .

Скачал сайт на локальный сервер (open server)
Импортировал бд с сайта в локальную бд
внес изменения в таблицу wp_options.php
-поменял URL

внес изменения в файл wp_config.php
-Имя базы данных для WordPress
-Имя пользователя базы данных root
-пустой пароль бд
таблице wp-users
-поменял пароль у админа (свойство поля md5 ставил)

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

плагины отключал
темы отключал
и то и другое вместе отключал не помогло
.htaccess отключал, заменял на новый от wordpress 6 версии

Что делать, куда копать?

  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .

std31, привет.

Вы выбрали путь боли и страданий, поднимая явно скомпрометированный сайт на локальном сервере, не говоря о том, что это просто небезопасно, если вы не имеете опыта работы с такими случаями.

В админку я теперь захожу, но в ней только текстовая версия без оформления, и у меня нет прав доступа что либо изменить.

Очевидно, пробелма с правами доступа к файлам и директориям. Тут, конечно, можно посоветовать это всё восстановить, чтобы заработало «как надо», но не совсем ясна ваша итоговая цель. Вы это делаете на локалхосте для чего?

Привет m0ze,

Я хочу получить доступ к своим данным и сохранить статьи блога.
Получить права admin

Подумал раз проблемы с правами доступа, то уж на локальном сервере я смогу до них добраться.
А еще решил не экспериментировать на работающем сайте. Изменить я на нем ничего не могу, но он хотя бы работает.

>Очевидно, проблема с правами доступа к файлам и директориям.
Посмотрел на права директории wp_admin 755
файлы внутри 644
У всех директорий и файлов таки права
кроме public_htmlindex.php у него 444

m0ze, вы оказываете платные консультации?

с предложениями фриланса, платных консультаций и прочего внефорумного — в раздел «Специалисты»
во всех других разделах это считается нарушением правил форума.

std31,

Я хочу получить доступ к своим данным и сохранить статьи блога.
Получить права admin

Если вы владелец сайта, то, по логике вещей, у вас аккаунт администратора должен быть. Я что-то упустил? Из ранее написанного я понял, что у вас проблема именно с вредоносным кодом, который мешает/блокирует штатную работу сайта, но не с аккаунтом администратора.

Подумал раз проблемы с правами доступа, то уж на локальном сервере я смогу до них добраться.

Опять же, из выше описанного (скорее всего) проблема с правами у вас на локальном сервере.

m0ze, вы оказываете платные консультации?

Да, и сайты восстанавливаю после взлома, но если нужен обмен контактами, то это делается в разделе «Поиск специалистов».

С проблемой разобрался.
сайт был взломан через плагин из непроверенного источника.
Был установлен доп плагин, который шифровал index.php админки и другие файлы, блокировал пользователя admin для внесения каких либо изменений.

Вариант лечения, скачать все файлы на локальном сервере чистить от вредоносного кода.

Источник

После обновления WP до 6 нет доступ в админку

Посмотрел различные решения.
Ни плагины ни тема не виноваты, в логах админки следующая запись:

Файлы в голове public_html присутствуют.

  • Тема изменена 7 месяцев, 1 неделя назад пользователем std31 .

Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Failed opening required ‘wp-admin/wp-blog-header.php’

wp-admin/index.php on line 6

  • В WordPress нет файла wp-admin/wp-blog-header.php , он есть только в корневом каталоге.
  • Ни в wp-admin/index.php ни в index.php в строке 6 нет подключения файла wp-blog-header.php .

Сергей, Спасибо за рекомендации

Скачал wordpress 6 с оф сайта, распаковал и взял из папки ..wp-adminindex.php и заменил его на сервере. И обнаружил, что содержимое файла превратилось вот в это

Так ведь не должно быть?
Наверное буду следовать совету из статьи если вас взломали.

  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .

Скачал сайт на локальный сервер (open server)
Импортировал бд с сайта в локальную бд
внес изменения в таблицу wp_options.php
-поменял URL

внес изменения в файл wp_config.php
-Имя базы данных для WordPress
-Имя пользователя базы данных root
-пустой пароль бд
таблице wp-users
-поменял пароль у админа (свойство поля md5 ставил)

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

плагины отключал
темы отключал
и то и другое вместе отключал не помогло
.htaccess отключал, заменял на новый от wordpress 6 версии

Что делать, куда копать?

  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .
  • Ответ изменён 7 месяцев, 1 неделя назад пользователем std31 .

std31, привет.

Вы выбрали путь боли и страданий, поднимая явно скомпрометированный сайт на локальном сервере, не говоря о том, что это просто небезопасно, если вы не имеете опыта работы с такими случаями.

В админку я теперь захожу, но в ней только текстовая версия без оформления, и у меня нет прав доступа что либо изменить.

Очевидно, пробелма с правами доступа к файлам и директориям. Тут, конечно, можно посоветовать это всё восстановить, чтобы заработало «как надо», но не совсем ясна ваша итоговая цель. Вы это делаете на локалхосте для чего?

Привет m0ze,

Я хочу получить доступ к своим данным и сохранить статьи блога.
Получить права admin

Подумал раз проблемы с правами доступа, то уж на локальном сервере я смогу до них добраться.
А еще решил не экспериментировать на работающем сайте. Изменить я на нем ничего не могу, но он хотя бы работает.

>Очевидно, проблема с правами доступа к файлам и директориям.
Посмотрел на права директории wp_admin 755
файлы внутри 644
У всех директорий и файлов таки права
кроме public_htmlindex.php у него 444

m0ze, вы оказываете платные консультации?

с предложениями фриланса, платных консультаций и прочего внефорумного — в раздел «Специалисты»
во всех других разделах это считается нарушением правил форума.

std31,

Я хочу получить доступ к своим данным и сохранить статьи блога.
Получить права admin

Если вы владелец сайта, то, по логике вещей, у вас аккаунт администратора должен быть. Я что-то упустил? Из ранее написанного я понял, что у вас проблема именно с вредоносным кодом, который мешает/блокирует штатную работу сайта, но не с аккаунтом администратора.

Подумал раз проблемы с правами доступа, то уж на локальном сервере я смогу до них добраться.

Опять же, из выше описанного (скорее всего) проблема с правами у вас на локальном сервере.

m0ze, вы оказываете платные консультации?

Да, и сайты восстанавливаю после взлома, но если нужен обмен контактами, то это делается в разделе «Поиск специалистов».

С проблемой разобрался.
сайт был взломан через плагин из непроверенного источника.
Был установлен доп плагин, который шифровал index.php админки и другие файлы, блокировал пользователя admin для внесения каких либо изменений.

Вариант лечения, скачать все файлы на локальном сервере чистить от вредоносного кода.

Источник

Как избавиться от /wordpress/ в адресе сайта на WordPress

Опубликовано: ADv Дата 03.10.2014 в рубрике Настройки 4 комментария

WordPress очень легко устанавливать, однако иногда новички устанавливают WordPress в поддиректорию, а не в корневую папку своего сайта, например http://www.example.com/wordpress/ вместо http://www.example.com. Если вы случайно установили WordPress в подпапку, и теперь хотите переместить его в корневую директорию, то вы на верном пути. В этой статье мы покажем вам как избавиться от /wordpress/ в URL’е вашего сайта.

Примечание: Способ, описанный в этой статье, также сработает и для других подпапок.

Если вы еще не загружали никакой контент на ваш сайт, то вы можете просто удалить существующую копию WordPress и заново установить движок. Однако, если вы уже настроили и запустили сайт, продолжайте чтение статьи.

Прежде всего вам необходимо войти в административную панель вашего сайта на WordPress и перейти в раздел Настройки » Общие. На странице настроек вы увидите поля Адрес WordPress (URL) и Адрес сайта (URL), в которых указан одинаковый адрес. Вам необходимо изменить значение Адрес сайта (URL), чтобы тот указывал на ваш корневой домен, например http://www.example.com, а настройку Адрес WordPress (URL) оставить как есть. После этого нажмите кнопку Сохранить изменения.

Далее, вам необходимо подключиться к своему сайту с помощью FTP клиента. После того, как вы подключились, перейдите в папку /wordpress/ и скачайте файлы .htaccess и index.php на рабочий стол вашего компьютера.

Возможно, что вы не увидите файла .htaccess в вашей папке /wordpress/, потому как он является скрытым файлом, а ваш фтп клиент может не отображать его. Для того, чтобы увидеть скрытый файл, необходимо активировать опцию показа скрытых файлов в вашем фтп клиенте. Если вы используете Filezilla, то вам необходимо кликнуть на меню Server и выбрать опцию ‘Force Showing Hidden Files’.

После того, как вы скачаете оба файла на свой рабочий стол, необходимо открыть файл index.php в текстовом редакторе типа Блокнот. В этом файле вы увидите строку вроде этой:

Эта строка загружает файл wp-blog-header.php, необходимый для загрузки фронтенда вашего сайта на WordPress. Теперь нужно сделать следующее: ввести корректное расположение файла путем замены существующей строки на следующую:

Сохраните изменения и загрузите оба файла, index.php и .htaccess, с вашего рабочего стола в корневую папку домена с помощью FTP. Корневая папка — это родительская папка с папкой wordpress, и обычно она называется /www/ или /public_html/

Вот и все. Теперь вы можете перейти на свой сайт по адресу основного домена и все будет замечательно работать. Однако, если же вам нужно залогиниться в административную панель WordPress, то все равно придется переходить в wp-admin внутри папки wordpress следующим образом:

Мы надеемся, что эта статья помогла вам избавиться от /wordpress/ в адресе вашего сайта.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Источник

Hello, I’m having trouble impossible to solve for now on my website.
Displaying

Fatal error: Uncaught Error: Call to undefined function wp() in /home/www/mwz5737/floracbd.fr/wordpress/wordpress/wp-blog-header.php:16 Stack trace: #0 /home/www/mwz5737/floracbd.fr/wordpress/wordpress/index.php(17): require() #1

thrown in /home/www/mwz5737/floracbd.fr/wordpress/wordpress/wp-blog-header.php on line 16

We already tried the steps mentionned here

And tried to backup an older version of the website but nothing works.

Can anyone help please ?

The page I need help with: [log in to see the link]

Where you trying to update WordPress/plugins/theme etc. before this error happened?

Hello, thanks for reply.
No automatic update was activated. And I wasn’t updating any plugin/theme or other.
If anyone can help I’b so glad my website is off for almost a day and I really need it.
Thank you

Hello, for me it wasn’t error 500 but :

Fatal error: Uncaught Error: Call to undefined function wp() in /home/www/mwz5737/floracbd.fr/wordpress/wordpress/wp-blog-header.php:16 Stack trace: #0 /home/www/mwz5737/floracbd.fr/wordpress/wordpress/index.php(17): require() #1

thrown in /home/www/mwz5737/floracbd.fr/wordpress/wordpress/wp-blog-header.php on line 16

It was an attack and solve it by cleaning and removing the hack

Please do not jump into other topics and detract from their problem. If the troubleshooting already posted made no difference for you, then, as per the Forum Welcome, please post your own topic. A lot more people will see your post, and that way you stand a good chance of getting the assistance you want. Despite any similarity in symptoms, your issue is likely to be completely different because of possible differences in physical servers, accounts, hosts, plugins, theme, configurations, etc. Thus one problem, on one setup is not indicative of the functionality and reliability of an application as a whole.

Источник

When I enable WP_DEBUG, I am getting the error:

WARNING: wp-admin/admin-header.php:9 — Cannot modify header
information — headers already sent by (output started at
/Applications/MAMP/htdocs/site-url.com/wp-includes/functions.php:3886)
require_once(‘wp-admin/admin-header.php’), header

but it is only happening on wp-admin pages, not on the front end.

I have read about this in support pages like this Codex FAQ page and rather than fiddling with text editors and encoding, I simply downloaded WordPress core from the release archive for the same version that’s on my site (version 4.5.5 — I am in the process of debugging before I upgrade), and I replaced my local site’s version of functions.php with the functions.php file I freshly downloaded from the release archive. That had no effect.

Line 3886 of functions.php is the 3rd line below (the first if ( ! is_null( $message ) )):

if ( WP_DEBUG && apply_filters( 'deprecated_argument_trigger_error', true ) ) {
        if ( function_exists( '__' ) ) {
            if ( ! is_null( $message ) )
                trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s'), $function, $version, $message ) );
            else
                trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available.'), $function, $version ) );
        } else {
            if ( ! is_null( $message ) )
                trigger_error( sprintf( '%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s', $function, $version, $message ) );
            else
                trigger_error( sprintf( '%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
        }
    }

How do I resolve / further isolate this error?

Нет вывода перед отправкой заголовков!

Функции, отправляющие/изменяющие HTTP-заголовки, должны быть вызваны до того, как будет выполнен какой-либо вывод.
резюме <
В противном случае вызов завершается с ошибкой:

Предупреждение: невозможно изменить информацию заголовка — уже отправленные заголовки (вывод начался с script: строка)

Некоторые функции, изменяющие HTTP-заголовок:

  • header/header_remove
  • session_start/session_regenerate_id
  • setcookie/setrawcookie

Вывод может быть:

  • Unintentional:

    • Пробелы перед <?php или после ?>
    • Обозначение порядка байтов UTF-8
    • Предыдущие сообщения об ошибках или уведомления
  • Преднамеренное:

    • print, echo и другие функции, производящие вывод
    • Необработанные <html> разделы, предшествующие <?php.

Почему это происходит?

Чтобы понять, почему заголовки должны быть отправлены перед выходом, необходимо
посмотреть типичный HTTP
ответ. PHP-скрипты в основном генерируют HTML-контент, но также передают
набор заголовков HTTP/CGI на веб-сервер:

HTTP/1.1 200 OK
Powered-By: PHP/5.3.7
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8

<html><head><title>PHP page output page</title></head>
<body><h1>Content</h1> <p>Some more output follows...</p>
and <a href="/"> <img src=internal-icon-delayed> </a>

Страница/вывод всегда следует за заголовками. PHP должен пройти
сначала создайте заголовки на веб-сервере. Это может сделать только один раз.
После двойной линии он никогда не может изменить их.

Когда PHP получает первый вывод (print, echo, <html>), он будет
очистить все собранные заголовки. Впоследствии он может отправить весь вывод
он хочет. Но отправка последующих HTTP-заголовков невозможна.

Как узнать, где произошел преждевременный выход?

Предупреждение header() содержит всю соответствующую информацию для
найти причину проблемы:

Предупреждение: невозможно изменить информацию заголовка — заголовки, уже отправленные (вывод начинается с/www/usr2345/htdocs/ auth.php: 52) в /www/usr 2345/htdocs/index.php в строке 100

Здесь «строка 100» относится к script, где не удалось выполнить вызов header().

Заметка «вывод, начатая с» в круглой скобке более значительна.
Он обозначает источник предыдущего вывода. В этом примере это auth.php
и строка 52. Это то, где вам приходилось искать преждевременный выход.

Типичные причины:

  • Печать, эхо

    Преднамеренный вывод из операторов print и echo прекратится
    возможность отправлять HTTP-заголовки. Поток приложения должен
    быть реструктурированным, чтобы этого избежать. Используйте функции
    и схемы шаблонов. Убедитесь, что вызовы header() происходят до сообщений
    выписываются.

    Функции, которые производят вывод, включают

    • print, echo, printf, vprintf
    • trigger_error, ob_flush, ob_end_flush, var_dump, print_r
    • readfile, passthru, flush, imagepng, imagejpeg

    и т.д. и пользовательские функции.

  • Необработанные области HTML

    Необработанные разделы HTML в файле .php также являются прямым выходом.
    Script должны быть отмечены условия, вызывающие вызов header()
    перед любыми необработанными блоками <html>.

    <!DOCTYPE html>
    <?php
        // Too late for headers already.
    

    Используйте схему шаблонов, чтобы отделить обработку от логики вывода.

    • Обработать код обработки формы на скриптах поверх.
    • Используйте временные строковые переменные для отсрочки сообщений.
    • Фактическая логика вывода и смешанный вывод HTML должны соответствовать последним.
  • Пробелы перед <?php для «script.php строка 1» предупреждения

    Если предупреждение относится к выходу в строке 1, то это в основном
    пробелы, текст или HTML перед открывающим токеном <?php.

     <?php
    # There a SINGLE space/newline before <? - Which already seals it.
    

    Аналогично это может произойти для добавленных скриптов или script разделов:

    ?>
    
    <?php
    

    PHP на самом деле поглощает одну строку после тегов. Но это не будет
    компенсировать несколько новых строк или вкладок или пробелов, сдвинутых в такие промежутки.

  • Спецификация UTF-8

    Одной из проблем может быть только односторонняя линия и пространство. Но есть и «невидимые»
    последовательности символов, которые могут вызвать это. Самый классный
    Спецификация UTF-8 (байт-заказ-марка)который не отображается большинством текстовых редакторов. Это байтовая последовательность EF BB BF, которая
    является необязательным и избыточным для кодированных документов UTF-8. Однако PHP должен лечить
    это как сырой выход. Он может отображаться как символы  на выходе (если клиент
    интерпретирует документ как латинский-1) или аналогичный «мусор».

    В частности, графические редакторы и Java-IDE не обращают внимания на свои
    присутствие. Они не визуализируют его (обязаны стандартом Unicode).
    Однако большинство программистов и консольных редакторов:

    Изображение 725

    Там легко понять проблему на ранней стадии. Другие редакторы могут идентифицировать
    его присутствие в меню файлов/настроек (Notepad ++ в Windows может идентифицировать и
    устранить проблему),
    Другой способ проверки присутствия BOM прибегает к hexeditor.
    В системах * nix hexdump обычно доступен,
    если не графический вариант, который упрощает проверку этих и других проблем:

    Изображение 726

    Легкое исправление заключается в том, чтобы установить текстовый редактор для сохранения файлов как «UTF-8 (no BOM)»
    или подобная такая номенклатура. Зачастую новички прибегают к созданию новых
    файлы и просто скопировать и снова вставить предыдущий код.

    Утилиты исправления Изображение 727

    Существуют также автоматизированные инструменты для проверки и перезаписи текстовых файлов
    ( sed/awk или recode).
    Для PHP специально существует phptags tag tidier.
    Он переписывает закрытые и открытые теги в длинные и короткие формы, но также легко
    исправляет начальные и конечные пробелы, проблемы с Unicode и UTF-x:

    phptags  --whitespace  *.php
    

    Это разумно использовать в целом include или каталог проекта.

  • Пробелы после ?>

    Если источник ошибки упоминается как за
    закрытие ?>
    то здесь выписывается какой-то пропущенный или необработанный текст.
    Маркер конца PHP не завершает выполнение script при этом
    точка. Любые символы текста/пробела после того, как они будут выписаны как содержимое страницы
    до сих пор.

    Общепринято, в частности, новичкам, что trailing ?> PHP
    теги close должны быть опущены. Это предотвращает небольшую часть этих случаев.
    (Чаще всего сценарии include()d являются виновниками.)

  • Источник ошибки, указанный как «Неизвестно в строке 0»

    Обычно это расширение PHP или php.ini, если источник ошибок
    конкретизируется.

    • Иногда параметр настройки потока gzip
      или ob_gzhandler.
    • Но это может быть и любой загруженный в два раза модуль extension=
      генерирование неявного сообщения о запуске/предупреждении PHP.
  • Предыдущие сообщения об ошибках

    Если другой оператор или выражение PHP вызывает предупреждение или
    уведомление распечатывается, что также считается преждевременным выходом.

    В этом случае вам нужно избежать ошибки,
    задержать выполнение оператора или подавить сообщение, например.
    isset() или @()
    когда либо не препятствует отладке позже.

Нет сообщения об ошибке

Если у вас error_reporting или display_errors отключено на php.ini,
то предупреждение не появится. Но игнорирование ошибок не вызовет проблемы
далеко. Заголовки по-прежнему не могут быть отправлены после преждевременного выхода.

Поэтому, когда header("Location: ...") перенаправляет молча,
рекомендуется проконтролировать предупреждения. Обозначить их двумя простыми командами
на вызов script:

error_reporting(E_ALL);
ini_set("display_errors", 1);

Или set_error_handler("var_dump");, если все остальное не работает.

Говоря о переадресации заголовков, вы должны часто использовать идиому вроде
это для конечных путей кода:

exit(header("Location: /finished.html"));

Предпочтительно даже функция полезности, которая печатает сообщение пользователя
в случае сбоев header().

Буферизация вывода в качестве обходного пути

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

  • output_buffering=
    тем не менее, может помочь.
    Настройте его в php.ini
    или через . htaccess
    или даже . user.ini on
    современные установки FPM/FastCGI.
    Включение этого режима позволит PHP выводить выходные данные вместо того, чтобы передавать его на веб-сервер
    мгновенно. Таким образом, PHP может собирать заголовки HTTP.

  • Он также может быть связан с вызовом ob_start();
    на вершине вызова script. Это, однако, менее надежно по нескольким причинам:

    • Даже если <?php ob_start(); ?> запускает первый script, пробел или
      Спецификация может быть перетасована раньше, делает ее неэффективной.

    • Он может скрывать пробелы для вывода HTML. Но как только приложение
      логические попытки отправить двоичный контент (например, сгенерированное изображение),
      буферизованный посторонний выход становится проблемой. (Необходимость ob_clean()
      как предыдущий вариант.)

    • Буфер ограничен по размеру и может быть легко переполнен, если оставить его по умолчанию.
      И это не редкость, трудно отследить
      когда это произойдет.

Оба подхода могут стать ненадежными — в частности, при переключении между
разработки и/или производственные серверы. Именно поэтому буферизация вывода
широко считается просто костылем/строго обходным путем.

См. также базовый пример использования
в руководстве, и для большего количества плюсов и минусов:

  • Что такое буферизация вывода?
  • Зачем использовать буферизацию вывода в PHP?
  • Является ли использование буферизации вывода считающейся плохой практикой?
  • Использовать регистр для буферизации вывода как правильное решение для уже отправленных заголовков

Но он работал на другом сервере!?

Если вы не получили предупреждения заголовков раньше, то выходная буферизация
 Настройка php.ini
 изменилось. Вероятно, он не сконфигурирован на текущем/новом сервере.

Проверка с помощью headers_sent()

Вы всегда можете использовать headers_sent(), чтобы проверить, если
все еще можно… отправить заголовки. Что полезно для условной печати
информацию или применить другую резервную логику.

if (headers_sent()) {
    die("Redirect failed. Please click on this link: <a href=...>");
}
else{
    exit(header("Location: /user.php"));
}

Полезные обходные пути:

  • HTML <meta> тег

    Если ваше приложение структурно сложно исправить, тогда простое (но
    несколько непрофессиональный) способ разрешить переадресацию — это инъекция HTML-кода
    тег <meta>. Перенаправление может быть достигнуто с помощью:

     <meta http-equiv="Location" content="http://example.com/">
    

    Или с небольшой задержкой:

     <meta http-equiv="Refresh" content="2; url=../target.html">
    

    Это приводит к недействительному HTML, когда используется раздел <head>.
    Большинство браузеров все еще принимают его.

  • Переадресация JavaScript

    В качестве альтернативы JavaScript-перенаправление
    может использоваться для перенаправления страниц:

     <script> location.replace("target.html"); </script>
    

    Хотя это часто более совместимо с HTML, чем обходное решение <meta>
    он берет на себя зависимость от клиентов, поддерживающих JavaScript.

Оба подхода, однако, делают приемлемые резервные копии, когда подлинный HTTP-заголовок()
вызовы не выполняются. В идеале вы всегда должны сочетать это с удобным для пользователя сообщением и
в качестве последней инстанции. (Например, это http_redirect()
Расширение PECL делает.)

Почему setcookie() и session_start() также затронуты

Оба setcookie() и session_start() должны отправить HTTP-заголовок Set-Cookie:.
Таким образом, применяются те же условия, и аналогичные сообщения об ошибках будут сгенерированы
для случаев преждевременного выхода.

(Конечно, в браузере, кроме того, они подвержены воздействию файлов cookie,
или даже проблемы с прокси. Функциональность сеанса, очевидно, также зависит от
дисковое пространство и другие настройки php.ini и т.д.)

Дальнейшие ссылки

  • Google предоставляет длинный список подобных обсуждений.
  • И, конечно, многие конкретные случаи были также рассмотрены в переполнении стека.
  • В WordPress часто задаются вопросы Как решить проблему, уже отправленную предупреждением? в общем виде.
  • Сообщество Adobe: PHP-разработка: почему перенаправления не работают (уже отправленные заголовки)
  • Часто задаваемые вопросы о нуклеусе: Что означает «заголовки страниц уже отправлены» ?
  • Одним из более подробных объяснений является HTTP-заголовки и функция заголовка PHP() — учебник NicholasSolutions (ссылка на интернет-архив).
    Он подробно описывает HTTP и дает несколько рекомендаций по переписыванию скриптов.

Видеть Как_решить_заголовки_уже_отправлено_предупреждение_проблема? > Часто задаваемые вопросы Устранение неполадок « WordPress Codex

(Эта ошибка) обычно возникает из-за того, что перед открытием есть пробелы, новые строки или другие вещи. <?php тег или после закрытия ?> тег, обычно в wp-config.php.

Откройте файл в обычном текстовом редакторе (например, Блокноте или BBEdit) и очистите пробелы. Убедитесь, что самые первые символы <?php
и самые последние символы либо НЕ являются закрывающим тегом PHP, либо or закрывающий тег ?> без пустых строк или пробелов после него. (К вашему сведению, файл PHP может нормально работать без закрытия ?> тег.)

При сохранении убедитесь, что кодировка файла не UTF-8 BOM, а обычная UTF-8 или любая другая без суффикса BOM.

А также:

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

Если в сообщении об ошибке указано: Warning: Cannot modify header information
- headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42
, тогда проблема в строке № 34 файла wp-config.php, а не в строке № 42 файла wp-login.php. В этом случае жертвой является строка № 42 файла wp-login.php. На это влияет избыток пробелов в строке № 34 файла wp-config.php.

Если в сообщении об ошибке указано: Предупреждение: Cannot modify header information
- headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line
569
, тогда проблема в строке № 8 файла admin-header.php, а не в строке № 569 файла post.php. В этом случае жертвой является строка #569 файла post.php. На это влияет избыток пробелов в строке № 8 файла admin-header.php.

Линии, упомянутые в сообщениях об ошибках, содержат вызовы header() и setcookie() .

  • Поверните массив в независимые аргументы функции — howto?
  • Функция NOW () в PHP
  • Подпись UTF-8 BOM в файлах PHP
  • Чтение данных сеанса из файла хранения сеанса
  • Не удалось записать файл кэша «/var/www/myapp/app/cache/dev/classes.php» при очистке кеша
  • Код Igniter 2: Как продлить CI_Controller несколько раз?
  • Как просмотреть ошибку запроса в PDO PHP
  • Как увеличить максимальную переменную POST в PHP?
  • Ошибка PHP Parse: синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR
  • mysqli соединение не работает внутри функции?

Это сообщение об ошибке запускается, когда что-либо отправляется перед отправкой заголовков HTTP (с помощью setcookie или header ). Общие причины вывода чего-либо перед заголовками HTTP:

  • Случайные пробелы, часто в начале или в конце файлов, например:

      <?php // Note the space before "<?php" ?> 

Чтобы этого избежать, просто оставьте закрытие ?> – это не обязательно.

  • Значения байтов в начале файла php. Изучите ваши php-файлы с помощью шестнадцатеричного редактора, чтобы узнать, так ли это. Они должны начинаться с байтов 3F 3C . Вы можете безопасно удалить BOM EF BB BF с начала файлов.
  • Явный вывод, например вызовы для echo , printf , readfile , readfile , код до <? и т.п.
  • Предупреждение, выданное php, если установлено свойство display_errors php.ini. Вместо того, чтобы сбой при ошибке программиста, php молча фиксирует ошибку и выдает предупреждение. Хотя вы можете изменить конфигурации display_errors или error_reporting , вам лучше исправить проблему.
    Общими причинами являются доступ к неопределенным элементам массива (например, $_POST['input'] без использования empty или isset для проверки того, установлен ли вход) или с помощью неопределенной константы вместо строкового литерала (как в $_POST[input] , обратите внимание на недостающие кавычки).

Включение буферизации вывода должно устранить проблему; весь вывод после вызова ob_start буферизуется в памяти до тех пор, пока вы не освободите буфер, например, с ob_end_flush .

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

Я получил эту ошибку много раз раньше. И я уверен, что все программисты PHP по крайней мере однажды получили эту ошибку. Чтобы решить эту ошибку, вы можете решить использовать решение в соответствии с уровнем вашей проблемы:

Возможное решение 1:

Возможно, вы оставили пробелы до или после (в конце файла после?>), Т.е.

 THERE SHOULD BE NO BLANK SPACES HERE <?php echo "your code here"; ?> DO CHECK FOR BLANK SPACES HERE AS WELL; THIS LINE (blank line) SHOULD NOT EXIST. 

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

Примечание. Иногда EDITOR (IDE), например gedit (стандартный Linux-редактор), добавляет одну пустую строку в файл save save. Этого не должно быть. Если вы используете linux. вы можете использовать редактор VI для удаления пробела / строк после?> в конце страницы.

Если это не ваше дело, тогда вы можете использовать ob_start для буферизации вывода, как показано ниже:

Возможное решение 2:

 <?php ob_start(); // code ob_end_flush(); ?> 

Вместо приведенной ниже строки

 //header("Location:".ADMIN_URL."/index.php"); 

записывать

 echo("<script>location.href = '".ADMIN_URL."/index.php?msg=$msg';</script>"); 

или

 ?><script><?php echo("location.href = '".ADMIN_URL."/index.php?msg=$msg';");?></script><?php 

Это определенно решит вашу проблему. Я столкнулся с одной и той же проблемой, но решил решить эту проблему путем написания заголовка.

Вы делаете

 printf ("Hi %s,</br />", $name); 

перед установкой файлов cookie, что запрещено. Вы не можете отправлять какие-либо данные перед заголовками, даже пустую строку.

Именно из-за этой строки:

 printf ("Hi %s,</br />", $name); 

Вы не должны печатать / эхо ничего перед отправкой заголовков.

Простой совет: простое пространство (или невидимый специальный символ) в вашем скрипте, прямо перед самым первым <?php , может вызвать это! Особенно, когда вы работаете в команде, а кто-то использует «слабую» IDE или перепутал файлы со странными текстовыми редакторами.

Я видел эти вещи;)

Другая неправильная практика может вызвать эту проблему, которая еще не указана.

См. Этот фрагмент кода:

 <?php include('a_important_file.php'); //really really really bad practise header("Location:A location"); ?> в <?php include('a_important_file.php'); //really really really bad practise header("Location:A location"); ?> 

Все в порядке, не так ли?

Что, если «a_important_file.php»:

 <?php //some php code //another line of php code //no line above is generating any output ?> ----------This is the end of the an_important_file------------------- 

Это не будет работать? Почему? Потому что уже создана новая строка.

Теперь, хотя это не общий сценарий, что, если вы используете среду MVC, которая загружает большое количество файлов перед передачей данных на ваш контроллер? Это не необычный сценарий. Будьте готовы к этому.

Из PSR-2 2.2:


  • Все файлы PHP ДОЛЖНЫ использовать окончание Unix LF (linefeed) line ending .
  • Все файлы PHP ДОЛЖНЫ заканчиваться single blank line .
  • Тег закрытия?> ДОЛЖЕН быть omitted из файлов, содержащих only php

Поверьте мне, следующие стандарты могут сэкономить вам много часов из вашей жизни 🙂

использование

ob_start ();

на самом верху вашего скрипта и

ob_end_flush ();

в нижней части вашего скрипта. Этот wil включит буферизацию вывода, и ваши заголовки будут созданы после того, как страница будет буферизована.

ОБЩИЕ ПРОБЛЕМЫ:

====================

(скопированный ответ из: источник )

1) перед header(.......); не должно быть никакого выхода (т.е. echo.. или HTML-кодов header(.......); команда.

2) удалите любое пробел (или новую строку ) перед тегами <?php и после ?> .

3) ЗОЛОТОЕ ПРАВИЛО! – проверьте, поддерживает ли этот файл php (а также, если вы include другие файлы) UTF8 без кодировки спецификации (а не только UTF-8 ). Это проблема во многих случаях (потому что кодированный файл UTF8 имеет что-то особенное в начале файла php, которое ваш текстовый редактор не показывает) !!!!!!!!!!!

4) После header(...); вы должны использовать exit;

5) всегда используйте ссылку 301 или 302:

 header("location: http://example.com", true, 301 ); exit; 

6) Включите отчет об ошибках. И сообщите об ошибке.

7) Если ни одно из вышеизложенных не помогает, используйте перенаправление JAVSCRIPT (однако, сильно не рекомендуемый метод), может быть последним шансом в пользовательских случаях …:

 echo "<script type='text/javascript'>window.top.location='http://website.com/';</script>"; exit; 

Иногда, когда в процессе dev есть обе рабочие станции WIN и системы LINUX (хостинг), а в коде вы не видите никакого вывода перед соответствующей строкой, это может быть форматирование файла и отсутствие линии Unix LF (linefeed), заканчивающейся ,

Что мы обычно делаем, чтобы быстро исправить это, переименуйте файл, а в системе LINUX создайте новый файл вместо переименованного, а затем скопируйте его в него. Много раз это решает проблему, поскольку некоторые из файлов, которые были созданы в WIN, когда-то перемещенные на хостинг, вызывают эту проблему.

Это исправление является простым решением для сайтов, которыми мы управляем по FTP, и иногда может сэкономить нашим новым членам команды некоторое время.

Как правило, эта ошибка возникает, когда мы отправляем заголовок после эха или печати. Если эта ошибка возникает на определенной странице, убедитесь, что страница не повторяет ничего перед вызовом start_session() .

Пример непредсказуемой ошибки:

  <?php //a white-space before <?php also send for output and arise error session_start(); session_regenerate_id(); //your page content 

Еще один пример:

 <?php includes 'functions.php'; ?> <!-- This new line will also arise error --> <?php session_start(); session_regenerate_id(); //your page content 

Вывод: не выводить символ перед вызовом функций session_start() или header() даже не в виде пробела или новой строки

  • Hello,

    I have a problem on my site. When I go to the “edit post” I get Fatal eror and the following message:
    `Fatal error: Uncaught Error: Argument number specifier must be greater than zero and less than 2147483647
    in /home/prelepap/public_html/wp-admin/admin-header.php on line 62

    Call stack:

    sprintf()
    wp-admin/admin-header.php:62
    require_once()
    wp-admin/edit-form-advanced.php:425
    require()
    wp-admin/post.php:206`

    When I set PHP to version 7.4 I only get the following message in the top corner:
    Warning: sprintf(): Argument number must be greater than zero in /home/prelepap/public_html/wp-admin/admin-header.php on line 62

    but it allows me to make changes and update the post.

    When I set PHP to version 8.0 or 8.1 then I get a fatal error when editing the post.

    When I want to publish a new post, he allows me to do it normally, but when I go to that post I only get a message:
    Forbidden
    You don’t have permission to access this resource.

    All older posts display normally, but does not allow editing.

    I turned off all plugins and set a different theme, but the error is still the same.

    At the following link you can see what is at: admin-header.php on line 62 CLICK HERE

    The page I need help with: [log in to see the link]

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    
    <?php
     
     
     
        if ( ! defined( 'ABSPATH' ) ) {
            exit;
        }
     
        if ( ! class_exists( 'FusionRedux_Filesystem' ) ) {
            class FusionRedux_Filesystem {
     
                /**
                 * Instance of this class.
                 *
                 * @since    1.0.0
                 * @var      object
                 */
                protected static $instance = null;
     
                protected static $direct = null;
     
                private $creds = array();
     
                public $fs_object = null;
     
                public $parent = null;
     
                public function __construct() {
                    $this->parent->admin_notices[] = array(
                        'type'    => 'error',
                        'msg'     => '<strong>' . __( 'File Permission Issues', 'Avada' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please check your permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%s" target="_blank">outlined here</a>.', 'Avada' ), 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ),
                        'id'      => 'fusionredux-wp-login',
                        'dismiss' => false,
                    );
                }
     
                /**
                 * Return an instance of this class.
                 *
                 * @since     1.0.0
                 * @return    object    A single instance of this class.
                 */
                public static function get_instance( $parent = null ) {
     
                    // If the single instance hasn't been set, set it now.
                    if ( null == self::$instance ) {
                        self::$instance = new self;
                    }
     
                    if ( $parent !== null ) {
                        self::$instance->parent = $parent;
                    }
     
                    return self::$instance;
                }
     
                public function ftp_form() {
                    if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                        echo '<div class="wrap"><div class="error"><p>';
                        echo '<strong>' . __( 'File Permission Issues', 'Avada' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please ensure that <code>%1s</code> has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%2s" target="_blank">outlined here</a>.', 'Avada' ), FusionRedux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' );
                        echo '</p></div><h2></h2>' . '</div>';
                    }
                }
     
                function filesystem_init( $form_url, $method = '', $context = false, $fields = null ) {
                    global $wp_filesystem;
     
                    if ( ! empty( $this->creds ) ) {
                        return true;
                    }
     
                    ob_start();
     
                    /* first attempt to get credentials */
                    if ( false === ( $this->creds = request_filesystem_credentials( $form_url, $method, false, $context ) ) ) {
                        $this->creds            = array();
                        $this->parent->ftp_form = ob_get_contents();
                        ob_end_clean();
     
                        /**
                         * if we comes here - we don't have credentials
                         * so the request for them is displaying
                         * no need for further processing
                         **/
     
                        return false;
                    }
     
                    /* now we got some credentials - try to use them*/
                    if ( ! WP_Filesystem( $this->creds ) ) {
                        $this->creds = array();
                        /* incorrect connection data - ask for credentials again, now with error message */
                        request_filesystem_credentials( $form_url, '', true, $context );
                        $this->parent->ftp_form = ob_get_contents();
                        ob_end_clean();
     
                        return false;
                    }
     
                    return true;
                }
     
     
                public static function load_direct() {
                    if ( self::$direct === null ) {
                        require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php' );
                        require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php' );
                        self::$direct = new WP_Filesystem_Direct( array() );
                    }
                }
     
                public function execute( $action, $file = '', $params = '' ) {
     
                    if ( empty( $this->parent->args ) ) {
                        return;
                    }
     
                    if ( ! empty ( $params ) ) {
                        extract( $params );
                    }
     
                    if ( ! is_dir( FusionReduxFramework::$_upload_dir ) ) {
                        wp_mkdir_p( FusionReduxFramework::$_upload_dir );
                    }
     
                    // Setup the filesystem with creds
                    require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/template.php' );
     
                    require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/file.php' );
     
                    if ( $this->parent->args['menu_type'] == 'submenu' ) {
                        $page_parent = $this->parent->args['page_parent'];
                        $base        = $page_parent . '?page=' . $this->parent->args['page_slug'];
                    } else {
                        $base = 'admin.php?page=' . $this->parent->args['page_slug'];
                    }
     
                    $url = wp_nonce_url( $base, 'fusionredux-options' );
     
                    $this->filesystem_init( $url, 'direct', dirname( $file ) );
     
                    return $this->do_action( $action, $file, $params );
                }
     
                public function do_action( $action, $file = '', $params = '' ) {
     
                    if ( ! empty ( $params ) ) {
                        extract( $params );
                    }
     
                    global $wp_filesystem;
     
                    if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) {
                        if ( defined( 'FS_CHMOD_FILE' ) ) {
                            $chmod = FS_CHMOD_FILE;
                        } else {
                            $chmod = 0644;
                        }
                    }
                    $res = false;
                    if ( ! isset( $recursive ) ) {
                        $recursive = false;
                    }
     
                    //$target_dir = $wp_filesystem->find_folder( dirname( $file ) );
     
                    // Do unique stuff
                    if ( $action == 'mkdir' ) {
     
                        if ( defined( 'FS_CHMOD_DIR' ) ) {
                            $chmod = FS_CHMOD_DIR;
                        } else {
                            $chmod = 0755;
                        }
                        $res = $wp_filesystem->mkdir( $file );
                        if ( ! $res ) {
                            wp_mkdir_p( $file );
     
                            $res = file_exists( $file );
                            if ( ! $res ) {
                                mkdir( $file, $chmod, true );
                                $res = file_exists( $file );
                            }
                        }
                    } elseif ( $action == 'rmdir' ) {
                        $res = $wp_filesystem->rmdir( $file, $recursive );
                    } elseif ( $action == 'copy' && ! isset( $this->filesystem->killswitch ) ) {
                        if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                            $res = copy( $file, $destination );
                            if ( $res ) {
                                chmod( $destination, $chmod );
                            }
                        } else {
                            $res = $wp_filesystem->copy( $file, $destination, $overwrite, $chmod );
                        }
                    } elseif ( $action == 'move' && ! isset( $this->filesystem->killswitch ) ) {
                        $res = $wp_filesystem->copy( $file, $destination, $overwrite );
                    } elseif ( $action == 'delete' ) {
                        $res = $wp_filesystem->delete( $file, $recursive );
                    } elseif ( $action == 'rmdir' ) {
                        $res = $wp_filesystem->rmdir( $file, $recursive );
                    } elseif ( $action == 'dirlist' ) {
                        if ( ! isset( $include_hidden ) ) {
                            $include_hidden = true;
                        }
                        $res = $wp_filesystem->dirlist( $file, $include_hidden, $recursive );
                    } elseif ( $action == 'put_contents' && ! isset( $this->filesystem->killswitch ) ) {
                        // Write a string to a file
                        if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                            self::load_direct();
                            $res = self::$direct->put_contents( $file, $content, $chmod );
                        } else {
                            $res = $wp_filesystem->put_contents( $file, $content, $chmod );
                        }
                    } elseif ( $action == 'chown' ) {
                        // Changes file owner
                        if ( isset( $owner ) && ! empty( $owner ) ) {
                            $res = $wp_filesystem->chmod( $file, $chmod, $recursive );
                        }
                    } elseif ( $action == 'owner' ) {
                        // Gets file owner
                        $res = $wp_filesystem->owner( $file );
                    } elseif ( $action == 'chmod' ) {
     
                        if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) {
                            $chmod = false;
                        }
     
                        $res = $wp_filesystem->chmod( $file, $chmod, $recursive );
     
                    } elseif ( $action == 'get_contents' ) {
                        // Reads entire file into a string
                        if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                            self::load_direct();
                            $res = self::$direct->get_contents( $file );
                        } else {
                            $res = $wp_filesystem->get_contents( $file );
                        }
                    } elseif ( $action == 'get_contents_array' ) {
                        // Reads entire file into an array
                        $res = $wp_filesystem->get_contents_array( $file );
                    } elseif ( $action == 'object' ) {
                        $res = $wp_filesystem;
                    } elseif ( $action == 'unzip' ) {
                        $unzipfile = unzip_file( $file, $destination );
                        if ( $unzipfile ) {
                            $res = true;
                        }
                    }
     
                    if ( ! $res ) {
                        if ($action == 'dirlist') {
                if (empty($res) || $res == false || $res == '' ) {
                                return;
                }
     
                            if (is_array($res) && empty($res)) {
                                return;
                            }
     
                            if (!is_array($res)) {
                                if (count(glob("$file*")) == 0) {
                                    return;
                                }
                            }
                        }
     
                        $this->killswitch              = true;
                        $this->parent->admin_notices[] = array(
                            'type'    => 'error',
                            'msg'     => '<strong>' . __( 'File Permission Issues', 'Avada' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please ensure that <code>%1s</code> has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%2s" target="_blank">outlined here</a>.', 'Avada' ), FusionRedux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ),
                            'id'      => 'fusionredux-wp-login',
                            'dismiss' => false,
                        );
                        //add_action( "fusionredux/page/{$this->parent->args['opt_name']}/form/before", array(
                        //    $this,
                        //    'ftp_form'
                        //) );
                    }
     
                    return $res;
                }
            }
     
            FusionRedux_Filesystem::get_instance();
        }

    I did some research to solve this problem, but seems like not working for me, I have checked all the spacing, replaced original functions.php, double check wp-config.php but still not working for me. Im using wordpress 5.4 version, after I installed Elementor Pro and insert WP-Filebase shortcode, the error message showing up.

    Warning: Cannot modify header information — headers already sent by (output started at /home/customer/www/xxx.xxx/public_html/xxx/wp-includes/class.wp-scripts.php:405) in /home/customer/www/xxx.xxx/public_html/xxx/wp-admin/admin-header.php on line 9>

    Here is the class.wp-scripts.php on line 405

    * Filters the HTML script tag of an enqueued script.
    *
    * @since 4.1.0
    *
    * @param string $tag    The `<script>` tag for the enqueued script.
    * @param string $handle The script's registered handle.
    * @param string $src    The script's source URL.
    */
    $tag = apply_filters( 'script_loader_tag', $tag, $handle, $src );
    
    if ( $this->do_concat ) {
            $this->print_html .= $tag;
        } else {
            echo $tag;
        }
    
        return true;
    }
    

    Here is the admin-header.php on line 9

    header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
    if ( ! defined( 'WP_ADMIN' ) ) {
        require_once __DIR__ . '/admin.php';
    }
    

    wp-admin/menu-header.php:166 — Использование уровней пользователей в плагинах и темах считается устаревшим. Используйте роли и возможности.
    require_once(‘wp-admin/admin-header.php’), require(‘wp-admin/menu-header.php’), _wp_menu_output, current_user_can


    • Вопрос задан

      более трёх лет назад

    • 190 просмотров

  • Ошибка adf epson 7720
  • Ошибка adf epson 7710
  • Ошибка ade элинж рефрижератор что делать
  • Ошибка ade элинж как устранить
  • Ошибка addcert failed 0x5 5