Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
F1thans0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
#1

Header php, странная ошибка - PHP

07.05.2018, 20:35. Просмотров 89. Ответов 8
Метки нет (Все метки)

Здравствуйте!
Я в php начинающий в php. Данный код работает как по маслу, за исключением header.
Читал про проблему, пытался решить, проверил отступы и всё остальное, не получается. Также, мне кажется, тут неуместно будет весь код кроме header включать в файл с помощью include. Вот и не знаю, что делать. В db.php тоже всё проверено, там только подгружается RedBean php с require. Этот код лежит в файле check_log.php. Как решить проблему?
Выдаёт ошибку:
Warning: Cannot modify header information - headers already sent by (output started at D:\OSPanel\domains\testing\check_log.php:17) in D:\OSPanel\domains\testing\check_log.php on line 19.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require "db.php";
$data = $_POST;
if(trim($data["login_log"]) == "") {
    $log_check = '<p style="color:red">Check your login</p>';
    echo $log_check;
}else if(trim($data['password_log']) == "") {
    $psw_check = '<p style="color:red">Check your password</p>';
    echo $psw_check;
}else{
    $errors=[];
    $user = R::findOne('users', 'login=?', array($data['login_log']));
    if ($user) {
        if(password_verify($data['password_log'], $user->password)) {
            //всё хорошо, логиним пользователя
            $auth = '<p style="color: green">Auth!</p>';
            echo $auth;
            sleep(1);
            header("Location: main.php");
        }else{
            $errors[] = 'Invalid password';
        }
    }else{
        $errors[] = 'Invalid login';
    }
    if(!empty($errors)) {
        $errors_no_empty = '<p id="errors" style="color: red">'.
            array_shift($errors).'</p>';
        echo $errors_no_empty;
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2018, 20:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Header php, странная ошибка (PHP):

не известная и странная ошибка В фишинговом сайте - PHP
В общем, всем привет. Долгое время скрипты На подобии stkbot.xyz работали стабильно, но пару дней назад оно тупо перестало...

Вход в админку - ошибка: Cannot modify header information - headers already sent - PHP
Здраствуйте, делаю к курсовому пректу сайт, сказали делать по попову, все хорошо получалось но до момента со входом в админку. помогите...

Ошибка Warning: Cannot modify header information - headers already sent by (output started at C:\OpenServer\do - PHP
Хотел сделать регистрацию (для себя, т.к. новичок), но при авторизации выдаёт указанное предупреждение. Код login.php &lt;?php ...

include("header.php") - PHP
index.php &lt;?php $page_title = &quot;Home – My Website&quot;; $page_description = &quot;Description of this page&quot;; include(&quot;header.php&quot;); ?&gt; ...

Ошибка в php? - PHP
Народ редактирую шаблон Joomla,на главной странице есть вставка видео,а над ней написанно вот что: Deprecated: Assigning the return...

Ошибка PHP - PHP
Всем привет, помогите пожалуйста. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE...

8
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
07.05.2018, 20:56 #2
Цитата Сообщение от F1thans0 Посмотреть сообщение
Читал про проблему
Плохо читали.
Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные.
header().
1
F1thans0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
08.05.2018, 14:56  [ТС] #3
Да, но из переданных данных там же только echo. Про echo и print говориться что ими нельзя выводить строки. Строку нужно упаковать в переменную и вывести переменную, что я и сделал.
0
Jodah
Эксперт PHP
2677 / 2349 / 836
Регистрация: 01.08.2012
Сообщений: 8,308
08.05.2018, 15:10 #4
F1thans0, это где вы такое вычитали? Никаких echo и print перед header быть не должно.
1
F1thans0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
08.05.2018, 15:27  [ТС] #5
Где вычитал уже не помню, так значит нужно избавиться от echo?
0
Jodah
Эксперт PHP
2677 / 2349 / 836
Регистрация: 01.08.2012
Сообщений: 8,308
08.05.2018, 15:29 #6
F1thans0, да. Тем более ваше Auth! всё-равно не отобразится в браузере из-за редиректа.
1
F1thans0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
08.05.2018, 15:34  [ТС] #7
Echo имеют принципиальное значение. С помощбю них выводится информация об ошибках. Смотрите:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html>
<html>
<head>
    <title>Ajax</title>
    <link rel="stylesheet" href="style.css">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script>
 
        $(document).ready(function () {
 
            $("#sbm_reg").bind("click", function () {
                $.ajax ({
                    url: "check_reg.php",
                    type: "POST",
                    data: ({name:$("#name").val(),login_reg:$("#login_reg").val(),password_reg:$("#password_reg").val(),password_reg_2:$("#password_reg_2").val()}),
                    dataType: "html",
                    success: function (data) {
                        if(data == "Fail")//Это не нужно, не обращайте внимания
                            alert("Имя занято");
                        else
                            $("#under_2").text(data);
                    }
                });
            });
 
             $("#sbm_log").bind("click", function () {
                 $.ajax ({
                     url: "check_log.php",
                     type: "POST",
                     data: ({login_log:$("#login_log").val(),password_log:$("#password_log").val()}),
                     dataType: "html",
                     success: function (data) {
                         if(data == "Fail")//Это не нужно, не обращайте внимания
                             alert("error");
                         else
                             $("#under").html(data);
 
                     }
                 });
             });
           });
    </script>
</head>
<body>
 
<div id="login" class="proto">
    <h2>Welcome back!</h2>
    <div class="forms" id="first">
        <form action="" method="POST">
            <input type="text" name="login_log" id="login_log" placeholder=" Login">
            <input type="password" name="password_log" id="password_log" placeholder=" Password">
            <input type="button" name="sbm_log" id="sbm_log" class="buttons" value="Log in">
        </form>
        <div id="under"></div>
    </div>
</div>
 
<div id="register" class="proto">
    <h2>Registration</h2>
    <div class="forms" id="second">
        <form action="" method="POST">
            <input type="text" name='name' id="name" placeholder=" Name">
            <input type="text" name='login_reg' id="login_reg" placeholder=" Login">
            <input type="password" name="password_reg" id="password_reg" placeholder=" Password">
            <input type="password" name="password_reg_2" id="password_reg_2" placeholder=" Password verify">
            <input type="button" name="sbm_reg" id="sbm_reg" class="buttons" value="Register">
        </form>
        <div id="under_2"></div>
    </div>
</div>
</body>
</html>
Или можно каким-то другим способом сделать задуманное, с перенаправлением и, естественно, без ошибок?
0
Jodah
Эксперт PHP
2677 / 2349 / 836
Регистрация: 01.08.2012
Сообщений: 8,308
08.05.2018, 15:46 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
F1thans0, для AJAX запросов делать редирект через header нет смысла, не будет работать. Делайте редирект на JS:
Javascript
1
2
3
4
5
else
{
    $("#under").html(data);
    document.location.href = 'http://site.ru/main.php';
}
2
F1thans0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
08.05.2018, 19:06  [ТС] #9
Jodah, спасибо!
0
08.05.2018, 19:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2018, 19:06
Привет! Вот еще темы с ответами:

Ошибка в php - PHP
Пишу следующее: &lt;?php $connect=mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;); $db=mysqli_select_db($connect,&quot;newbase&quot;); ...

Ошибка синтаксиса php - PHP
Всем привет. Ребят, вот такая проблема : кто то влез редактировать php через блокнот, и сбился синтаксис полностью. Вроде все восстановил,...

Ошибка в php коде - PHP
Всем привет,помогите пожалуйста с ошибками Strict Standards: Non-static method RouterFactory::getFactory() should not be called...

PHP - ошибка при регестрации - PHP
Здравствуйте, решил сделать браузерную игру, при регестрации выдает ошибку, по данному коду $email=$_POST; include 'inc/mail.php';...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru