Обучение/Помощь новичкам | Помогите исправить ошибку
суть проблемы в том что когда захожу на главную страницу сайта пользователь разлогонируеться! Кто сталкивался подскажите
Файл входа
Файл реги
Файл удачного входа
[q]<?php
include 'online.php';
# подключаем конфиг
include 'conf.php';
require_once('inc/h.php');
# проверка авторизации
if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
$userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE users_id = '".intval($_COOKIE['id'])."' LIMIT 1"));
if(($userdata['users_hash'] !== $_COOKIE['hash']) or ($userdata['users_id'] !== $_COOKIE['id']))
{
setcookie('id', '', time() - 60*24*30*12, '/');
setcookie('hash', '', time() - 60*24*30*12, '/');
setcookie('errors', '1', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
}
else
{
setcookie('errors', '2', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
?>
<!DOCTYPE html PUBLIC "
Файл входа
<?php
include 'inc/h.php';
# Функция для генерации случайной строки
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
# Если есть куки с ошибкой то выводим их в переменную и удаляем куки
if (isset($_COOKIE['errors'])){
$errors = $_COOKIE['errors'];
setcookie('errors', '', time() - 60*24*30*12, '/');
}
# Подключаем конфиг
include 'conf.php';
if(isset($_POST['submit']))
{
# Вытаскиваем из БД запись, у которой логин равняеться введенному
$data = mysql_fetch_assoc(mysql_query("SELECT users_id, users_password FROM `users` WHERE `users_login`='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"));
# Соавниваем пароли
if($data['users_password'] === md5(md5($_POST['password'])))
{
# Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
# Записываем в БД новый хеш авторизации и IP
mysql_query("UPDATE users SET users_hash='".$hash."' WHERE users_id='".$data['users_id']."'") or die("MySQL Error: " . mysql_error());
# Ставим куки
setcookie("id", $data['users_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
# Переадресовываем браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
else
{
print "Вы ввели неправильный логин/пароль<br>";
}
}
?>
<div class='header'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Говоришь ты уже бывал, у нас? Эхх, да говоришь? Ну тогда назовись, и иди в строй!!!
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
<input name="submit" type="submit" value="Войти в город"> </form></div>
<?php
require_once('inc/f.php');
# Проверяем наличие в куках номера ошибки
if (isset($errors)) {print '<h4>'.$error[$errors].'</h4>';}
?>
include 'inc/h.php';
# Функция для генерации случайной строки
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
# Если есть куки с ошибкой то выводим их в переменную и удаляем куки
if (isset($_COOKIE['errors'])){
$errors = $_COOKIE['errors'];
setcookie('errors', '', time() - 60*24*30*12, '/');
}
# Подключаем конфиг
include 'conf.php';
if(isset($_POST['submit']))
{
# Вытаскиваем из БД запись, у которой логин равняеться введенному
$data = mysql_fetch_assoc(mysql_query("SELECT users_id, users_password FROM `users` WHERE `users_login`='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"));
# Соавниваем пароли
if($data['users_password'] === md5(md5($_POST['password'])))
{
# Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
# Записываем в БД новый хеш авторизации и IP
mysql_query("UPDATE users SET users_hash='".$hash."' WHERE users_id='".$data['users_id']."'") or die("MySQL Error: " . mysql_error());
# Ставим куки
setcookie("id", $data['users_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
# Переадресовываем браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
else
{
print "Вы ввели неправильный логин/пароль<br>";
}
}
?>
<div class='header'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Говоришь ты уже бывал, у нас? Эхх, да говоришь? Ну тогда назовись, и иди в строй!!!
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
<input name="submit" type="submit" value="Войти в город"> </form></div>
<?php
require_once('inc/f.php');
# Проверяем наличие в куках номера ошибки
if (isset($errors)) {print '<h4>'.$error[$errors].'</h4>';}
?>
Файл реги
<?php
# Подключаем конфиг
require_once('inc/h.php');
include 'conf.php';
if(isset($_POST['submit']))
{
$err = array();
# проверям логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Эхх, парень! Логин пишеться у нас только буквами и цыфрами!!!";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Что то очень маленький твой логин, либо большой!";
}
# проверяем, не сущестует ли пользователя с таким именем
$query = mysql_query("SELECT COUNT(users_id) FROM users WHERE users_login='".mysql_real_escape_string($_POST['login'])."'")or die ("<br>Invalid query: " . mysql_error());
if(mysql_result($query, 0) > 0)
{
$err[] = "Пользователь с таким логином уже существует в Городе";
}
# Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
# Убераем лишние пробелы и делаем двойное шифрование
$password = md5(md5(trim($_POST['password'])));
mysql_query("INSERT INTO users SET users_login='".$login."', users_password='".$password."'");
header("Location: login.php"); exit();
}
}
?>
<div class='header'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Здравствуйте путник, я могу узнать как вас по имени величать? Если да? Прошу внимательно заполнить форму регистрации!!!
<form action='' method='post'>
<p>
Как зовут: <input type="text" name="login" id="reg_inp" /><br />
</p>
<p>
Секретный код: <input type="password" name="password" id="reg_inp" /><br />
</p>
<p>
<input name="submit" type="submit" value="Ответить наставнику">
</p></form></div>
<?php
require_once('inc/f.php');
if (isset($err)) {
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
?>
# Подключаем конфиг
require_once('inc/h.php');
include 'conf.php';
if(isset($_POST['submit']))
{
$err = array();
# проверям логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Эхх, парень! Логин пишеться у нас только буквами и цыфрами!!!";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Что то очень маленький твой логин, либо большой!";
}
# проверяем, не сущестует ли пользователя с таким именем
$query = mysql_query("SELECT COUNT(users_id) FROM users WHERE users_login='".mysql_real_escape_string($_POST['login'])."'")or die ("<br>Invalid query: " . mysql_error());
if(mysql_result($query, 0) > 0)
{
$err[] = "Пользователь с таким логином уже существует в Городе";
}
# Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
# Убераем лишние пробелы и делаем двойное шифрование
$password = md5(md5(trim($_POST['password'])));
mysql_query("INSERT INTO users SET users_login='".$login."', users_password='".$password."'");
header("Location: login.php"); exit();
}
}
?>
<div class='header'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Здравствуйте путник, я могу узнать как вас по имени величать? Если да? Прошу внимательно заполнить форму регистрации!!!
<form action='' method='post'>
<p>
Как зовут: <input type="text" name="login" id="reg_inp" /><br />
</p>
<p>
Секретный код: <input type="password" name="password" id="reg_inp" /><br />
</p>
<p>
<input name="submit" type="submit" value="Ответить наставнику">
</p></form></div>
<?php
require_once('inc/f.php');
if (isset($err)) {
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
?>
Файл удачного входа
[q]<?php
include 'online.php';
# подключаем конфиг
include 'conf.php';
require_once('inc/h.php');
# проверка авторизации
if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
$userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE users_id = '".intval($_COOKIE['id'])."' LIMIT 1"));
if(($userdata['users_hash'] !== $_COOKIE['hash']) or ($userdata['users_id'] !== $_COOKIE['id']))
{
setcookie('id', '', time() - 60*24*30*12, '/');
setcookie('hash', '', time() - 60*24*30*12, '/');
setcookie('errors', '1', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
}
else
{
setcookie('errors', '2', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
?>
<!DOCTYPE html PUBLIC "
Покажи код главной
________
посл. ред. 09.08.2017 в 18:47; всего 1 раз(а); by Gazro
________
посл. ред. 09.08.2017 в 18:47; всего 1 раз(а); by Gazro
Gazro , <?php
require_once('inc/h.php');
?>
<div class='head'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div>
<div class='block'>
Добро пожаловать в Вальхаллу, в этой стране ты научишься быть героем! Начинай путь, и стань защитником своего города.<br>
<a href='register.php' class='button'>Начать Путь</a><a href='login.php' class='button'>Войти</a>
</div>
<?php
require_once('inc/f.php');
?>
require_once('inc/h.php');
?>
<div class='head'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div>
<div class='block'>
Добро пожаловать в Вальхаллу, в этой стране ты научишься быть героем! Начинай путь, и стань защитником своего города.<br>
<a href='register.php' class='button'>Начать Путь</a><a href='login.php' class='button'>Войти</a>
</div>
<?php
require_once('inc/f.php');
?>
когда именно на главную переходишь ?после реги?
Apofias , Когда заново заходишь на сайт
Apofias , после авторизации вот такая ссылка rmhero.ru/check.php
когда ввожу просто rmhero.ru
Нужно заново заходить
когда ввожу просто rmhero.ru
Нужно заново заходить
Sacrifice justice , потому что главная у тебя статическая. Нужно проверять по кукам. Например: проверяешь наличие кук у юзера, если есть, выводишь то-то, если нету, что-то другое.
а в профиль заходит?
мб у него тут проверка require_once('inc/h.php');
Apofias , это как бы подключается голова ,а не проверка
Стр.: 1, 2