доброго времени суток пытают написать на php+redbeanphp личный кабинет регистрация проходит без проблем вот код регистрации signup.php: PHP: <?php include 'db.php'; $data=$_POST; if (isset($data['do_signup'])) { $error =array(); if (trim($data['login'])=='') { $error[]='<p style="color:red;baqckground:#0000;">заполните поле логин</p>'; } if (trim($data['password'])=='') { $error[]='<p style="color:red;baqckground:#0000;">заполните поле Ваш пароль</p>'; } if (trim($data['password2'])!= $data ['password']) { $error[]='<p style="color:red;baqckground:#0000;">Повторный пароль введен не верно </p>'; } if (empty($error)) { //все хорошо регистрируемся $user = R::dispense('user'); $user->login=$data['login']; $user->password=$data['password']; R::store ($user); echo '<p style="color:green; font-width:bold;"> регаемся</p> '; echo '<br> <a href="index.php">Главная страница</a>'; } else { echo '<div style="color:red;">'.array_shift($error).'</div><hr>'; } } echo '<form action="signup.php" method="post"> <p> <p><strong> Ваш логин: </strong></p> <input type="text" name="login" style="color:green;bordercolor:#0000:" > </p> <p> <p><strong> Ваш пароль: </strong></p> <input type="password" name="password"> </p> <p> <p><strong> повторить пароль: </strong></p> <input type="password" name="password2"> </p> <p> <p><strong> Ваш email: </strong></p> <input type="email" name="email"> </p> <button type="submit" name="do_signup">Зарегистрироваться </button> '; ?> __________________________________________________________________________ Вот файл login.php: PHP: <?php echo '<meta charset="ansi">'; require 'db.php'; $data=$_POST; if(isset($data['do_login'])) { $errors = array(); $user=R::findOne('user','login=?', array($data['login'])); if($user) { // логин существует if ($data['password'] == $user->password) { echo ($data['password']); echo '<br>'; echo ($user->password); $_SESSION['logged_user'] = $user; echo '<div style="color:green;"> Вы успешно в систему!</div><hr>'; [QUOTE] // в этом месте происходит ошибка: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\login.php:2) in Z:\home\test1.ru\www\login.php on line 22 [/QUOTE] //нужно перейти на страницу кабинета kab.php header('/kab.php'); }else { $errors[] = 'Неверно введен пароль '; } } else { $errors[] = 'Пользователь с таким не найден'; } if ( ! empty($errors)) { echo '<div style="color:red;">'.array_shift($errors).'</div><hr>'; } } echo ' <meta charset="windows-1251"> <div style="border-radius:10px;width:200px; margin:10px; background-color:#33b0a8;color:#fff;"> <form action="login.php" method="post"> <p> <p><strong> Ваш логин: </strong></p> <input type="text" name="login" style=" border-radius:10px; margin:5px; color:lime;bordercolor:#0000:" > </p> <p> <p><strong> Ваш пароль: </strong></p> <input style="border-radius:10px; margin:5px" type="password" name="password"> </p> <button style="border-radius:10px; margin:20px; background-color:yellow" type="submit" name="do_login">Войти в систему </button> </div> '; ?>
тоже самое выходит : после header('/kab.php'); exit; Ознакомился ? лови PHP: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\login.php:2) in Z:\home\test1.ru\www\login.php on line 20
Болшой рахмет!!!! заработало перешел на страницу kab.php только не понял как понять Включение буферизации вывода
Так и понять. Прочитать документацию, разобраться. Суть в том, что при включенном буфере ты все не отдаешь сразу клиенту. Ты отдаешь ему напрямую только заголовки. А данные складываешь во временное хранилище. Потом, когда скрипт завершит работу, он автоматом отдаст содержимое этого хранилища клиенту. Либо это можно делать руками, если нужно. Либо как-то еще манипулировать с этими данными. Главный момент тут в том, что ошибка отправки данных до заголовков, при таком подходе, физически невозможна. Мы устраняем саму суть этой проблемы.