Здравствуйте, у меня пролбемы . Начну с того, что на всех моих страницах высвечивается ошибка - Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\Tests\Projektas2\index.php:1) in Z:\home\localhost\www\Tests\Projektas2\db.php on line 8. И я знаю что это. Даю вам примеры: Если во всех моих страницах поставить кодировку на UTF-8 без BOM или на ANSI, так это ошибка пропадает !! И сайт работает нормально! НО! Эти кодировки не поддерживают русский шрифт, и в итоге на странице вместо русских символов, получаются иероглифы. И значит мне остаётся сайт делать ан английском языке! Но я не хочу так ! И если я поставлю на utf-8, так ошибка появляется! Из-за чего так происходит? Я кажись всё делал правильно, но ошибка есть! И еще, на моём сайте есть регистрация и авторизация. И если я с это ошибкой авторизуюсь на сайте, так почему-то не смогу выйти из аккаунта. Если нажму кнопку " Выйти " так появляются еще ошибки! Вот что пишут - ( Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\Tests\Projektas2\logout.php:1) in Z:\home\localhost\www\Tests\Projektas2\db.php on line 8 Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Tests\Projektas2\logout.php:1) in Z:\home\localhost\www\Tests\Projektas2\logout.php on line 4 Так вот. Но с другими кодировками, таких ошибок нет! И выход из аккаунта проходит успешно, но как я говорил, не поддерживается русский шрифт. Так если можете, помогите мне, пожалуйста, я везде искал, но мне ничего не помогло. Могу скинуть своего сайта коды. Может, там что-то и надо поправить. --- Добавлено --- index.php (эта главная моя страница, в неё ходит скрипт авторизации) PHP: <?php require "db.php"; $data = $_POST; if( isset($data['do_login'])) { $errors = array(); $user = R::findOne('users', 'login = ?', array($data['login'])); if( $user ) { // логин существует if ( md5($data['password']) == $user->password) { // всё хорошо, логиним пользователя $_SESSION['logged_user'] = $user; } else { $errors[] = 'Неверный пароль!'; } } else { $errors[] = 'Пользователь с таким логином не найден!'; } if( ! empty($errors)) { echo '<div style="color: red;">'.array_shift($errors).'</div><hr>'; } } ?> <?php if( isset($_SESSION['logged_user'])) : ?> Подключён!<br> Здравствуйте, <?php echo $_SESSION['logged_user']->login; ?>! <hr> <a href="logout.php">Отключиться</a> <?php else : ?> <a href="index.php"></a><br> <?php endif; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//En" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8/> <meta name="author" content="Sang Nguyen" /> <meta name="description" content="[insert description here]" /> <meta name="robots" content="all" /> <title>Мой мир</title> <script type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="pav/style.css"> </head> <body onload="lous.l.focus()"> <div id="container"> <div id="header"> <div id="pageHeader"> <img src="pav/logo.png" id="logo"> <h1 id="nams" style="color:#fff">Мировые события</h1> <h2> </h2> <div id="tabs11"> <ul> <li><a href="#" title="Pagrindinis" class="currentTab"><span>Главная</span></a></li> <li><a href="#" title="Galerija"><span>Галерия</span></a></li> <li><a href="#" title="Kontaktai"><span>Контакты</span></a></li> <li><a href="#" title="Onlie Chat"><span>Online Chat</span></a></li> <li><a href="mailto:193robi.new@gmail.com"><span>Напишите нам</span></li></a> <div id="Online"> Активные пользователи: ~COLUS~<br><div id="probel"></div> Зарегистрированные пользователи: ~REGUS~</div> </ul> </div> </div> </div> <!-- ends intro div --> <div id="content"> <div class="contentbox"> <h3>Семья?</h3> <p>текст 1 </p> </div> <div class="contentbox"> <h3>Жизнь</h3> <p>текст 2 </p> </p> </div> <div class="contentbox"> <h3>Lorem ipsum</h3> <p>текст 3 </p> </div> <div class="contentbox"> <h3>Lorem ipsum</h3> <p>текс 4 </p> </div> <div class="contentbox"> <h3>текст</hr> <p>Текст 5</p> </div> <div id="footer"> Programmed by <a href="#"> **** ****</a> | Designed by <a href="#"> ***** *****</a> </div> </div> <!-- ends supportingtext div --> <div id="linkList"> <!-- <div id="linkList2"> <div class="thelinks"> --> <form action="" id="login" method="post"> <fieldset id="inputs"> <div id="In">Log In</div><img id="swirl" src="pav/swirl.gif" alt=""></img><img id="swirl2" src="pav/swirl2.gif" alt=""></img> <div id="div2"></div> <strong>Логин</strong>: <input type="text" name="login" value="<?php echo @$data['login']; ?>"> <div id="tarpas"> <strong>Пароль</strong>: <input type="password" name="password" value="<?php echo @$data['password']; ?>"> <div id="tarpas2"> <button type="submit" name="do_login" class="but">Войти</button> <input name="save" type="checkbox" value='1'> Запомнить меня </fieldset> <fieldset id="actions"> <a href="server/reminder.php">Забыли пароль?</a><br><br><a href="signup.php">Регистрация</a> </fieldset> </form> </div> </div> </div> </body></html> db.php ( тут подключение к базе данных и дурная команда Session_Start) PHP: <?php require "libs/rb.php"; R::setup( 'mysql:host=localhost;dbname=pr2', 'root', '' ); session_start(); ?> logout.php ( тут происходит выход пользователя из его аккаунта ) PHP: <?php require "db.php"; unset($_SESSION['logged_user']); header('Location: index.php'); ?> signup.php ( тут регистрация (с регистрацией всё нормально, ошибок нет) ) PHP: <?php require "db.php"; $data = $_POST; if( isset($data['do_signup'])) { // здесь регистрируем $errors = array(); if( trim($data['login']) == '' ) { $errors[] = 'Введите логин!'; } if( trim($data['email']) == '' ) { $errors[] = 'Введите почту!'; } if( ($data['password']) == '' ) { $errors[] = 'Введите пароль!'; } if( $data['password_2'] != $data['password'] ) { $errors[] = 'Повторный пароль, введён не верно!'; } if(R::count('users', "Login = ?", array($data['login'])) > 0 ) { $errors[] = 'Пользователь с таким логином уже зарегестрированый'; } if(R::count('users', "email = ?", array($data['email'])) > 0 ) { $errors[] = 'Пользователь с такой почтой уже зарегестрированый'; } if( empty($errors) ) { // всё хорошо, регистрируем $user = R::dispense('users'); $user->login = $data['login']; $user->email = $data['email']; $user->password = md5($data['password']); R::store($user); echo '<div style="color: green;"> Вы успешно зарегестрировались!</div>'; echo '<div style="color: green;">Можете перейти на <a href="index.php">Главную</a> Страницу'; }else { echo '<div style="color: red;">'.array_shift($errors).'</div><hr>'; } } ?> <form action="signup.php" method="POST"> <p> <p><strong>Логин</strong>:</p> <input type="text" name="login" value="<?php echo @$data['login']; ?>"> </p> <p> <p><strong>Почта</strong>:</p> <input type="email" name="email" value="<?php echo @$data['email']; ?>"> </p> <p> <p><strong>Пароль</strong>:</p> <input type="password" name="password" value="<?php echo @$data['password']; ?>"> </p> <p> <p><strong>Повторите пароль</strong>:</p> <input type="password" name="password_2" value="<?php echo @$data['password_2']; ?>"> </p> <p> <button type="submit" name="do_signup">Зарегистрироваться</button> </p> </form>
в начале каждой страницы, на которой ты используешь $_SESSION должна быть строка session_start(); В твоем коде этого не увидел. А еще я бы закрыл кавычки вот в этой строке: И как связанны сессии с кодировкой? на сколько я знаю - ни как. Для корректного отображения русских символов следи за тем, чтобы кодировка файла, страницы, соединения с сервером, соединения сервера с базой данных и полей в базе данных была одна и та же. --- Добавлено --- сорян. увидел)
Ну я добавил в index.php и в других php страницах команду session_start(); Но как вижу это не поможет, потому что теперь ругается на 2 строку, а там у меня сессия эта. Может тебе скинуть весь мой проект, ты посмотри что там не так, может так легче будет. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\Tests\Projektas2\index.php:1) in Z:\home\localhost\www\Tests\Projektas2\index.php on line 2
Ну, во первый я не русский и не имею таких вещей как qiwi, web money. Во-вторых, я несовершеннолетний и не имею всяких кредитных карточек и т. п. Третье, я никогда ни кому не слал денег и даже не знаю как это делать. Четвертое, я не смогу передать тебе деньги, так как в моей стране нет киви кошелька, может быть и web money, а в моём городе даже таких терминалов нет. В моей стране только есть терминалы на наши деньги. Пятое. А что, за то чтоб исправить какую-то маленькую ошибку с сессией, нужно еще и деньги плотить?? Мне кажется, что это чересчур уже, потому что есть бесплатные видео уроки по созданию регистрации, авторизации, где скриптов очень много! А тут, просто ошибка!
@Terminator004 Я рассчитывал именно на такую реакцию. Мне не нужен этот гемор. Подсказать - пожалуйста. Ставить твой проект с базой данных себе и копаться в этом, извините, мне лень.
Зачем копаться, там только 4 файла с кодами. Базу данных ничего сложного нет сделать, только создать базу данных, назвать как у меня написано и всё, таблицы автоматом сделает. Ну если тебе так трудно, так спасибо, можешь не разбираться.
Ты вот научись всему, приходи на форум и ставь себе на локалку каждый проект каждого чувака который сюда приходит. А мне лень... P. S. Кажется фокус сместился с задачи. --- Добавлено --- Так и быть давай свой проект... че это со мной сегодня...
Спасибо, что решился всё-таки посмотреть . Вот, скачивай тут http://rgho.st/6jXbx4tvP Только хочу напомнить, когда создашь базу данных (я назвал " pr2 ") так таблицу не создавай, сама создаться.
Вот. Закоментировал второй session_start(); убрал пробел перед <?php Преобразовал в кодировку UTF-8 без BOM 3 мин делов...
Ух, спасибо тебе большое ! Хотя бы с сессиями разобрались, нет больше ошибок Но с кодировкой у меня что-то не так, открыл я твой переделанный проект и иероглифы всё ровно остались. Что теперь делать ? Вот картинка, можешь посмотреть -http://i1.imageban.ru/out/2017/01/23/b95bc2eee641ccabe0cfa032958ecdbf.png
. Чтоб тебе было понятней, я скину картинку http://i4.imageban.ru/out/2017/01/24/ab431a08c57aa18dfcce50326efa18e9.png Вверху, там база данных моего проекта. Внизу, там кажется общие настройки кодировки MySQL.
А как правильно код составить, под мой скрипт. У меня немного по-другому написан код, мне кажется ошибки какие-то выдаёт.
Тебе кажется что код ошибки выдаёт? Что ж, парень, это, походу, симптомы шизофрении... Может стоит провериться? К врачу сходить там
Я тебе говорю, что когда вставляю код из той статьи, так мне ошибку на сайте выдаёт. Так я спрашиваю, как написать ту кодировку подключения?
@Terminator004 у меня всё ок было кодировку соединения по умолчанию поставь utf-8 или сервер настрой или htaccess сделай сам хоть что нибудь. самому приятно будет. я твою проблему за 30 сек нагуглил. Ты мог сам это сделать. Если пользоваться гуглом не будешь то и программистом не станешь. И вообще гугл в любой сфере оч полезная штука
Спасибо большое, погуглил и нашел как исправить кодировку в utf-8 без bom. Теперь и кодировка есть, и ошибок нет
А еще можно просто в начале кода написать ob_start() и все проблемы канут в лету. Почитай про буферизацию вывода.
Психиатры говорят, что шизу можно найти в каждом, если покопаться. А если её нет, значит этого человека надо лечить в психушке Лично от знакомого психиатра такое слышал, а он это слышал от своих учителей