Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2015, 10:20   #1
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию Не работает session - php не видит login

Прошу помощи )

В общем, дела обстоят так: есть форма регистрации и форма авторизации. На локальном сервере работает и то, и то. Когда заливаю сайт на хостинг, регистрация всё так же работает, а авторизация - не совсем:
1. Если вводится неправильные логин-пароль, сайт правильно говорит, что они введены неправильно.
2. Если вводятся правильные логин-пароль, то сайт ничего не говорит, и выводит, как и надо по скрипту, на главную страницу. Но при этом скрытый для неавторизированных пользователей контент остается скрытым.

В чём дело - не понимаю совершенно. С чем это может быть связано?

PHP код:
BD.PHP

<?php
session_start
();
error_reporting(0); 

mysql_connect ("localhost","тут логин","тут пароль");
mysql_select_db ("тут база данных");
mysql_query("SET NAMES utf8");

$login $_SESSION['login'];
$password $_SESSION['password'];
$userName $_SESSION['name_user'];
$userSurname $_SESSION['lastname'];
$userEmail $_SESSION['email'];
$userTel $_SESSION['tel'];
$userGender $_SESSION['gender'];
$id_user $_SESSION['id'];
?>
PHP код:
LOGIN.PHP

<?php
include_once("bd.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Входите</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

<?php
if (isset($_POST['login'])) {
    
$login $_POST['login']; 
    if (
$login == '') {
        unset(
$login);
        exit (
"Введите пожалуйста логин!");
    } 
}
if (isset(
$_POST['password'])) {
    
$password=$_POST['password']; 
    if (
$password =='') {
        unset(
$password);
        exit (
"Введите пароль");
    }
}

$login stripslashes($login);
$login htmlspecialchars($login);

$password stripslashes($password);
$password htmlspecialchars($password);


$login trim($login);
$password trim($password);

$password md5($password);//шифруем пароль

$user mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'");
$select mysql_fetch_array($user);
if (empty(
$select['id'])){
    exit (
"Извините, введённый вами логин или пароль неверный.");
}
else {
    
$_SESSION['password']=$password
    
$_SESSION['login']=$login
    
$_SESSION['id']=$select['id'];
    
$_SESSION['name_user'] = $select['name_user'];
    
$_SESSION['tel'] = $select['tel'];
    
$_SESSION['lastname'] = $select['lastname'];
    
$_SESSION['email'] = $select['email'];
    
$_SESSION['gender'] = $select['gender'];
}
echo 
"<meta http-equiv='Refresh' content='0; URL=index.php'>";
?>
Код HTML:
<?php
	include_once("bd.php");
?>
...
					<?php
						if(empty($login) and empty($password)) {
							echo "<a href='evolution.php'><span class='linked'>Войдите</span></a> или <a href='registration.php'><span class='linked'>зарегистрируйтесь</span></a>";}
						else {
							echo "Привет, ".$login." | <a href='exit.php'><span class=\"linked\">Выход</span></a>";}
					?>
<?php
	if(empty($login) and empty($password)) {
		echo "<br/>Вам необходимо <a href='evolution.php'><span class='linked'>авторизоватьс¤</span></a> или <a href='registration.php'><span class='linked'>зарегистрироватьс¤</span></a>, чтобы видеть этот контент<br/><br/>";
	}else {
?>
скрытый контент
<?php
	}
?>
 <?php
 phpinfo()
 ?>
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 21.02.2015, 17:23   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Держи:

С данными пользователя
PHP код:
<?php
    
include_once("bd.php");

        if (!empty(
$_SESSION['login']) and !empty($_SESSION['password'])
        {
            
$password preg_replace("#([^a-z0-9])#su"""$_SESSION['password']));
            
$userData mysql_fetch_array(mysql_query("SELECT * FROM users WHERE password='$password'"));
        }
        
$user_on = (!empty($userData['password']) and ($userData['login'] === $_SESSION['login']));
        
?>
...
                    <?php
                        
if($user_on) {
                            echo 
"<a href='evolution.php'><span class='linked'>Войдите</span></a> или <a href='registration.php'><span class='linked'>зарегистрируйтесь</span></a>";}
                        else {
                            echo 
"Привет, ".$login." | <a href='exit.php'><span class=\"linked\">Выход</span></a>";}
                    
?>
<?php
    
if($user_on) {
        echo 
"<br/>Вам необходимо <a href='evolution.php'><span class='linked'>авторизоватьс¤</span></a> или <a href='registration.php'><span class='linked'>зарегистрироватьс¤</span></a>, чтобы видеть этот контент<br/><br/>";
    }else {
?>
скрытый контент
<?php
    
}
?>
 <?php
 phpinfo
()
 
?>
Просто с проверкой на пользователя
PHP код:
<?php
    
include_once("bd.php");

        
$user_on = !empty($_SESSION['password']);
?>
...
                    <?php
                        
if($user_on) {
                            echo 
"<a href='evolution.php'><span class='linked'>Войдите</span></a> или <a href='registration.php'><span class='linked'>зарегистрируйтесь</span></a>";}
                        else {
                            echo 
"Привет, ".$login." | <a href='exit.php'><span class=\"linked\">Выход</span></a>";}
                    
?>
<?php
    
if($user_on) {
        echo 
"<br/>Вам необходимо <a href='evolution.php'><span class='linked'>авторизоватьс¤</span></a> или <a href='registration.php'><span class='linked'>зарегистрироватьс¤</span></a>, чтобы видеть этот контент<br/><br/>";
    }else {
?>
скрытый контент
<?php
    
}
?>
 <?php
 phpinfo
()
 
?>
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows 7 не видит HDD, с WinXP всё работает. С такой проблемой уже 2 компа, что делать? TSlav Windows 8 26.08.2014 08:21
php-fpm не видит mysql tparser PHP 1 10.05.2013 11:14
Ubuntu 10.04 PHP не видит MySQL Зелёный PHP 12 12.11.2011 07:05
session в php Delphinchik PHP 0 15.01.2011 12:22
Не работает SESSION на localhost Викдон PHP 0 16.04.2010 11:16