Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1

Авторизация

15.03.2011, 12:18. Показов 1847. Ответов 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
48
49
50
51
<!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">
<title>Админ Панель</title>
</head>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 <table align="center" width="21%" border="0" bgcolor="#999999" cellspacing="4" cellpadding="0">
  <form action="<? $_SERVER['REQUEST_URI'] ?>" method="post"><tr>
    <td width="47%">Логин:</td>
    <td width="53%" align="right"><input name="login" type="text"></td>
  </tr>
  <tr>
    <td>Пароль:</td>
    <td align="right"><input name="pass" type="password"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="butt" type="submit" value="Вход"></td>
  </tr>
  <tr>
  <td colspan="2" align="center"> 
<?
include ('connect.inc.php');
$login=strip_tags(trim($_POST['login']));
$pass=strip_tags(trim($_POST['pass']));
$button=$_POST['butt'];
    if($button==true){
        if(empty($login)){
            echo "Введите логин <br>";
            }
        if(empty($pass)){
            echo "Введите пароль";
            }
        }
    if($login==true && $pass==true){
        $mdpass=md5($pass);
            if(autho($login,$mdpass)==true){
                echo "Вы вошли";
                }else{
                    echo "Логин или пароль не верны";
                    }
        }
    
?>   
  </td>
  </tr>
  </form>
</table>
</body>
</html>
вот код БД
PHP
1
2
3
4
5
6
7
8
9
function autho($login,$pass){
        $arr=mysql_fetch_array(mysql_query("SELECT * FROM test WHERE login='$login' and pass='$pass'"));
        if(!empty($arr)){
            return true;
            }else{
            return false;
                }
    
    }
и вот в чём прикол оно всё работает все отлично пишет вы вошли или если не правлеьный лог пас то тоже проверяет но вот я сюда пишу хедер что б оно после авторизации перенаправляло на другую страничку а оно пишет ошибку
PHP
1
2
3
4
5
6
7
8
9
if($login==true && $pass==true){
        $mdpass=md5($pass);
            if(autho($login,$mdpass)==true){
                echo "Вы вошли";
                                             header("Location: http://google.ru");
                }else{
                    echo "Логин или пароль не верны";
                    }
        }
а оно пишет ошибку что типа в форме передано другое
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\VertrigoServ\www\p\admin.php:10) in C:\Program Files (x86)\VertrigoServ\www\p\admin.php on line 40
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2011, 12:18
Ответы с готовыми решениями:

Авторизация
Помогите сижу вторую неделю не могу найти выход =) if(isset($_POST)) { if(isset($_POST,$_POST,$_POST) &amp;&amp;...

Авторизация
Делаю авторизацию &lt;?php $db = new PDO(&quot;mysql:host=localhost; dbname=jobdata&quot;, //host - адрес БД, dbname - имя БД ...

Авторизация
Здравствуйте! Хоть и заголовок скучен, но проблема сохранилась. В общем надо написать авторизацию и личный кабинет на PDO_PHP. В...

18
21 / 17 / 0
Регистрация: 05.03.2010
Сообщений: 59
15.03.2011, 12:43
Это потому, что заголовки должны быть посланы первыми, до какого-либо контента. Вы должны либо воспользоваться буферизацией(но тогда пользователь ничего не увидит) либо перенаправлять средствами HTML, посылая нужный контент. Это можно сделать по средствам тега meta.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.03.2011, 12:46
Цитата Сообщение от Egoist0 Посмотреть сообщение
echo "Вы вошли";
а куда он вошел?
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
15.03.2011, 12:47  [ТС]
а как использывать этот тег meta?

Добавлено через 55 секунд
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
а куда он вошел?
ну типа вошел в админ панель, просто пока ведь нет файла куда он пойдет) а вообще он пойдет в админку, а я пока для првоерки вместо админки решил направить на гугл но он выдает ошибку
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.03.2011, 12:49
здесь думаю надо переставить местами строки
Цитата Сообщение от Egoist0 Посмотреть сообщение
echo "Вы вошли";
header("Location: http://google.ru");
Добавлено через 1 минуту
раз страницы нет, оставьте только гугл, без echo
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
15.03.2011, 17:18  [ТС]
ставил не помогало

Добавлено через 4 часа 25 минут
есть какие либо еще мысли ? )) как я понял оно противоречит друг другу тойсть форма отправляется в этодже фаил и после того как я хочу перенаправить на другую страницу оно мне пишет типа "дружек чё ты мутиш у тебя в 10 строке форма определена уже раньше была другая" как это избежать можно ? не создавая много файлов а что б в одной форме но после отправки кнопки если все даные верны перенаправляло на другую сылку в дальнейшем уже в админ панель
0
 Аватар для Astorian
