Приветствую! Ломаю голову уже 2 день над этой ошибкой. Суть в чем, я делаю регистрацию для игрушки, этот скрипт отвечает за отсылку данных на сервер, также есть другие соответствующие скрипты. При заходе на страницу выбивает подобие этого Как видите выбивает ошибку "Cannot modify header information - headers already sent by...", а уже после исполняется кусочек кода (который по сути бесполезен, поскольку остальные запросы заблокированы) Читал что может быть из за пробелов вначале, проверил, все идеально. Оно пишет что ошибка во второй строчке, но там просто разрешаются кроссдоменные запросы.... . Вот собственно код, буду благодарен за любую помощь PHP: <?php header ('Access-Control-Allow-Origin: *');//Разрешили кроссдоменные запросы $mysql_host = "хост"; $mysql_database = "Бд"; $mysql_user = "Юзернейм"; $mysql_password = "пОроль"; $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Ошибка при подключении MySQL" ); mysql_select_db($mysql_database, $link) or die ('Ошибка при подключении к БД'); if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} } if (isset($_POST['email'])) { $email=$_POST['email']; if ($email =='') { unset($email);} } if (isset($_POST['silvercoin'])) { $silvercoin=$_POST['silvercoin']; if ($silvercoin =='') { unset($silvercoin);} } if (isset($_POST['goldcoin'])) { $goldcoin=$_POST['goldcoin']; if ($goldcoin =='') { unset($goldcoin);} } if (empty($login) or empty($password) or empty($email)) { echo ("Вы ввели не всю информацию, заполните все поля!"); exit(); } $login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); $email = stripslashes($email); $email = htmlspecialchars($email); $silvercoin = stripslashes($silvercoin); $silvercoin = htmlspecialchars($silvercoin); $goldcoin = stripslashes($goldcoin); $goldcoin = htmlspecialchars($goldcoin); $login = trim($login); $password = trim($password); $email = trim($email); $silvercoin = trim($silvercoin); $goldcoin = trim($goldcoin); $q1 = mysql_query("SELECT login FROM `accounts` WHERE `login`='".$login."'"); $loginb = mysql_fetch_array($q1); $loginbd=$loginb['login']; if($loginbd == $login){ echo("Извините, введённый вами логин уже зарегистрирован."); exit(); } else $result2 = mysql_query ("INSERT INTO accounts (login,password,email) VALUES('$login','$password','$email')"); if ($result2=='TRUE') { echo "Вы успешно зарегистрированы!"; } else { echo "Ошибка! Вы не зарегистрированы."; } ?> --- Добавлено --- Главный прикол в том, что именно ошибку то можно убрать через .htaccess, но запросы к БД не будут отсылаться и будет выбивать ошибку!
Завтра выходит новая версия интернета, сегодня в 23:59, отрубаем всех нубов. Это ответ если твой IQ > 0
Я умственно одаренных вроде тебя пытаюсь игнорить, слишком много высераешь ртом а на деле слишком мало пользы. Человек, который написал после тебя хотябы дал наводку на то что нужно еще раз проверить. А ты иди к врачу сходи, пока не поздно.
Уважаемый MouseZver хочет сказать, что, вероятно, php пытается сообщить о какой-то проблеме до вывода заголовков с помощью header(). Закомментируйте эту строку, возможно, удастся это сообщение прочитать.
@disfey поведение Мауса не отменяет факта, что код – Г. @MouseZver, наверное, это ТС не сам писал. Такое Г периодически всплывает на разных форумах. Есть в нем весьма четкие маркеры вроде PHP: if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
Говорит, что в первой строке есть вывод. Значит он есть. Пробелы, переносы строк или bom символ. Последний убирается сменой кодировки файла. Раньше кодировки в редакторах назывались utf-8 и utf-8 без bom. Сейчас наоборот. Utf-8 и utf-8 С bom. Проверь, как у тебя.