Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129

Не получается авторизироваться

22.03.2015, 21:13. Показов 1356. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Не могу понять почему не работает авторизация
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?
    function logged_in(){
        return (isset($_SESSION['user_id'])) ? true : false;
    }
?>
        <?php
            if(logged_in() === true) {
                include 'widgets/loggedin.php';
            } else {
             echo "форма  для аторизации(далее)";
            }
        ?>
Сама форма авторизации
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                        <form action="login.php" method="post">
                            <ul id='login'>
                                <li>
                                    username:<br/>
                                    <input type="text" name="username">
                                </li>
                                <li>
                                    Password:<br/>
                                    <input type="password" name="password">
                                </li>
                                <li>
                                    <input type="submit" value='Log in'> 
                                </li>
                            </ul>
                        </form>
Форма ведет на эту страницу:
PHP/HTML
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
<?php
    include 'core/init.php';
    logged_in_redirect();
    if (empty($_POST) === false){
        $username = $_POST['username'];
        $password = $_POST['password'];
        if (empty($username) === true || empty($password) === true) {
            $errors[] = 'Write a password and username';
        } else if(user_exists($username) === false) {
            $errors[] = 'Cant find username';
        } else if (user_active($username) === false){
            $errors[] = 'You didnt activate your account!';
        } else {
            if (strlen($password)>32) {
                $errors[] = 'Password too long';
            }
            $login = login($username, $password);
            if ($login === false) {
                $errors[] = 'Combinatoin of username and password incorrect!';
            } else {
                $_SESSION['user_id']= $login;
                header ('Location: index.php');
                exit();
            }
        }
} else{
    $errors[] = 'No data';
    }
    include 'includes/overall/header.php';
    if (empty($errors) === false) {
?>
    <h2>Tried to log in ,but...</h2>
<?php
    echo output_errors($errors);
    }
    include 'includes/overall/footer.php';
    ?>
Суть в том, что сами ошибки выводятся, если неправильный логин или пароль. Но авторизироваться не могу. Подскажите, что делаю не так? Заранее спасибо!

Добавлено через 3 минуты
Сделал вывод ошибок, получил следующее:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in Z:\home\page.com\www\core\functions\user s.php on line 86
сама строка :
PHP
1
$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2015, 21:13
Ответы с готовыми решениями:

Как можно авторизироваться через php?
Поясню - как можно зайти на страницу, требующую авторизацию, через &lt;b&gt;fopen&lt;/b&gt;? Есть страница login.php, которая читает данные по...

WebBrowser не получается программно авторизироваться
Доброго времени суток. Есть сайт, на котором нужно программно авторизироваться на сайте https://mmotop.ru/users/sign_in . Никак не...

Не удается авторизироваться в VK
Прошу у вас помощи. Мне нужно осуществить Oauth-авторизацию VK. После запроса ...

10
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.03.2015, 21:19
Если убрать отправку заголовка header, ошибки выводятся?
Покажите функцию login.

Пока не вижу ошибок в коде.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
22.03.2015, 21:21  [ТС]
PHP
1
2
3
4
5
6
function login($username, $password){
    $user_id = user_id_from_username($username);
    $username = sanitize($username);
    $password = md5($password);
    return(mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) == 1) ? $user_id : false;
}
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.03.2015, 21:24
Выполните такой запрос:
PHP
1
mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id") or die(mysql_error());
И скиньте текст ошибки. Скорее всего в переменной $fields ошибка, как-то неправильно генерирует столбцы.

И покажите полностью функцию с этим запросом.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
22.03.2015, 21:29  [ТС]
Цитата Сообщение от paskalnikita Посмотреть сообщение
header ('Location: index.php'); exit();
если убрать это, то авторизация проходит, но тогда он не понимает переменно объявленной ранее.

Добавлено через 2 минуты
Unknown column 'password_recover' in 'field list' , но это поле только тоглда, когда я нажимаю на ссылку, что забыл пароль, и тогда, когда я не залогинен выводится эта ссылка.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.03.2015, 21:51
Цитата Сообщение от paskalnikita Посмотреть сообщение
Unknown column 'password_recover'
Значит, этого поля не существует в таблице.