7 / 7 / 4
Регистрация: 12.03.2011
Сообщений: 34
16.03.2011, 02:19
Что бы проблем с header'ом не было, я всегда делаю так:
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
<?
// Сценарий авторизации
 
if($login==true && $pass==true)  // Если авторизация прошла успешно
{
    header("Location: http://google.ru");  // Отправляем на нужную страницу
 
} else // если нет - загрузаем HTML форму авторизации
 
?>
 
<!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">
<title>Админ Панель</title>
</head>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 <table align="center" width="21%" border="0" bgcolor="#999999" cellspacing="4" cellpadding="0">
  <form action="<? $_SERVER['REQUEST_URI'] ?>" method="post"><tr>
    <td width="47%">Логин:</td>
    <td width="53%" align="right"><input name="login" type="text"></td>
  </tr>
  <tr>
    <td>Пароль:</td>
    <td align="right"><input name="pass" type="password"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="butt" type="submit" value="Вход"></td>
  </tr>
  <tr>
  <td colspan="2" align="center"> 
  </td>
  </tr>
  </form>
</table>
</body>
</html>
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
16.03.2011, 02:27  [ТС]
если так сделать то код будет безсмысленый поскольку нет не какой проверки логина и пароля
0
 Аватар для Astorian
7 / 7 / 4
Регистрация: 12.03.2011
Сообщений: 34
16.03.2011, 02:54
Код проверки логина и пароля идет в самом начале файла, без вывода данных на экран (echo)

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
<?
include ('connect.inc.php');
 
function autho($login,$pass){
                $arr=mysql_fetch_array(mysql_query("SELECT * FROM test WHERE login='$login' and pass='$pass'"));
                if(!empty($arr)){
                        return true;
                        }else{
                        return false;
                                }
        
        }
 
     if( $login != "" )   // Если логин задан
     {
        $login=strip_tags(trim($_POST['login']));  // Обрабатываем логин  
     }
     if( $pass != "" )   // Если пароль задан
     {
        $pass=strip_tags(trim($_POST['pass']));  // Обрабатываем пароль
     }
 
     if( isset($login) AND isset($pass) )  // Если все проверили - авторизируемся
     {
        $mdpass=md5($pass);
                   
                   if(autho($login,$mdpass)==true)
                   {
                       header("Location: http://google.ru"); // Если авторизация выполнена - отправляем на нужную страницу
                    
     } else // Если нет, загружаем HTML форму
?>
 
<!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">
<title>Админ Панель</title>
</head>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 <table align="center" width="21%" border="0" bgcolor="#999999" cellspacing="4" cellpadding="0">
  <form action="<? $_SERVER['REQUEST_URI'] ?>" method="post"><tr>
    <td width="47%">Логин:</td>
    <td width="53%" align="right"><input name="login" type="text"></td>
  </tr>
  <tr>
    <td>Пароль:</td>
    <td align="right"><input name="pass" type="password"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="butt" type="submit" value="Вход"></td>
  </tr>
  <tr>
  <td colspan="2" align="center"> 
  </td>
  </tr>
  </form>
</table>
</body>
</html>
0
21 / 17 / 0
Регистрация: 05.03.2010
Сообщений: 59
16.03.2011, 08:06
Нужно вместо, "Вы вошли и header" отправить подобный контент:
PHP
1
2
3
4
5
6
<head>
    <meta http-equiv="refresh" content="0; url=http://www.google.com">
</head>
<body>
    <b>Вы вошли</b>
</body>
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
16.03.2011, 10:49  [ТС]
я не понял что в ехо вписывать еще одну шапку и тело ?
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
16.03.2011, 11:41
внесу свои 5 копеек))
PHP
1
2
3
4
5
6
7
8
9
10
11
if($login==true && $pass==true){
                $mdpass=md5($pass);
                        if(autho($login,$mdpass)==true){
                                echo "Вы вошли";
                                  echo  "<script type=\"text/javascript\">
                                              window.location.assign('http://google.ru');
                                            </script>";
                                }else{
                                        echo "Логин или пароль не верны";
                                        }
                }
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
16.03.2011, 12:09  [ТС]
во сухарик спс, заработало, но теперь вопрос вот в чём обьясни этот скрипт плз что б я был в курсе и почему тип яваскрипт? почему через хидер не пахало, а так запахало
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
16.03.2011, 12:28
яваскрипттом можно с любова метса отсылать на другую страницу, а хедер только в начале страницы
если хочеш хедером отправлять то ставь скрипт проверки вначале страницы

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
<?
include ('connect.inc.php');
$login=strip_tags(trim($_POST['login']));
$pass=strip_tags(trim($_POST['pass']));
$button=$_POST['butt'];
        if($button==true){
                if(empty($login)){
                        echo "Введите логин <br>";
                        }
                if(empty($pass)){
                        echo "Введите пароль";
                        }
                }
        if($login==true && $pass==true){
                $mdpass=md5($pass);
                        if(autho($login,$mdpass)==true){
                                header("Location: http://google.ru");
                                }else{
                                        echo "Логин или пароль не верны";
                                        }
                }
        
?>
<!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">
<title>Админ Панель</title>
</head>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 <table align="center" width="21%" border="0" bgcolor="#999999" cellspacing="4" cellpadding="0">
  <form action="<? $_SERVER['REQUEST_URI'] ?>" method="post"><tr>
    <td width="47%">Логин:</td>
    <td width="53%" align="right"><input name="login" type="text"></td>
  </tr>
  <tr>
    <td>Пароль:</td>
    <td align="right"><input name="pass" type="password"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="butt" type="submit" value="Вход"></td>
  </tr>
  <tr>
  <td colspan="2" align="center"> 
   
  </td>
  </tr>
  </form>
</table>
</body>
</html>
потом можеш свои эхи (echo) заменить на переменные и втсавить их влюбое место на страницы сайта
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.03.2011, 12:26  [ТС]
понял, я вообщем останавлюсь лучше на яваскрипте поскольку если он может с любого места загрузить её так что это будет удобней) еще один вопрос, вот я сделал эту авторизацию для админки ну куда в последствии надо будет заходить для будущей ЦМСКИ) вот и допустим вот авторизация перенаправляет на страницу /adminpanel.php а если человека не авторизуеца и просто в браузер кинет эту строку ему ведь сразу выдаст типа всё ок вы зашли и т.п, как этого избежать ?

Добавлено через 23 часа 32 минуты
кто может помоч?
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
17.03.2011, 12:42
смотри в сторону сессий или куков
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.03.2011, 13:09  [ТС]
если для одного пользывателя ну макс для двух проконает ? или хетексес делать?
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
17.03.2011, 13:12
для всех проканает.
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.03.2011, 13:15  [ТС]
понял, знач буду дерзать сессии и куки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2011, 13:15
Помогаю со студенческими работами здесь

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

Авторизация
Есть два кода login.php &lt;?php if (isset($_POST)) { $login = $_POST; if ($login == '') { unset($login); exit...

Авторизация
Привет. Проблема такова на сайте при регистрации или авторизации ничего не происходит когда нажимаешь на кнопку. 104 и 76 строки вроде....

Авторизация
Здравствуйте! Возникла такая проблема. Не создается таблица в бд. При выполнении файла регистрации появляется ошибка: Parse error:...

Авторизация
Проверьте пожалуйста код что я не так сделал. При правильной авторизации должно вывестись массив $_SESSION Проблема в функции reg....


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru