С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
1

Авторизация на сайте

08.08.2012, 00:02. Просмотров 3996. Ответов 22
Метки нет (Все метки)

Всем привет. помогите кто чем может
Делаю на сайте авторизацию
все вроде нормально авторизуется но если небольшая проблема
после авторизации если перешел на другую страницу сайта а потом обратно на страницу с авторизацией то снова просит авторизироватся
как сделать что бы сохранялись куки или как их там
сильно не ругайтесь мало чего знаю, учусь, все делаю методом тыка и образцам с инета
вот страница авторизации

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php include("db_connect.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/css.css" rel="stylesheet" type="text/css">
<link href="/menu.css" rel="stylesheet" type="text/css">
<link href="/style.css" rel="stylesheet" type="text/css">
<link href="/reset.css" rel="stylesheet" type="text/css">
<style>
body {
    margin: 0;padding:0;min-height: 100% !important; min-width: 100% !important;
    background-image: url(http://emou.ru/style/bg0.gif);
}
</style>
<title>Minecraft server - FullCraft</title>
</head>
 
<body>
<div class='cssmenu'>
<ul>
   <li class='active'><a href='http://cabinet.fcraft.ru'><span><font face="Times New Roman" size="3">Главная</font></span></a></li>
   <li><a href='/donate.html'><span><font face="Times New Roman" size="3">Услуги</font></span></a>
   </li>
   <li><a href='/we.html'><span><font face="Times New Roman" size="3">Почему мы?</font></span></a></li>
   <li><a href='/map.html'><span><font face="Times New Roman" size="3">Карта сервера</font></span></a></li>
</ul>
</div>
</body> 
 
<body>
<div align="center" id="error">
<?php
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
if(empty($_POST['login'])){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$login = $_POST['login']; //присваеваем переменную
$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
$query = mysql_query("SELECT * FROM `sashok724_launcher`  WHERE `user`='$login' AND `pass`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['login'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
 
}
 
}
?>
<div style="width: 180px; margin: 0px auto;">    <div class="set_item">
        <div class="box14">
 
<p><div style="width: 180px; margin: 0px auto;">
<form action="" method="post" enctype="multipart/form-data">
<input name="login" value="" placeholder="Логин " type="text">
<input name="password" value="" placeholder="Пароль" type="password">
 
<div align="center"><p></p><div class="btn-group" style="width: 180px; margin: 0px auto;"><input  class="blue" id="login" name="submit" value="Войти" type="submit"><input class="blue" onclick="location = '/reg.php'" value="Регистрация" type="button"></div><p></p></p>
        </div><!-- end box7 -->
    </div><!-- end set -->
 
</form>
</div>
</body>
</html>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2012, 00:02
Ответы с готовыми решениями:

Авторизация на сайте
Почему, если не ставить галку и войти под именем, то при закрытии браузера хрома, данные всё равно...

Авторизация на сайте
Здравствуйте помогите создать авторизации на сайте с помошю сессии

Авторизация на сайте
Зделал простую авторизацию, типа работает! Если что то нето подскажите, напишите и тд...

Авторизация на сайте
Новичок. Хочу сделать авторизацию на сайт - изучаю материалы и пришел к выводу, что моему сайту...

Авторизация на сайте
Ребят, помогите с авторизацией на сайте. Создаю сайт с пользовательской и администраторской...

22
Shankar
22 / 22 / 8
Регистрация: 22.11.2009
Сообщений: 61
08.08.2012, 05:15 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

замените ваш аналогичный кусок, на
PHP
1
2
3
4
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['login'];
$_SESSION['validuser']=$user['login'];
}
и теперь все, что планируется показываться только авторизованным пользователям, обарочивайте в
PHP
1
2
3
4
5
6
7
if(существует, не пустая, равна чему-то...$_SESSION['validuser']){
     то выводим инфу
}
else
{
     выводим сообщение, о том, что надо авторизоватья, редиректим на страницу реги.
}
п.с. существует, не пустая, равна чему-то... - это заменить на функции, isset, empty и т.д.
п.с.с не забыть где-нибудь в самом начале, прописать session_start(); и проверить, что бы кодировка файлов была UTF-8 без BOM.

Ну это самое банальное, о безопасности сессии уже потом, по ходу дела...
0
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 07:21  [ТС] 3
[/PHP]

и теперь все, что планируется показываться только авторизованным пользователям, обарочивайте в
PHP
1
2
3
4
5
6
7
if(существует, не пустая, равна чему-то...$_SESSION['validuser']){
     то выводим инфу
}
else
{
     выводим сообщение, о том, что надо авторизоватья, редиректим на страницу реги.
}
Не понил как это

Добавлено через 7 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php include("db_connect.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/css.css" rel="stylesheet" type="text/css">
<link href="/menu.css" rel="stylesheet" type="text/css">
<link href="/style.css" rel="stylesheet" type="text/css">
<link href="/reset.css" rel="stylesheet" type="text/css">
<style>
body {
    margin: 0;padding:0;min-height: 100% !important; min-width: 100% !important;
    background-image: url(http://emou.ru/style/bg0.gif);
}
</style>
<title>Minecraft server - FullCraft</title>
</head>
 
<body>
<div class='cssmenu'>
<ul>
   <li class='active'><a href='http://cabinet.fcraft.ru'><span><font face="Times New Roman" size="3">Главная</font></span></a></li>
   <li><a href='/donate.html'><span><font face="Times New Roman" size="3">Услуги</font></span></a>
   </li>
   <li><a href='/we.html'><span><font face="Times New Roman" size="3">Почему мы?</font></span></a></li>
   <li><a href='/map.html'><span><font face="Times New Roman" size="3">Карта сервера</font></span></a></li>
</ul>
</div>
</body> 
 
<body>
<div align="center" id="error">
<?php
session_start(); 
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
if(empty($_POST['login'])){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$login = $_POST['login']; //присваеваем переменную
$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
$query = mysql_query("SELECT * FROM `sashok724_launcher`  WHERE `user`='$login' AND `pass`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['login'];
$_SESSION['validuser']=$user['login'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
 
}
 
}
 
 
 
if(isset$_SESSION['validuser'])){
     то выводим инфу
}
else
{
     выводим сообщение, о том, что надо авторизоватья, редиректим на страницу реги.
}
 
?>
<div style="width: 180px; margin: 0px auto;">    <div class="set_item">
        <div class="box14">
 
<p><div style="width: 180px; margin: 0px auto;">
<form action="" method="post" enctype="multipart/form-data">
<input name="login" value="" placeholder="Логин " type="text">
<input name="password" value="" placeholder="Пароль" type="password">
 
<div align="center"><p></p><div class="btn-group" style="width: 180px; margin: 0px auto;"><input  class="blue" id="login" name="submit" value="Войти" type="submit"><input class="blue" onclick="location = '/reg.php'" value="Регистрация" type="button"></div><p></p></p>
        </div><!-- end box7 -->
    </div><!-- end set -->
 
</form>
</div>
</body>
</html>

Пишит что ошибка на 63 строке
0
Para bellum
Эксперт PHP
4187 / 3117 / 1010
Регистрация: 06.01.2011
Сообщений: 9,091
08.08.2012, 07:24 4
Цитата Сообщение от Дмитрий154 Посмотреть сообщение
Пишит что ошибка на 63 строке
После isset скобку откройте!
1
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 09:50 5
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

ошибки и недочеты по ходу кода:
1. session_start() должна быть до любого вывода любой информации (заголовков) в браузер.
2. if(empty.... если поставить пробел в поле ввода - то мы спокойно пройдем дальше и застрянем уже только на регулярках. вопрос. Зачем нам по коду дальше лезть если уже на первом шаге должны были выкинуть ее? Это я к тому что сначала надо хотя бы очистить от лишних пробелов - trim() перед проверкой на пустоту.
3. я лично не понимаю зачем в логине тире. к тому же в регулярке нет ни одной проверки на то что должна быть хотя бы одна буква и т.п., т.е. вот такой логин: ---- спокойно пройдет как нормальный - а это не есть гуд
4. зачем извлекать все поля (*) если нам нужен только логин? и пишите тогда SELECT `login` ..
5. как вам уже сказали - скобка после isset не открыта

Добавлено через 2 минуты
и еще одно - независимо от того, установлена сессия или нет - мы выводим форму авторизации

Добавлено через 23 минуты
перенесите session_start() и поставьте его в самом начале скрипта, перед
Цитата Сообщение от Дмитрий154 Посмотреть сообщение
PHP
1
include("db_connect.php");
Цитата Сообщение от Дмитрий154 Посмотреть сообщение
PHP
1
if(isset($_POST['submit'])){
дальше надо хотя бы убрать лишние пробелы
PHP
1
$login = trim($_POST['login']);
и уже работать с переменной логин а не присланным значением массива $_POST
preg_match заменить на хотя бы такой
PHP
1
if(!preg_match('/^[A-z?][A-z0-9]{2,14}$/ui',$login)) ...
для пароля - тоже хватит 15 символов, незачем 30 символов (имхо)
PHP
1
2
$zaproc = sprintf("SELECT `user` FROM `sashok724_launcher`  WHERE `user`='%s' AND `pass`='%s'",mysql_real_escape_string($login),mysql_real_escape_string($password)); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$query = mysql_query($query);
PHP
1
2
3
4
5
6
7
8
if(isset($_SESSION['validuser'])){
     //делаем редирект куда нам там надо, но не через header!!!
echo "<script>document.location.replace('address.php');</script>";
}
else
{
     // а сюда вставляем код формы авторизации
}
1
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 10:04  [ТС] 6
Эх... не фига не получается
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 10:25 7
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php session_start();
include("db_connect.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/css.css" rel="stylesheet" type="text/css">
<link href="/menu.css" rel="stylesheet" type="text/css">
<link href="/style.css" rel="stylesheet" type="text/css">
<link href="/reset.css" rel="stylesheet" type="text/css">
<style>
body {
    margin: 0;padding:0;min-height: 100% !important; min-width: 100% !important;
    background-image: url(http://emou.ru/style/bg0.gif);
}
</style>
<title>Minecraft server - FullCraft</title>
</head>
 
<body>
<div class='cssmenu'>
<ul>
   <li class='active'><a href='http://cabinet.fcraft.ru'><span><font face="Times New Roman" size="3">Главная</font></span></a></li>
   <li><a href='/donate.html'><span><font face="Times New Roman" size="3">Услуги</font></span></a>
   </li>
   <li><a href='/we.html'><span><font face="Times New Roman" size="3">Почему мы?</font></span></a></li>
   <li><a href='/map.html'><span><font face="Times New Roman" size="3">Карта сервера</font></span></a></li>
</ul>
</div>
</body> 
 
<body>
<div align="center" id="error">
<?php
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
$login = trim($_POST['login']);
$password = trim($_POST['password']);
if(empty($login)){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match('/^[A-z?][A-z0-9]{2,14}$/ui',$login)){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($password)){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match('/^[A-z?][A-z0-9]{2,14}$/ui',$password)){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$password = md5($password);//присваеваем переменную и кодируем её в md5 для безопасности
$zapros = sprintf("SELECT `user` FROM `sashok724_launcher`  WHERE `user`='%s' AND `pass`='%s'",mysql_real_escape_string($login),mysql_real_escape_string($password));
$query = mysql_query($zapros); //отправляем запрос на выборку имени юзера , где поле логин равно переменной $login, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['login'];
$_SESSION['validuser']=$user['login'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
 
}
 
}
if(isset($_SESSION['validuser'])){
     //делаем редирект куда нам там надо, но не через header!!!
echo "<script>document.location.replace('address.php');</script>"; //вместо address.php нужный адрес пишешь
}
else
{
     // а сюда вставляем код формы авторизации
?>
<div style="width: 180px; margin: 0px auto;">    <div class="set_item">
        <div class="box14">
 
<p><div style="width: 180px; margin: 0px auto;">
<form action="" method="post" enctype="multipart/form-data">
<input name="login" value="" placeholder="Логин " type="text">
<input name="password" value="" placeholder="Пароль" type="password">
 
<div align="center"><p></p><div class="btn-group" style="width: 180px; margin: 0px auto;"><input  class="blue" id="login" name="submit" value="Войти" type="submit"><input class="blue" onclick="location = '/reg.php'" value="Регистрация" type="button"></div><p></p></p>
        </div><!-- end box7 -->
    </div><!-- end set -->
 
</form>
</div>
<? } /*закрываем блок else*/ ?>
</body>
</html>
1
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 10:30  [ТС] 8
Спасибо большое, поставил на сайт, http://cabinet.fcraft.ru/
Логин test пароль test
но не работает.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 10:38 9
Цитата Сообщение от KOPOJI Посмотреть сообщение
PHP
1
2
3
4
5
6
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['login'];
$_SESSION['validuser']=$user['login'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
а, ну правильно же. у тебя в базе поле не login а user называется
поменяй этот код на вот такой
PHP
1
2
3
4
5
6
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['user'];
$_SESSION['validuser']=$user['user'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
1
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 10:41  [ТС] 10
Я Вам очень благодарен, я наверное Вам надоел?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php session_start();
include("db_connect.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/css.css" rel="stylesheet" type="text/css">
<link href="/menu.css" rel="stylesheet" type="text/css">
<link href="/style.css" rel="stylesheet" type="text/css">
<link href="/reset.css" rel="stylesheet" type="text/css">
<style>
body {
    margin: 0;padding:0;min-height: 100% !important; min-width: 100% !important;
    background-image: url(http://emou.ru/style/bg0.gif);
}
</style>
<title>Minecraft server - FullCraft</title>
</head>
 
<body>
<div class='cssmenu'>
<ul>
   <li class='active'><a href='http://cabinet.fcraft.ru'><span><font face="Times New Roman" size="3">Главная</font></span></a></li>
   <li><a href='/uslugi.php'><span><font face="Times New Roman" size="3">Услуги</font></span></a>
   </li>
   <li><a href='/me.php'><span><font face="Times New Roman" size="3">Отзывы</font></span></a></li>
   <li><a href='/map.html'><span><font face="Times New Roman" size="3">Карта сервера</font></span></a></li>
</ul>
</div>
</body> 
 
<body>
<div align="center" id="error">
<?php
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
$login = trim($_POST['login']);
$password = trim($_POST['password']);
if(empty($login)){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match('/^[A-z?][A-z0-9]{2,14}$/ui',$login)){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($password)){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match('/^[A-z?][A-z0-9]{2,14}$/ui',$password)){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$password = md5($password);//присваеваем переменную и кодируем её в md5 для безопасности
$zapros = sprintf("SELECT `user` FROM `sashok724_launcher`  WHERE `user`='%s' AND `pass`='%s'",mysql_real_escape_string($login),mysql_real_escape_string($password));
$query = mysql_query($zapros); //отправляем запрос на выборку имени юзера , где поле логин равно переменной $login, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['user'];
$_SESSION['validuser']=$user['user'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
}
 
}
 
}
if(isset($_SESSION['validuser'])){
     //делаем редирект куда нам там надо, но не через header!!!
echo "<script>document.location.replace('me.php');</script>"; //вместо address.php нужный адрес пишешь
}
else
{
   // а сюда вставляем код формы авторизации
?>
<div style="width: 180px; margin: 0px auto;">    <div class="set_item">
        <div class="box14">
 
<p><div style="width: 180px; margin: 0px auto;">
<form action="" method="post" enctype="multipart/form-data">
<input name="login" value="" placeholder="Логин " type="text">
<input name="password" value="" placeholder="Пароль" type="password">
 
<div align="center"><p></p><div class="btn-group" style="width: 180px; margin: 0px auto;"><input  class="blue" id="login" name="submit" value="Войти" type="submit"><input class="blue" onclick="location = '/reg.php'" value="Регистрация" type="button"></div><p></p></p>
        </div><!-- end box7 -->
    </div><!-- end set -->
 
</form>
</div>
<? } /*закрываем блок else*/ ?>
</body>
</html>
теперь пишит что ошибка на на 62 строке но там просто знак }
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 10:43 11
сравните мой код и ваш у вас там лишняя }
1
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 10:57  [ТС] 12
Урааааааааааа все работает ) Но теперь другой вопрос, как сделать кнопку выход? ну чтобы куки или как там они сбросились. и ты снова перешел на страницу регестрации?

Добавлено через 3 минуты
Если я правильно понимаю то надо создать файл наприме "logout.php". в него вставить определеный код ... . а потом где хочешь видеть кнопку выход нужно добавить

HTML5
1
<input class="blue" onclick="location = '/logout.php'" value="Выход" type="button"></div>
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 11:04 13
зачем создавать файл, не надо.
просто делаешь ссылку рядом с приветствием вида
HTML5
1
<a href="?exit">Выход</a>
и в начале каждого скрипта после session_start() проверяешь
PHP
1
2
3
if(isset($_GET['exit'])) {
session_destroy();
}
0
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 11:12  [ТС] 14
А как сделать чтобы после нажатия этой кнопки, он перекидывал на главную страничку?

И как сделать чтобы была не ссылка, а кнопка, типо этого
HTML5
1
<input class="blue" onclick="location = '/logout.php'" value="Выход" type="button"></div>
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 11:21 15
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

1. зачем перекидывать на главную страницу, пускай на этой же будет.
2. кто вам мешает ссылку сделать в виде кнопки?
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<style>
#logout_link {
display: inline-block;
width: 100px;
height: 25px;
text-align: center;
text-decoration: none;
background-color: wheat;
border-radius: 5px;
color: green;
font-size: 16pt;
}
#logout_link:hover {
color: blue;
}
</style>
HTML5
1
<a href="?exit" id="logout_link">Выход</a>
Добавлено через 1 минуту
ну можешь и кнопкой в принципе..
HTML5
1
<button onclick="document.location.replace('?exit');">Выход</button>
1
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 12:02  [ТС] 16
Все помогло спасибо, а вот теперь другой вопрос
Как вывести, чтобы писалось " Ваш логин &user
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 12:05 17
PHP
1
2
3
if(isset($_SESSION['validuser'])) {
echo "Ваш логин: ".$_SESSION['validuser'];
}
0
Дмитрий154
1 / 1 / 0
Регистрация: 09.06.2012
Сообщений: 62
08.08.2012, 12:09  [ТС] 18
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php session_start();
if(isset($_GET['exit'])) {
session_destroy();
}
include("db_connect.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<!--Классы-->
<link href="/css.css" rel="stylesheet" type="text/css">
<link href="/menu.css" rel="stylesheet" type="text/css">
<link href="/style.css" rel="stylesheet" type="text/css">
<link href="/reset.css" rel="stylesheet" type="text/css">
<!--Классы-->
<!--Фон сайта-->
<style>
body {
    margin: 0;padding:0;min-height: 100% !important; min-width: 100% !important;
    background-image: url(http://emou.ru/style/bg0.gif);
}
</style>
<!--Фон сайта-->
<title>Minecraft server - FullCraft</title>
</head>
 
<body>
<div class='cssmenu'>
<ul>
   <li class='active '><a href='http://cabinet.fcraft.ru'><span><font face="Times New Roman" size="3">Главная</font></span></a></li>
    <li><a href='/uslugi.php'><span><font face="Times New Roman" size="3">Услуги</font></span></a>
   </li>
  <li><a href='/me.php'><span><font face="Times New Roman" size="3">Отзывы</font></span></a></li>
   <li><a href='/map.php'><span><font face="Times New Roman" size="3">Карта сервера</font></span></a></li>
</ul>
</div>
</body> 
<?php
$_SESSION['validuser']=$user['user'];
if(isset($_SESSION['validuser'])) {
echo "Ваш логин: ".$_SESSION['validuser'];
}?>
 
<div class="btn-group" style="width: 180px; margin: 0px auto;"><button class="blue" name="submit"  onclick="document.location.replace('?exit');">Выход</button>
 
</body>
</html>
Может вставил что то не так?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 866
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
08.08.2012, 15:17 19
ы. а зачем вы отображаете приветствие за пределами <body>?

Добавлено через 2 минуты
Цитата Сообщение от Дмитрий154 Посмотреть сообщение
PHP
1
$_SESSION['validuser']=$user['user'];
и вот это зачем скажите пожалуйста. вы уничтожаете сессию
необъявленная (неинициализированная) переменная = NULL
т.к. $user['user'] - не существует на этой странице, то она равна NULL
следовательно вы присваиваете $_SESSION['validuser'] Значение NULL, т.е. просто-напросто уничтожаете ее
0
Mercerr
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 32
04.09.2018, 21:08 20
KOPOJI, можешь помочь? решил сделать по примеру этого кода и получил
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Users\Mercer\Desktop\OpenServer\OSPanel\domains\Test.ru\Login.php on line 19
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Users\Mercer\Desktop\OpenServer\OSPanel\domains\Test.ru\Login.php on line 20
Можешь подсказать что не так?
19 и 20 строчки это $user и $row
PHP
1
2
3
4
5
6
7
8
9
$zapros = sprintf("SELECT `username` FROM `users`  WHERE `user`='username' AND `pass`='password'",mysql_real_escape_string($username),mysql_real_escape_string($password));
$query = mysql_query($zapros); //отправляем запрос на выборку имени юзера , где поле логин равно переменной $username, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['username'];
$_SESSION['userr']=$user['username'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
Добавлено через 26 минут
ладно это проблема решилась
другая проблема - что правильно ввожу логин и пароль он пишет все равно не верно

PHP
1
2
3
4
5
6
7
8
9
$zapros = sprintf("SELECT `username` FROM `users`  WHERE `username`='%s' AND `password`='%s'",mysql_real_escape_string($username),mysql_real_escape_string($password));
$query = mysql_query($zapros); //отправляем запрос на выборку имени юзера , где поле логин равно переменной $username, а поле password равно переменной $password
$user = mysql_fetch_assoc($query); 
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы авторизировались!".$user['username'];
$_SESSION['validuser']=$user['username'];
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
на примере этого куска
0
04.09.2018, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2018, 21:08

Авторизация на сайте
У меня есть сайт с админ панелькой, мне надо сделать так , что бы на страницу...

Авторизация на сайте
Уважаемые форумчане, подскажите пожалуйста пример скрипта который, исключает возможность входа на...

Авторизация на сайте
Здравствуйте. Не могу понять почему не работает авторизация на сайте. Код с курса Жур Артур. if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru