Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация: ajax и session_start();
 
 автор: Ванек2010   (18.07.2011 в 15:00)   письмо автору
 
 

На главной странице 2 поля Логин и пароль, авторизация вообщем. По средством аякс отправляем файлу auth.php на проверку эти поля, если все хорошо то $_SESSION['login'] присваем логин пользователя. Но для этого в самом начале необходимо объявить session_start();
Тут появляется ошибка, о том что заголовки уже были переданы, как с этим бороться?

  Ответить  
 
 автор: cheops   (18.07.2011 в 16:03)   письмо автору
 
   для: Ванек2010   (18.07.2011 в 15:00)
 

Хм... а что вы выводите до session_start(), нельзя эту функцию повыше поднять, до любого вывода?

  Ответить  
 
 автор: Ванек2010   (18.07.2011 в 16:24)   письмо автору
 
   для: cheops   (18.07.2011 в 16:03)
 

index.php
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Тест</title>
<link type="text/css" rel="stylesheet" href="css/main.css"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/auth.js"></script>
</head>
<body>
<div class='titleText'>Авторизация</div>
    <div id="rsp_auth"></div>
    <div id="divAuth">
    Логин <input type="text" id="auth_login"><br>
    Пароль <input type="text" id="auth_pass"><br>
    <input type="submit" id="auth_submit" value="Вход">
    </div>
</body>
</html>

Файл auth.php находится в каталоге modules/auth.php
<?php session_start();
             
Всякие проверки... если успешното..
             
$_SESSION['login'] = 'Hello World';
?>

  Ответить  
 
 автор: Ванек2010   (18.07.2011 в 17:11)   письмо автору
 
   для: Ванек2010   (18.07.2011 в 16:24)
 

Не че не пойму, какая-то ошибка в кодировке может быть такое?
Использовал другой файл .php (старый) не помню вроде он в utf-8, а тот который был в не utf-8 выдавал ошибку про заголовки.
Ну и бредятина...
Но как быть если для аякса нужена UTF-8?

  Ответить  
 
 автор: cheops   (18.07.2011 в 17:48)   письмо автору
 
   для: Ванек2010   (18.07.2011 в 17:11)
 

А у вас в начале файла нет признака UTF-8, который некоторые редакторы добавляют? Сообщение об ошибке как точно выглядит (вместе с номерами строк)?

  Ответить  
 
 автор: Ванек2010   (18.07.2011 в 18:13)   письмо автору
 
   для: cheops   (18.07.2011 в 17:48)
 

Вообщем решение: для php файла обработчика по средством аякс, в котором присутствует session_start() и необходимо возращать значения в русской кодировке, надо использовать кодировку UTF-8(Без BOM)

  Ответить  
 
 автор: cheops   (18.07.2011 в 18:20)   письмо автору
 
   для: Ванек2010   (18.07.2011 в 18:13)
 

Просто когда используется UTF-8 всегда следует следить за BOM (не зависимо от того AJAX это или нет), особенно, когда отключено кэширование, иначе он не даст задействовать функции session_start(), setcookie(), header() и вообще функции, отправляющие HTTP-заголовки.

  Ответить  
 
 автор: kvins   (18.07.2011 в 21:47)   письмо автору
 
   для: cheops   (18.07.2011 в 18:20)
 

а я помню когда у меня такая проблема была , то в php.ini можно было чета поменять чтоб вообще где хочешь можно было вызывать session_start() и отступов тоже скока хочешь если надо могу покопаться и сказать

  Ответить  
 
 автор: cheops   (19.07.2011 в 01:30)   письмо автору
 
   для: kvins   (18.07.2011 в 21:47)
 

Это директива output_buffering (в принципе как вариант её можно включить, но не всегда на сервере позволяется изменить директив php.ini в .htaccess).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования