PHP разработчики. Обсуждение.

Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел. Однако для нескольких аккаунтов это удобно.

Давайте начнём с того что мы будем делать и как:
- Создадим файл, в котором будет массив с аккаунтами, назовём accounts.php
- Создадим файл index.php в котором будет проверка сессии на авторизацию
- Создадим файл home.php и login.php - там будет всё.

Приступим.

Создаём файл accounts.php и пишем там такой код:
Код:
<?php
$acccounts = array(
'admin' => 'admin', // логин => пароль.
'dev' => 'dev',
);
Let's go дальше.
Создаём файл index.php там будет проверка сессии, пишем следующий код:
Код:
<?php
session_start();
if($_session['authed'] == "yes")
{
header("Location: /home.php"); // перенаправляем на home.php
} else
{
header("Location: /login.php"); // перенаправляем на login.php
}
Такс, тут мы сделали, идём дальше, в файл login.php, ловите код:
Код:
<?php
require("accounts.php");
session_start();
if($_session['authed'] == "yes") { header("Location: /home.php"); } // перенаправляем если пользователь зашёл по ссылке на этот файл и уже был авторизован.
if(isset($_POST['btnlogin']))
{
 if($_POST['password'] == $accounts[$_POST['login']])
 {
  $_SESSION['authed'] = "yes";
 } else {
  echo "Не верный пароль.";
 }
}
?>
<form method="post">
<input type="login" name="login" placeholder="Login">
<input type="password" name="password" placeholder="Password">
<button type="submit" name="btnlogin">Login</button>
</form>
Вот вроде бы и всё, но ещё файл home.php
Код:
<?php
session_start();
if($_session['authed'] != "yes")
{
 header("Location: /index.php");  // если не верно, перенаправит на Index.php где после проверки отправит на login.php.
}
Вот и всё, теперь размещаем в файле home.php ваш код админки и готово!

Писал сам, копипасты тут нет ;-)
Думаю тема была кому-то полезной, если найдёте ошибки в коде или будут проблемы - пишите - решим!
 
Последнее редактирование модератором:
Забаненный
Статус
Оффлайн
Регистрация
24 Апр 2017
Сообщения
45
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что с ней делать?
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Хейоу вот опять я со своим кодом, но сегодня я задался вопросом, а понимают ли люди как отправлять POST на чужой сервер?
В интернете есть ответ на этот вопрос, но на форуме я не нашёл.

И так, в данном случае, есть сайт: example.com/getinfo.php (пример) и он принимает только POST запросы, так вот как можно отправить их?
Есть 2 способа:
- Через <form> (указываем в action ссылку на этот скрипт), но это не удобно и не всегда получится его использовать.
- Через Curl - его мы сейчас и рассмотрим.

И так, к примеру я делаю бота для ВК и мне нужно отправить POST с параметрами пользователя.
Сервер example.com/getinfo.php принимает только POST запросы и 1 параметр - uid
Если бы это был GET запрос, выглядело бы всё достаточно просто - example.com/getinfo.php?uid=ид, но у нас только POST

Рассмотрим следующий код:
Код:
$id = "1";

$dwcurl = curl_init();
curl_setopt_array($dwcurl, array(
    CURLOPT_URL => 'https://example.com/getinfo.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id))
));
$response = curl_exec($dwcurl); // получаем ответ на наш POST запрос
curl_close($dwcurl);
А тем кто захотел использовать <form> вот код:
Код:
<form action="https://example.com/getinfo.php" method="POST">
<input name="uid" placeholder="Enter id">
<button type="submit">Get info</button>
</form>
Как видим, теперь в переменной $response у нас хранится ответ сервера после POST запроса с параметрами.

Ещё 1 вариант через file_get_contents (предложил https://yougame.biz/members/4580/)
Код:
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}
Думаю вам понравится.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
мм.ты просто сообщение отредактировал
1 . там было в конце написано Жду лайкоф
Ты такую херню несешь, всем понятно, о чём ты говорил.
2. Если ты не понимаешь рофлов, это уже не мои проблемы. Я согласился с твоим сообщением и убрал из него текст "Жду лайкоф"
 
Пользователь
Статус
Оффлайн
Регистрация
3 Авг 2016
Сообщения
186
Реакции[?]
252
Поинты[?]
0
твоя бд это файлик с массивом?:roflanEbalo:

$id = "1"; $dwcurl = curl_init(); curl_setopt_array($dwcurl, array( CURLOPT_URL => '
Пожалуйста, авторизуйтесь для просмотра ссылки.
', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id)) )); $response = curl_exec($dwcurl); // получаем ответ на наш POST запрос curl_close($dwcurl);
предпочтительнее будет проверять наличие курла, и вообще можно через file_get_contents слать посты

Код:
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
твоя бд это файлик с массивом?
Я писал, что для админки без бд можно сделать. Достаточно массива, всего лишь несколько аккаунтов. Ты ведь не будешь доверять 1000 людям админку своего сайта.
предпочтительнее будет проверять наличие курла, и вообще можно через file_get_contents слать посты
Хорошо, но этот вариант тоже правильный + в основном на всех хостах и всех ЛокалСерверах есть Curl (Denwer, OpenServer и т.п.). Да и писал я что через Curl есть вариант, я не писал что нет вариантов больше ;-)
 
Пользователь
Статус
Оффлайн
Регистрация
3 Авг 2016
Сообщения
186
Реакции[?]
252
Поинты[?]
0
Хорошо, но этот вариант тоже правильный + в основном на всех хостах и всех ЛокалСерверах есть Curl (Denwer, OpenServer и т.п.)
если отправлять запросы с прокси (http/https) через курл, то будет дико жрать цп) поэтому в данном случае лучше использовать вариант с file_get_contents
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Не знаю кому может пригодиться QR генератор. но сейчас расскажу как создавать QR через PHP на своём сайте.

Нам понадобится PHP QR Code (Библиотека)
Ссылка
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама!)

И так, скачиваем архив с библиотекой, в ней будет папка phpqrcode, закидываем её на наш хост.
Дальше создаём файл qr.php (к примеру, любое название) и пишем туда следующий код:

Код:
<?php
include('phpqrcode/qrlib.php');
QRcode::png('Этот текст будет в QR коде');
Можно сделать сохранение в файл, это указано в документации библиотеки на оф сайте.

QR код можно расшифровать специальными приложениями.
Так-же можно зашифровать отправку сообщения, мобильный телефон и сайт помимо текста.

Думаю пойдёт.
 
Эксперт
Статус
Оффлайн
Регистрация
31 Мар 2017
Сообщения
997
Реакции[?]
652
Поинты[?]
0
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел. Однако для нескольких аккаунтов это удобно.

Давайте начнём с того что мы будем делать и как:
- Создадим файл, в котором будет массив с аккаунтами, назовём accounts.php
- Создадим файл index.php в котором будет проверка сессии на авторизацию
- Создадим файл home.php и login.php - там будет всё.

Приступим.

Создаём файл accounts.php и пишем там такой код:
Код:
<?php
$acccounts = array(
'admin' => 'admin', // логин => пароль.
'dev' => 'dev',
);
Let's go дальше.
Создаём файл index.php там будет проверка сессии, пишем следующий код:
Код:
<?php
session_start();
if($_session['authed'] == "yes")
{
header("Location: /home.php"); // перенаправляем на home.php
} else
{
header("Location: /login.php"); // перенаправляем на login.php
}
Такс, тут мы сделали, идём дальше, в файл login.php, ловите код:
Код:
<?php
require("accounts.php");
session_start();
if($_session['authed'] == "yes") { header("Location: /home.php"); } // перенаправляем если пользователь зашёл по ссылке на этот файл и уже был авторизован.
if(isset($_POST['btnlogin']))
{
 if($_POST['password'] == $accounts[$_POST['login']])
 {
  $_SESSION['authed'] = "yes";
 } else {
  echo "Не верный пароль.";
 }
}
?>
<form method="post">
<input type="login" name="login" placeholder="Login">
<input type="password" name="password" placeholder="Password">
<button type="submit" name="btnlogin">Login</button>
</form>
Вот вроде бы и всё, но ещё файл home.php
Код:
<?php
session_start();
if($_session['authed'] != "yes")
{
 header("Location: /index.php");  // если не верно, перенаправит на Index.php где после проверки отправит на login.php.
}
Вот и всё, теперь размещаем в файле home.php ваш код админки и готово!

Писал сам, копипасты тут нет ;-)
Думаю тема была кому-то полезной, если найдёте ошибки в коде или будут проблемы - пишите - решим!
Тупа минус безопасность.

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

Даже если ты лоу девелопер, изучи код нормальной авторизации, я такой хуйни не видел ещё.

Что с ней делать?
Не юзать такое убожество нахуй.


Хейоу вот опять я со своим кодом, но сегодня я задался вопросом, а понимают ли люди как отправлять POST на чужой сервер?
В интернете есть ответ на этот вопрос, но на форуме я не нашёл.

И так, в данном случае, есть сайт: example.com/getinfo.php (пример) и он принимает только POST запросы, так вот как можно отправить их?
Есть 2 способа:
- Через <form> (указываем в action ссылку на этот скрипт), но это не удобно и не всегда получится его использовать.
- Через Curl - его мы сейчас и рассмотрим.

И так, к примеру я делаю бота для ВК и мне нужно отправить POST с параметрами пользователя.
Сервер example.com/getinfo.php принимает только POST запросы и 1 параметр - uid
Если бы это был GET запрос, выглядело бы всё достаточно просто - example.com/getinfo.php?uid=ид, но у нас только POST

Рассмотрим следующий код:
Код:
$id = "1";

$dwcurl = curl_init();
curl_setopt_array($dwcurl, array(
    CURLOPT_URL => 'https://example.com/getinfo.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id))
));
$response = curl_exec($dwcurl); // получаем ответ на наш POST запрос
curl_close($dwcurl);
А тем кто захотел использовать <form> вот код:
Код:
<form action="https://example.com/getinfo.php" method="POST">
<input name="uid" placeholder="Enter id">
<button type="submit">Get info</button>
</form>
Как видим, теперь в переменной $response у нас хранится ответ сервера после POST запроса с параметрами.

Ещё 1 вариант через file_get_contents (предложил https://yougame.biz/members/4580/)
Код:
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}
Думаю вам понравится.
Form
Ajax
Curl
File_get_contents

Курла более узкое применение имеет.
Через неё можно авторизоваться на другом сайте по одному клику. Ну и манипулировать функциями уже авторизованным.


Не знаю кому может пригодиться QR генератор. но сейчас расскажу как создавать QR через PHP на своём сайте.

Нам понадобится PHP QR Code (Библиотека)
Ссылка
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама!)

И так, скачиваем архив с библиотекой, в ней будет папка phpqrcode, закидываем её на наш хост.
Дальше создаём файл qr.php (к примеру, любое название) и пишем туда следующий код:

Код:
<?php
include('phpqrcode/qrlib.php');
QRcode::png('Этот текст будет в QR коде');
Можно сделать сохранение в файл, это указано в документации библиотеки на оф сайте.

QR код можно расшифровать специальными приложениями.
Так-же можно зашифровать отправку сообщения, мобильный телефон и сайт помимо текста.

Думаю пойдёт.
Какие нахуй QR коды, ты видел пользователей форума?
Они спастить не смогут нормально.

Нахуя им qr коды?
В принципе можно сделать авторизацию черех QR, но боюсь ты и сам не потянешь. Что уж говорить про юзеров форума.
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Тупа минус безопасность.

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

Даже если ты лоу девелопер, изучи код нормальной авторизации, я такой хуйни не видел ещё.


Не юзать такое убожество нахуй.



Form
Ajax
Curl
File_get_contents

Курла более узкое применение имеет.
Через неё можно авторизоваться на другом сайте по одному клику. Ну и манипулировать функциями уже авторизованным.



Какие нахуй QR коды, ты видел пользователей форума?
Они спастить не смогут нормально.

Нахуя им qr коды?
В принципе можно сделать авторизацию черех QR, но боюсь ты и сам не потянешь. Что уж говорить про юзеров форума.
Авторизация как пример, могу с бд сделать.
QR не относится к авторизации никак это 1, а 2 - попробовать можно ;-) Не задумывался.
 
Эксперт
Статус
Оффлайн
Регистрация
31 Мар 2017
Сообщения
997
Реакции[?]
652
Поинты[?]
0
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел
Твоя авторизация статична.
Она мало того что не безопасна.
Она - хуйня.

И да, в каком хосте нету бд?
Ладно несколько лет назад трудно было найти такой хост, особенно фри, но сейчас во всех хостингах есть это.

Лучше бы показал авторизацию через ВК/СТИМ , чем эту хуйню ненужную.

Я ещё более хуею как это дерьмо лайкают.
Он блять сравнивает переменную в массиве без проверки данных пользователей.

Ты просто расширением открываешь сессию и редактируешь её под yes и ты уже в админке.

Даже в дефолт индиги куда лучше безопасность чем здесь.
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Тупа минус безопасность.
Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
 
И да, в каком хосте нету бд?
Ладно несколько лет назад трудно было найти такой хост, особенно фри, но сейчас во всех хостингах есть это.
Я и не говорил что нету, это лишь как вариант, и я ни слова о безопасности не говорил. У копипастеров я уверен не будет большого актива. Тем более топхакеров которые умеют менять сессии (тож копипастеры). А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
 
Эксперт
Статус
Оффлайн
Регистрация
31 Мар 2017
Сообщения
997
Реакции[?]
652
Поинты[?]
0
Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
 

Я и не говорил что нету, это лишь как вариант, и я ни слова о безопасности не говорил. У копипастеров я уверен не будет большого актива. Тем более топхакеров которые умеют менять сессии (тож копипастеры). А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
Тогда нахер здесь эта тема?
Ты либо сразу нормальную тему пиши, либо вообще не создавай такой херни.

А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
На что расчитан гайд?
- Научить человека.

Ты научил людей чему?
- Быдло коду и шеллам в безопасности.

Какова цель этих постов?
Ты пришел научить людей или же схавать порцию лайков?
Если второе, то я не дам сделать такой херни. По крайней мере в моей ветке, которую я не дам засрать подобным дерьмом.

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

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

Тема не имеет отношения к JS вроде по заголовку понятно.
Если ты затрагиваешь вопрос об отправке GET/POST данных, ты должен упомянуть все возможные способы отправки, ну или хотя-бы основные.

Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
Я уже сливал быдло-панель , но даже блять там нормальная авторизация.
 
Сверху Снизу