При выполнении session_start(); почему вылазит предупреждение

261
21 декабря 2016, 02:09

Почему при выполнии через Ajax запрос следующего кода с session_start(); не работает echo и вобще скрипт по идеи выдаёт ошибку

php код:

session_start();
include "mysqlConnect.php";
$name = iconv("utf-8","windows-1251",$_POST['name']);
$name = trim($name);
$name = stripslashes($name);
$name = htmlspecialchars ($name);

$pass = iconv("utf-8","windows-1251",$_POST['pass']);
$pass = trim($pass);
$pass = stripslashes($pass);
$pass = htmlspecialchars ($pass);

$sql = mysqli_query ($db, "SELECT * FROM users WHERE firstname='".$name."' AND pass='".$pass."'");
$num_rows = mysqli_num_rows($sql);
if ($num_rows > 0) {
    $arr = mysqli_fetch_assoc($sql);
    $_SESSION['id'] = $arr['id'];
    $_SESSION['firstname'] = $arr['firstname'];
    $_SESSION['lastname'] = $arr['lastname'];
    echo "0";
    }
else {
    echo "1";
    }
?>

JS код:

/*Кнопка входа*/
    var clickButtonLoginForm = $(".clickButtonLoginForm"); // Делаем выборку кнопки из DOM дерева и заносим её в переменную
    clickButtonLoginForm.click(function(){
        var name_login = $("#name_login").val();
        var pass_login = $("#pass_login").val();
        if (name_login == "" || pass_login == "") {
            $("#error").text("Вы не заполнили все поля").removeClass("success").addClass("error").show().delay(3000).fadeOut(300);
        } else {
            $.ajax({
                url: "action_login.php",
                type: "POST",
                data: {name: name_login, pass: pass_login},
                success: function(data){
                    if (data) {
                        if (data == 1) {
                            alert("Такая пара логин/пароль НЕ найдена.");
                        } else {
                            if (data == 0) {
                                alert("Вы успешно авторизовались. Обновите страницу (F5).");
                            } else {
                                alert("Неизвестная ошибка");
                            }
                        }
                    } else {
                        alert("Данные не получены!!!");
                    }
                },
                error: function(){
                    alert("Неизвестная ошибка, возможно отсутсвует подлючение к интернету");
                }
            });
        }
    });
Answer 1

У вас до строчки session_start() выводиться где то разметка, а это заголовок, поэтому и выводиться предупреждение. Перенесите session_start до начала вывода html разметки. Так же возможно пробел добавляется кодировкой для unix систем, в этом случае перекодируйте ваш php файл в кодировку utf 8 without bom, например через notepad++

READ ALSO
сумма строк в выборке с WHERE

сумма строк в выборке с WHERE

Допустим, есть такой запрос, который выводит количество строк по каждому фильтру:

230
Не могу добавить 2ой аргумент в php

Не могу добавить 2ой аргумент в php

Ребят есть некий php файл который парсит данные с БД Mysql и дает в Json форматеЕсть кирилица в базе данных и Json дает место кирилицы

274
laravel - получение данных из другой таблицы

laravel - получение данных из другой таблицы

Есть две таблицы users и posts

340