|
|
|
|
для: zasadinskiy
(21.03.2015 в 18:02)
|
| Пробовал записывать произвольные данные в setcookie сразу после session_start(); при этом убирая всю проверку авторизации и данные все равно не зписываються. Может это служить причиной того что всё это дело перед этим перехватывает javascript? Приведу пример структуры файлов.
index.php - главная страница (страница входа)
js/vkhod_is_users.js - перехватываем данные
js/vkhod_is_users.php - сюда поссылаем на обработку
index.php
<div class='entrance' id='formentrance'>
<h3>Вход</h3><hr class='hr'>
<label>Персональный номер:<br><input type='text' id='vkhod_lichnyynomer'><br></label>
<label>Пароль:<br><input type='password' id='vkhod_password'><br></label>
<input type='submit' class='submit' value='Войти' align='center' onClick='vkhod_users();'>
<!-- Картинка загрузки -->
<div id="load_vkhod" style="display:none;"><img src="img/load.gif" width='40' height='40' align='center'/></div>
<!-- Где будеть показана картинка загрузки -->
<center><div id="answer_vkhod" style="width:40px;"></div></center>
<!-- В этом блоке будет показан ответ от входа -->
<div id="answer2_vkhod"></div>
<a href='reg.php' class='buttom'> Зарегистрироваться </a><br>
<a href='send_pass.php' class='buttom'> Востановить пароль?</a><br>
</div>
Перед этим в head подключаем javascript.
<script type="text/javascript" src="js/vkhod_is_users.js"></script>
|
js/vkhod_is_users.js
function vkhod_users() {
//Получаем то что ввел польователь
var vkhod_lichnyynomer = document.getElementById('vkhod_lichnyynomer').value;
var vkhod_password = document.getElementById('vkhod_password').value;
var load_vkhod = document.getElementById('load_vkhod');
var answer_vkhod = document.getElementById('answer_vkhod');
var answer2_vkhod = document.getElementById('answer2_vkhod');
//То что будем отправлять на сервер
var parameter = 'vkhod_lichnyynomer='+vkhod_lichnyynomer+'&vkhod_password='+vkhod_password;
//Показываем загрузку
answer_vkhod.innerHTML = load_vkhod.innerHTML;
//Соединяемься с аяксом
var network = createRequestObject();
//Тут мы выбраем метод отправки формы и куда отправляем
network.open("POST","js/vkhod_is_users.php",true);
//Кодировка формы у меня она windows-1251
network.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
//Здесь пишим ответ от сервера то что отправить нам сервер в ответ
network.onreadystatechange = function () {
if(network.readyState == 4) {answer_vkhod.innerHTML = ''; answer2_vkhod.innerHTML = network.responseText; }
}
//Отправлям запрос
network.send(parameter);
}
//Подключаемся к аяксу
function createRequestObject() {
try { return new XMLHttpRequest() }
catch(e) {
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e) {
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
|
js/vkhod_is_users.php
<?php
session_start();
header('Content-Type: text/html; charset=utf-8'); //кодировка
include("../bd.php");
// получаем переменные через post
$vkhod_lichnyynomer = iconv("UTF-8", "cp1251", $_POST['vkhod_lichnyynomer']);
$vkhod_password = iconv("UTF-8", "cp1251", $_POST['vkhod_password']);
// обрезаем пробелы
$vkhod_lichnyynomer1 = trim($vkhod_lichnyynomer);
$vkhod_password1 = trim($vkhod_password);
// Экранируем опасные символы
$vkhod_lichnyynomer2 = htmlspecialchars($vkhod_lichnyynomer1);
$vkhod_password2 = htmlspecialchars($vkhod_password1);
// Проверяем переменные на пустоту
if($vkhod_lichnyynomer2 == '') {unset($vkhod_lichnyynomer2);}
if($vkhod_password2 == '') {unset($vkhod_password2);}
// Проверка заполненых данных
if(isset($vkhod_lichnyynomer2) && isset($vkhod_password2)) {
$users_test_login = mysql_query ("SELECT * FROM users WHERE lichnyynomer='$vkhod_lichnyynomer2'");
$users_test_row = mysql_fetch_array($users_test_login);
if($vkhod_lichnyynomer2 != $users_test_row['lichnyynomer']) {
echo '<br><div id="bug" class="table_error"><span class="error_text_min"> Такого логина в нашей Базе нету!</span> <div style="clear:left;"></div></div><br>';
}
else {
$users_test_pass = mysql_query ("SELECT * FROM users WHERE lichnyynomer='$vkhod_lichnyynomer2'");
$password_users = mysql_fetch_array($users_test_pass);
$vkhod_password_md = md5($vkhod_password2); // обязательно шифруем пароль.
if($vkhod_password_md == $password_users['password']) {
//******************************************************************************//
//******** Записываем данные в куки. Но оно незаписываеться! Почему? ***********//
//******************************************************************************//
setcookie("lichnyynomer", $password_users['lichnyynomer'], time()+3600); //* Устанавливаем куки личного номера на 1 час
setcookie("password", $password_users['password'], time()+3600); //* Устанавливаем куки Пароля на 1 час
//***************************************//
//******** Конец записи в куки ***********//
//****************************************//
echo '<br><div id="bug" class="table_ok"><span class="error_text_min"> Вход выполнен. Загружаем данные .... <img src="img/load.gif" width="15" height="15"></span> <div style="clear:left;"></div></div><br>';
}
else {
echo '<br><div id="bug" class="table_error"><span class="error_text_min"> Данные не верные! </span> <div style="clear:left;"></div></div><br>';
}
}
}
else {
echo '<br><div id="bug" class="table_error"><span class="error_text_min"> Вы ввели не все данные!</span> <div style="clear:left;"></div></div><br>';
}
?>
|
Буду очень благодарен за помощь. Напоминаю: данные не записаваються в куки даже в том случае если весь код состоит из 5 вот таких строк в файле js/vkhod_is_users.php.
<?php
session_start();
setcookie("lichnyynomer", "Логин не записыват", time()+3600); //* Устанавливаем куки личного номера на 1 час
setcookie("password", "Пароль не записывает", time()+3600); //* Устанавливаем куки Пароля на 1 час
?>
|
После вытаскиваю данные вот так
Личный номер: <?php echo $_COOKIE["lichnyynomer"];?><br>Пароль: <?php echo $_COOKIE["password"];?>
|
Мне кажеться что это из-за того что данные перехватыватывает js? Потому что когда записываю данные в том же файле что и вывожу то они есть. (user / index.php) - здесь верхние 5 строк кода и сразу их вывод (всё работает). | |
|
|