Если его убрать, ещё какие-нибудь ошибки появляются?
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
22.03.2015, 21:51  [ТС]
Не совсем правильно написал, эта ошибка выводится когда я написал запрос, который вы предложили использовать
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.03.2015, 21:53
Ошибка происходит в любом случае. Просто mysql_error() эту ошибку выводит на экран. Без этой функции ошибки MySQL, даже если они есть, не отображаются.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
22.03.2015, 21:55  [ТС]
Cannot Modlify header пишет, но сама ошибка в хэдера, который не находится в форме, редирект лежит в другой функции.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.03.2015, 21:57
Лучший ответ Сообщение было отмечено paskalnikita как решение

Решение

Устранение этой ошибки подробно описано здесь.

Да, и не забудьте вернуть mysql_fetch_assoc в прошлом запросе. Примерно так:
PHP
1
2
$data = mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id") or die(mysql_error());
$data = mysql_fetch_assoc($data);
Если вы указывали ранее, что авторизация не проходит при указании header(), значит, скорее всего проблема в этом. После устранения всё должно заработать. Если нет - пишите, продолжим.
1
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
23.03.2015, 21:03  [ТС]
но тогда такая проблема, не получается загрузить файл профиля:
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
                        
    function change_profile_image($user_id, $file_temp, $file_extn){
        $file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
        move_uploaded_file($file_temp, $file_path);
        mysql_query("UPDATE `users` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE `user_id` = " . (int)$user_id);
    }
 
 
    <?php
                                if (isset($_FILES['profile']) === true) {
                                    if (empty($_FILES['profile']['name']) === true) {
                                        echo "Please choose a file!";
                                    } else {
                                        $allowed = array('jpg', 'jpeg', 'gif', 'png');
                                        $file_name = $_FILES['profile']['name'];
                                        $file_extn = strtolower(end(explode('.', $file_name)));
                                        $file_temp = $_FILES['profile']['tmp_name'];
                                        if (in_array($file_extn, $allowed) === true) {
                                            change_profile_image($session_user_id, $file_temp, $file_extn);
                                            echo "<meta http-equiv='refresh' content='0; url=http://www.page.com/index.php'/>";
                                        } else {
                                            echo "Incorrect file type. Allowed:";
                                            echo implode(', ', $allowed);
                                            }
                                        }
                                    }
                                if (empty($user_data['profile']) === false) {
                                    echo '<img src="/', $user_data['profile'], '" alt="',$user_data['first_name'],'\'s profile image">';
                                }
                            ?>
                            <form action="" method="post" enctype="multipart/form-data">
                                <input type="file" name="profile">
                                <input type="submit">
                            </form>
сами ошибки выводятся, файл загружается с папку на сервере , но картинка не тображается ни в профиле, ни в бд

Добавлено через 3 часа 36 минут
Проблема решена
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2015, 21:03
Помогаю со студенческими работами здесь

Не могу авторизироваться
создал статическую страницу авторизации на сайте, движек DLE 9.5, вот код: &lt;div class=&quot;auth&quot;&gt; &lt;form...

Не могу авторизироваться
Привет всем. Есть ноут, на нем стоит Нортон-антивирус. В один прекрасный день случилось так, что не смог авторизироваться ни на мэйле,...

авторизироваться на 5 сайтах
Вот получил задачу зделать прогу которая должна сама авторизироваться на 5 сайтах. В строку поиска ввести определенное значение и нажать...

Не удается авторизироваться в стим
Здравствуйте,мой вопрос касается авторизации на сайте стима,сразу хочу сказать,что моя программа НЕ ЯВЛЯЕТСЯ брутфорсом или каким-либо...

Программно авторизироваться на сайте
Добрый день. Столкнулся с проблемой авторизацией (HTTPS+captcha) есть страничка Авторизация в ПД никак не могу программно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru