Помогите исправить ошибку «Cannot modify header information — headers already sent by»

disfey

Приветствую! Ломаю голову уже 2 день над этой ошибкой. Суть в чем, я делаю регистрацию для игрушки, этот скрипт отвечает за отсылку данных на сервер, также есть другие соответствующие скрипты. При заходе на страницу выбивает подобие этого
[​IMG]
Как видите выбивает ошибку «Cannot modify header information — headers already sent by…», а уже после исполняется кусочек кода (который по сути бесполезен, поскольку остальные запросы заблокированы)
Читал что может быть из за пробелов вначале, проверил, все идеально. Оно пишет что ошибка во второй строчке, но там просто разрешаются кроссдоменные запросы….
.
Вот собственно код, буду благодарен за любую помощь :)

PHP:
  1. <?php
  2. header (‘Access-Control-Allow-Origin: *’);//Разрешили кроссдоменные запросы
  3.  
  4. $mysql_host = «хост»;
  5. $mysql_database = «Бд»;
  6. $mysql_user = «Юзернейм»;
  7. $mysql_password = «пОроль»;
  8.  
  9. $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(«Ошибка при подключении MySQL» );
  10. mysql_select_db($mysql_database, $link) or die (‘Ошибка при подключении к БД’);
  11.  
  12.     if (isset($_POST[‘login’])) { $login = $_POST[‘login’]; if ($login == ») { unset($login);} }
  13.     if (isset($_POST[‘password’])) { $password=$_POST[‘password’]; if ($password ==») { unset($password);} }
  14.     if (isset($_POST[’email’])) { $email=$_POST[’email’]; if ($email ==») { unset($email);} }
  15.     if (isset($_POST[‘silvercoin’])) { $silvercoin=$_POST[‘silvercoin’]; if ($silvercoin ==») { unset($silvercoin);} }
  16.     if (isset($_POST[‘goldcoin’])) { $goldcoin=$_POST[‘goldcoin’]; if ($goldcoin ==») { unset($goldcoin);} }
  17. if (empty($login) or empty($password) or empty($email))
  18.     {
  19.     echo («Вы ввели не всю информацию, заполните все поля!»);
  20.     exit();
  21.     }
  22.     $login = stripslashes($login);
  23.     $login = htmlspecialchars($login);
  24.     $password = stripslashes($password);
  25.     $password = htmlspecialchars($password);
  26.     $email = stripslashes($email);
  27.     $email = htmlspecialchars($email);
  28.     $silvercoin = stripslashes($silvercoin);
  29.     $silvercoin = htmlspecialchars($silvercoin);
  30.     $goldcoin = stripslashes($goldcoin);
  31.     $goldcoin = htmlspecialchars($goldcoin);
  32.     $login = trim($login);
  33.     $password = trim($password);
  34.     $email = trim($email);
  35.     $silvercoin = trim($silvercoin);
  36.     $goldcoin = trim($goldcoin);
  37.     $q1 = mysql_query(«SELECT login FROM `accounts` WHERE `login`='».$login.«‘»);
  38.     $loginb = mysql_fetch_array($q1);
  39.     $loginbd=$loginb[‘login’];
  40.     if($loginbd == $login){
  41.     echo(«Извините, введённый вами логин уже зарегистрирован.»);
  42.     exit();
  43.     }
  44.      else
  45.     $result2 = mysql_query («INSERT INTO accounts (login,password,email) VALUES(‘$login‘,’$password‘,’$email‘)»);
  46.     if ($result2==‘TRUE’)
  47.     {
  48.     echo «Вы успешно зарегистрированы!»;
  49.     }
  50. else {
  51.     echo «Ошибка! Вы не зарегистрированы.»;
  52.     }
  53. ?>

— Добавлено —
Главный прикол в том, что именно ошибку то можно убрать через .htaccess, но запросы к БД не будут отсылаться и будет выбивать ошибку!

 

MouseZver

ДиноКаменноПросрокоGovnoКод не поддерживается.
— Добавлено —

Начни с php 7.4

 

miketomlin

И на BOM проверь исходник ;)

 

disfey

Стоп, ты считаешь что php 5.6 каменный при том что его почти все хостинги поддерживают? xD

 

MouseZver

Завтра выходит новая версия интернета, сегодня в 23:59, отрубаем всех нубов. Это ответ если твой IQ > 0

 

php8guru

Перед header есть какой то символ который выводится.

 

disfey

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

 

Drunkenmunky

Уважаемый MouseZver хочет сказать, что, вероятно, php пытается сообщить о какой-то проблеме до вывода заголовков с помощью header().
Закомментируйте эту строку, возможно, удастся это сообщение прочитать.

 

MouseZver

miketomlin

@disfey поведение Мауса не отменяет факта, что код – Г.

@MouseZver, наверное, это ТС не сам писал. Такое Г периодически всплывает на разных форумах. Есть в нем весьма четкие маркеры вроде

PHP:
  1. if (isset($_POST[‘login’])) { $login = $_POST[‘login’]; if ($login == ») { unset($login);} }
 

TeslaFeo

Говорит, что в первой строке есть вывод. Значит он есть.
Пробелы, переносы строк или bom символ.
Последний убирается сменой кодировки файла. Раньше кодировки в редакторах назывались utf-8 и utf-8 без bom.
Сейчас наоборот. Utf-8 и utf-8 С bom.
Проверь, как у тебя.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *