За последние 24 часа нас посетили 18932 программиста и 1636 роботов. Сейчас ищут 888 программистов ...

redirect php

Тема в разделе "PHP для новичков", создана пользователем upr_adm, 23 дек 2017.

  1. upr_adm

    upr_adm Новичок

    С нами с:
    23 дек 2017
    Сообщения:
    24
    Симпатии:
    0
    доброго времени суток
    пытают написать на php+redbeanphp личный кабинет

    регистрация проходит без проблем
    вот код регистрации signup.php:
    PHP:
    1. <?php
    2.  
    3. include 'db.php';
    4. $data=$_POST;
    5. if (isset($data['do_signup']))
    6. {
    7.  
    8.     $error =array();
    9.     if (trim($data['login'])=='')
    10.     {
    11.  
    12.     $error[]='<p style="color:red;baqckground:#0000;">заполните поле логин</p>';
    13.  
    14.     }
    15.     if (trim($data['password'])=='')
    16.     {
    17.  
    18.     $error[]='<p style="color:red;baqckground:#0000;">заполните поле Ваш пароль</p>';
    19.  
    20.     }
    21.  
    22. if (trim($data['password2'])!= $data ['password'])
    23.     {
    24.  
    25.     $error[]='<p style="color:red;baqckground:#0000;">Повторный пароль введен не верно  </p>';
    26.  
    27.     }
    28.     if (empty($error))
    29.     {
    30.     //все хорошо регистрируемся
    31.     $user = R::dispense('user');
    32.     $user->login=$data['login'];
    33.     $user->password=$data['password'];
    34.     R::store ($user);
    35.     echo '<p style="color:green; font-width:bold;"> регаемся</p> ';
    36.     echo '<br> <a href="index.php">Главная страница</a>';
    37.     } else
    38.     {
    39.         echo '<div style="color:red;">'.array_shift($error).'</div><hr>';
    40.         }
    41.  
    42.  
    43. }
    44.  
    45.  
    46.  
    47. echo '<form action="signup.php" method="post">
    48. <p>
    49. <p><strong> Ваш логин: </strong></p>
    50. <input type="text" name="login" style="color:green;bordercolor:#0000:" >
    51. </p>
    52. <p>
    53. <p><strong> Ваш пароль: </strong></p>
    54. <input type="password" name="password">
    55. </p>
    56. <p>
    57. <p><strong> повторить пароль: </strong></p>
    58. <input type="password" name="password2">
    59. </p>
    60.  
    61.  
    62. <p>
    63. <p><strong> Ваш email: </strong></p>
    64. <input type="email" name="email">
    65. </p>
    66. <button type="submit" name="do_signup">Зарегистрироваться </button>
    67. ';
    68. ?>
    __________________________________________________________________________
    Вот файл login.php:

    PHP:
    1. <?php
    2.  
    3. echo '<meta charset="ansi">';
    4. require 'db.php';
    5. $data=$_POST;
    6. if(isset($data['do_login']))
    7. {
    8.     $errors = array();
    9.     $user=R::findOne('user','login=?', array($data['login']));
    10.     if($user)
    11.     {
    12.     // логин существует
    13.      if ($data['password'] ==  $user->password)
    14.      {
    15.         echo ($data['password']);
    16.         echo '<br>';
    17.         echo ($user->password);
    18.        $_SESSION['logged_user'] = $user;
    19.        echo '<div  style="color:green;"> Вы успешно в систему!</div><hr>';
    20.      [QUOTE]    // в этом месте происходит ошибка:
    21. 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]
    22. //нужно перейти на страницу кабинета kab.php
    23.       header('/kab.php');
    24.      }else
    25.      {
    26.          $errors[] =  'Неверно введен пароль ';
    27.      }
    28. } else
    29. {
    30.     $errors[] =  'Пользователь с таким не найден';
    31. }
    32.     if ( ! empty($errors))
    33.     {
    34.  
    35.         echo '<div style="color:red;">'.array_shift($errors).'</div><hr>';
    36.         }
    37. }
    38. echo ' <meta charset="windows-1251">
    39. <div style="border-radius:10px;width:200px; margin:10px; background-color:#33b0a8;color:#fff;">
    40. <form action="login.php" method="post">
    41. <p>
    42. <p><strong> Ваш логин: </strong></p>
    43. <input type="text" name="login" style=" border-radius:10px; margin:5px; color:lime;bordercolor:#0000:" >
    44. </p>
    45. <p>
    46. <p><strong> Ваш пароль: </strong></p>
    47. <input style="border-radius:10px; margin:5px" type="password" name="password">
    48. </p>
    49.  
    50. <button style="border-radius:10px; margin:20px; background-color:yellow" type="submit" name="do_login">Войти в систему </button>
    51. </div>
    52. ';
    53. ?>
     

    Вложения:

    • error_php.png
      error_php.png
      Размер файла:
      103,8 КБ
      Просмотров:
      7
    #1 upr_adm, 23 дек 2017
    Последнее редактирование модератором: 23 дек 2017
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Ознакомился ? лови
    PHP:
    1. header('/kab.php');
     
  4. upr_adm

    upr_adm Новичок

    С нами с:
    23 дек 2017
    Сообщения:
    24
    Симпатии:
    0

    тоже самое выходит :
    после

    Ознакомился ? лови
    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
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    ob_start();
    Самой первой строкой после самого первого <?php пропиши и не морочь себе голову.
     
  6. upr_adm

    upr_adm Новичок

    С нами с:
    23 дек 2017
    Сообщения:
    24
    Симпатии:
    0
    Болшой рахмет!!!!
    заработало
    перешел на страницу kab.php
    только не понял как понять
    Включение буферизации вывода
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Так и понять. Прочитать документацию, разобраться.

    Суть в том, что при включенном буфере ты все не отдаешь сразу клиенту. Ты отдаешь ему напрямую только заголовки. А данные складываешь во временное хранилище. Потом, когда скрипт завершит работу, он автоматом отдаст содержимое этого хранилища клиенту. Либо это можно делать руками, если нужно. Либо как-то еще манипулировать с этими данными. Главный момент тут в том, что ошибка отправки данных до заголовков, при таком подходе, физически невозможна. Мы устраняем саму суть этой проблемы.
     
    glorsh66 нравится это.
  8. upr_adm

    upr_adm Новичок

    С нами с:
    23 дек 2017
    Сообщения:
    24
    Симпатии:
    0
    Спасибо за ответы